Divの内部にフロートがある場合、divの高さを大きくするにはどうすればよいですか?私は、幅の値を定義し、オーバーフローを非表示に設定することを知っています。問題は、オーバーフローが表示されるdivが必要なことです。何か案は?
含むdivのoverflow:auto;
は、その中のすべて(フロートされたアイテムも含む)を表示し、外側のdivはそれらを完全にラップします。この例を参照してください。
.wrap {
padding: 1em;
overflow: auto;
background: silver;
}
.float {
float: left;
width: 40%;
background: white;
margin: 0 1%;
}
<div class="wrap">
<div class="float">Cras mattis iudicium purus sit amet fermentum. At nos hinc posthac, sitientis piros Afros. Qui ipsorum lingua Celtae, nostra Galli appellantur. Petierunt uti sibi concilium totius Galliae in diem certam indicere. Ambitioni dedisse scripsisse iudicaretur.</div>
<div class="float">Mercedem aut nummos unde unde extricat, amaras. A communi observantia non est recedendum. Quisque ut dolor gravida, placerat libero vel, euismod. Paullum deliquit, ponderibus modulisque suis ratio utitur.</div>
</div>
フロートをクリアする方法は複数あります。ここでいくつかを確認できます:
http://work.arounds.org/issue/3/clearing-floats/
例えば、clear:both
はあなたのために働くかもしれません
#element:after {
content:"";
clear:both;
display:block;
}
#element { zoom:1; }
多くの場合、overflow: auto;
で十分ですが、補完とブラウザ間のサポートのために、すべてのブラウザで機能する Clearfix を見てください。
次のマークアップを考えてみましょう。
<div class="clearfix">
<div class="content">Content 1</div>
<div class="content">Content 2</div>
</div>
以下のスタイルとともに..
.content { float:left; }
.clearfix { ..from link.. }
Clearfixがなければ、親div
は、フローティングチャイルドのために高さを持ちません。 clearfixは、親にフローティング子を考慮させます。
それを行うための素晴らしい方法は、divにdisplay: table
を設定することだと考えました。