通常、回り込みの解除には
<br clear="all" />
を使います。 しかし、上記の場合不要な改行が入ってしまいます。 それならばと、
<div class="clear"></div>
といった具合に、ボックスにclearプロパティを指定して回り込みを解除します。
ですが空のボックスは文法上よろしくない。 そこで登場するのがこのClearFix。
:after擬似要素でclearプロパティを指定した不可視ボックスを利用するというもの。
/* Start. Clearfix */ .box:after { clear: both; content: "."; display: block; font-size: 0.1em; height: 0; line-height: 0; visibility: hidden; } .box { display: inline-block; min-height: 1%; } * html .box { height: 1%; } .box { display: block; } /* End. Clearfix */
追記:2012/3/2 新しいClearfixが考案されたようです。
div#hoge:before, div#hoge:after { content: ""; display: table; } div#hoge:after { clear: both; } div#hoge { zoom: 1; }