floatボックスが親ボックスを突き破る時の解決法


このところ、ずうっとハマっていた問題でやっと解決したので、忘れないうちにブログに書いておきます。

http://www.web-designlab.com/2008/10/float%E3%83%9C%E3%83%83%E3%82%AF%E3%82%B9%E3%81%8C%E8%A6%AA%E3%83%9C%E3%83%83%E3%82%AF%E3%82%B9%E3%82%92%E7%AA%81%E3%81%8D%E7%A0%B4%E3%82%8B%E5%95%8F%E9%A1%8C%E3%81%AB%E3%81%A4%E3%81%84%E3%81%A6.html
今回はこちらのサイト様を参考にさせて頂きました。ありがとうございます。


解決法の一番目を使用しました。
今回、ハマっていた時のソース。

<div class="box">
box
<div class="item1">item1</div>
<div class="item2">item2</div>
</div>
<div class="clear"></div>

上記のサイトを参考にした、正しいソース。

<div class="box">
box
<div class="item1">item1</div>
<div class="item2">item2</div>
<div class="clear"></div>
</div>

上記共通CSS部分

.box {
	border: 1px solid #666;
}

.item1 {
	float:left;
	width: 100px;
	height:100px;
	background: #CC0099;
}

.item2 {
	float: right;
	width: 100px;
	height:100px;
	background: #f0f0f0;
}

.clear{
	clear: both;
}

ミソはdiv.boxの内部にdiv.clearを入れることです。
参考にさせて頂いた記事に、clearfixやoverflow:autoの方法もありましたが、とりあえずこの手法を今回採用しました。