スタイルシートでfloatを利用すると要素が横並びになるのは良いのですが、次の要素まで横並びになってしまいます。これを解除する方法をご紹介します。
解除するためにはclear:both;を使うだけです。
floatを使った時の回り込みとは?
例を示します。
XHTMLはこんな感じ。
<html>
<head>
<title>CSSテスト</title>
<link rel="stylesheet" type="text/css" href="style.css" />
</head>
<body>
<div id="container">
<div id="top-box"></div>
<div id="left-box"></div>
<div id="right-box"></div>
<div id="bottom-box"></div>
</div>
</body>
</html>
CSSはこんな感じ。
div#container {
}
div#top-box {
width: 50px;
height: 50px;
background-color: rgb(9, 45, 235);
}
div#left-box {
float: left;
width: 50px;
height: 50px;
background-color: rgb(235, 9, 9);
}
div#right-box {
float: left;
width: 50px;
height: 50px;
background-color: rgb(255, 245, 0);
}
div#bottom-box {
width: 50px;
height: 50px;
background-color: rgb(54, 235, 9);
}
ブラウザで見るとこのように表示されます。bottomが見当たりません。。。実はbottomはleftの下に隠れてしまっています。
解決方法は1行追加するだけ
これを解決する方法は、たったの1行追加するだけです。clear: both;を追加すると、floatが解除されるため、bottomが姿を表します。
div#bottom-box {
clear: both;
width: 50px;
height: 50px;
background-color: rgb(54, 235, 9);
}
このようにbottomが表示されるようになりました。
他にもclearfixを使ったり、overflowを使って解除する方法もありますが、このやり方が一番シンプルで多用しています。
本日は以上です。
- 投稿タグ
- CSS






