コンテナdivに、子の高さの最大値を取得させます。子div
sの高さがわからない。 JSFiddle で試してみました。コンテナdiv
は赤です。表示されていません。どうして?
次のプロパティを追加します。
.c{
...
overflow: hidden;
}
これにより、コンテナは、フローティング要素に関係なく、コンテナ内のすべての要素の高さを尊重します。
http://jsfiddle.net/gtdfY/3/
最近、私はこのトリックを必要とするプロジェクトに取り組んでいましたが、オーバーフローを表示する必要があったため、代わりに擬似要素を使用してフロートをクリアし、すべての要素でオーバーフローを許可しながら同じ効果を効果的に達成できます。
.c:after{
clear: both;
content: "";
display: block;
}
子を浮かせているのは、子がコンテナの前に「浮いている」ことを意味します。正しい高さを取得するには、フロートを「クリア」する必要があります
Div style = "clear:both"は、フローティングをクリアし、コンテナに正しい高さを与えます。 floatの詳細については、 http://css.maxdesign.com.au/floatutorial/clear.htm を参照してください。
例えば。
<div class="c">
<div class="l">
</div>
<div class="m">
World
</div>
<div style="clear: both" />
</div>
それほど簡単ではありませんか?
.c {
overflow: auto;
}
最後の</div>
の前にこのクリアdivを挿入してください
<div style="clear: both; line-height: 0;"> </div>
最良かつ最も安全なソリューションは、::before
および::after
疑似要素をコンテナに追加することです。たとえば、次のようなリストがある場合:
<ul class="clearfix">
<li></li>
<li></li>
<li></li>
</ul>
リスト内のすべての要素にはfloat:left
プロパティがあり、cssに追加する必要があります。
.clearfix::after, .clearfix::before {
content: '';
clear: both;
display: table;
}
または、display:inline-block;
プロパティを試すことができ、clearfixを追加する必要はありません。