2016-07-11 12 views
1

コード内の正しい位置を教えてください。clear:both;を理解するのは難しいです。どこに「clear:both」を入れるべきですか?

<div class="first-row"> 
    <div class="left-column" style="float:left;width:33%;"></div> 
    <div class="center-column" style="float:left;width:33%;"></div> 
    <div class="right-column" style="float:left;width:33%;"></div> 
    <div style="clear:both;"></div> <!-- first option --> 
</div> 
<div style="clear:both;"></div> <!-- second option --> 
<div class="second-row"> 
    etc.... 
</div> 
+0

「クリア」ハックの代わりに書式設定コンテキストを確立する方がよいでしょう。あるいは、愚かなブラウザはまだ 'display:flow-root'をサポートしていないので、ブロックフォーマットのコンテキストを確立するための非ハックな方法です。 – Oriol

答えて

2

"最初のオプション"が推奨されています。背景に罫線を設定した場合など。 .first-row{border:1px solid red;}あなたは容器が崩壊するのをそれが明確に見ることができます。

「2番目のオプション」では、それ自身の上にあるフロートのみをクリアするので、2行目が新しい行で開始されます。

実際には、擬似要素:afterを使用しているのが、現在最も一般的なclearfix方式です。ご覧のとおり、コンテナのタグを閉じる前に配置されています。「最初のオプション」と同じ考えです。

.first-row:after { 
    content: ""; 
    clear: both; 
    display: table; 
} 
関連する問題