プロが教えるわが家の防犯対策術!

あるブログサイトで、コンテンツ部分が、左側が広く、右側にサイドバーが来るタイプなのに、
cssでは、サイド側が float:left; コンテンツ部の記述も同じです。
疑問です。これはHPのソースに指定されてるcssなので、実際に使用されているものです。
でも、cssの一般の解説サイトでは、これでは左サイドバー設定のはずです。

どうなっているのでしょう?
それとも、これは基本設定(確かに最初に提示されたのは左サイドバーでした)で、
私がその後選択したデザインでは、右サイドバーです。
右左サイドバーは、選択したデザインで変更されてるのでしょうか?
ちなみにロリポップのjugemuです。

/*コンテンツ枠(記事の枠+サイドメニューの枠)*/
#content {
margin:0 auto;
padding:0 20px 20px 20px;
}

/* 右側の幅(サイドメニューの枠) */
#side {
float:left;
width:200px; /* C */
}

/* 左側の幅(記事の枠)*/
#main {
float:left;
width:540px; /* D */
padding:0 20px 0 0;
}

A 回答 (1件)

HTML:


<div id="main">記事</div>
<div id="side">サイド</div>
になっていると思います。

#mainが先に左側に配置され、#sideがその横(右)に配置されるので何も問題ないですけど・・・

両者がfloat:left;の場合は、左側+左側に配置されるので、#mainの右側に#sideがあってていてもおかしくないですよ。
#mainの幅が広いので右側しか空いていない!
幅がピッタリ(20+20+540+20+200=800px?)の場合には、float:right;にしても同じで、
#mainの540px+20px=560pxの右側にしか行くところが無いので、右も左も無いのです・・・

#mainの幅を540pxではなく、400pxなどと狭くすると、サイドバーもその幅だけ左に寄るので、理解できると思います。お試しを。

-------
蛇足ですが、左がサイドバーの場合には、
例1:
<div id="side">サイド</div>
<div id="main">記事</div>
逆になると思います。
もしくは、
例2:
<div id="main">記事</div>
<div id="side">サイド</div>
のままだと、
main { float:right;}

どちらかになります。(positionでも可能か)
    • good
    • 0
この回答へのお礼

納得!
cssでは、領域の定義、
htmlで、配置の仕方を行うのでした。
このケースは、htmlでは、確かめてみたところ、mainが先でsideが次に配置されていました。
cssとhtmlで協力して画面を作ってるのでした。
ありがとうございました。

ちなみに、htmlの構造は下記になっていました。

<head> </head>
<body>
<div id="wrapper">
<div id="header"> </div> <!-- header -->
<div id="content"> <!-- content start-->
<div id="main"> </div> <!-- main左側 -->
<div id="side"> </div> <!-- side 右側 -->
</div> <!-- content end -->
<div id="footer"> </div> <!-- footer -->
</div> <!-- wrapper end -->
</body>

お礼日時:2017/06/11 10:04

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!