floatの効果
floatを使うと下記の現象が起こります。
- 親要素に子要素の高さが反映されなくなります。
- なので、子要素全てにfloatが指定されている場合、親要素の高さは0になります。
このままだと親要素に背景色等を設定しても正しく反映されないため、clearプロパティと併用することになります。
当初の使い方
初めは改行タグなどにclearプロパティを設定したり、
回り込みを解除したいタグに直接clearプロパティを設定するやり方でした。
回り込みを解除する使い方はこれが基本です。
回り込みが解除されているのはclearが指定されている要素以降のものだと分かると思います。
css
1.clear {
2 clear:both;
3}
4
5.fl {
6 float:left;
7}
8
html
1<p class="fl">aaa</p>
2<p class="fl">bbb</p>
3<p class="fl">ccc</p>
4<br class="clear">
5<p>ddd</p>
html
1<p class="fl">aaa</p>
2<p class="fl">bbb</p>
3<p class="fl">ccc</p>
4<p class="clear">ddd</p>
clearfixというやり方
上記の使い方を少し発展させて、親要素のafter疑似要素を利用して、
結果的に上記と同じ様に回り込みを解除するパターンが考案されました。
これがclearfixの方法です。
css
1.cf:after {
2 content: "";
3 display: block;
4 clear: both;
5}
6
html
1<div class="cf">
2 <p class="fl">aaa</p>
3 <p class="fl">bbb</p>
4 <p class="fl">ccc</p>
5 <!-- ここに擬似要素が挿入されて回り込みが解除される -->
6</div>
7
8<p>ddd</p>
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2017/01/27 11:47