多くの場所でに遭遇しました<div class="clear"></div>
が、なぜそれが行われるのかわかりませんか? 誰かがこれについて私に簡単に説明できますか?なぜcssで使用されているのですか? これはCSSです:
div.clear {
clear:both;
}
要素の高さは、明示的に設定されていない限り、その子要素によって決定されます。例えば:
+------A------+
|+-----------+|
|| B ||
|+-----------+|
|+-----------+|
|| C ||
|+-----------+|
+-------------+
A の高さは、その子 C の下の境界線がどこにあるかによって決まります。
現在、浮動要素は親の高さにカウントされず、通常のフローから除外されています。
+------A------+
+--+---------++
| B |
+---------+
+---------+
| C |
+---------+
A 要素は、その 2 つの子が浮動しているため、最小限の高さに折りたたまれています。
正しい高さを復元するために、クリア要素が導入されています。
+------A------+
| +---------+|
| | B ||
| +---------+|
| +---------+|
| | C ||
| +---------+|
|+-----D-----+|
+-------------+
D 要素は、clear
属性が設定された高さゼロの要素です。これにより、浮動要素を下回ります(それらをクリアします)。これにより、 A はその高さを計算するための通常の子要素を持ちます。これは、少なくとも最も典型的な使用例です。
余分な HTML 要素を導入するためのより良い解決策は、 A を に設定することoverflow: hidden
です。これには、高さの計算を強制する効果があり、高さを目的のサイズに拡大するのと同じ効果があります。ただし、このソリューションには他の副作用がある場合とない場合があります。
浮いたスタイルを一掃することです。
要約すると、前の要素の左側または右側に何も許可しないようにブラウザーに指示するようなものです (つまり、div、span、anchor、table などの要素)。これにより、次の要素が次の行に移動します。
decezeによる良い説明。しかし<div class="clear"></div>
、古い方法であり、非専門家が使用してみてください
#anyelement:after {
display: block;
content: ".";
clear: both;
font-size: 0;
line-height: 0;
height: 0;
overflow: hidden;
}
など、クリアする必要がある他の要素を追加し続けるだけ#firstlement:after, .secondelement:after
です。
フロート ベースのレイアウトでコードを記述するときに直面する最も一般的な問題は、親の div コンテナーが子のフローティング要素の高さまで拡張されないことです。これを修正する一般的な解決策は、浮動要素の後に clear float を持つ要素を追加するか、親 div に clearfix を追加することです。
フロートのクリアについて理解を深めるために、2 つの良い例を示します。
http://webdesignerwall.com/tutorials/css-clearing-floats-with-overflow