css floatフローティングhaslayoutクリア


1:floatは、指定された要素が通常のドキュメントストリームから逸脱することによって生じる特別なレイアウト特性をもたらす.ブロックレベル要素に適用する必要があります.つまり、フローティングはインラインラベルには適用されません.floatが適用されると、この要素はブロックレベルの要素として指定されます.例えば、インライン要素にfloatを設定した後、幅を設定することができます.
.clear:after{
content:" ";
display:block;
height:0;
clear:both;
visibility:hidden;
}
:after擬似要素は要素の後にコンテンツを追加し、この擬似要素は創作者が要素コンテンツの一番後ろに生成コンテンツを挿入することを可能にする.デフォルトでは、この擬似要素は行内要素ですが、属性displayを使用して変更できます.afterで生成された内容はスペースで、まずdisplay:block、それから高さは0で、彼にレイアウトに影響を与えないで、隠してheight:0と差が少ないのはレイアウトに影響を与えないでください.clear:bothはフローティングをクリアします.afterをサポートしていないブラウザie 6、ie 7はheight:1%を追加します.OKです.そうするとie 6、ie 7はhaslayoutを持っています.
2:haslayput
実はhaslayoutはWindows Internet Explorer 7以下のレンダリングエンジンの内部構成部分で、
InternetExplorer 7以下では、1つの要素が自分自身のコンテンツのサイズと組織を計算するか、親要素に依存してサイズと組織のコンテンツを計算します.この2つの異なる概念を調整するために、レンダリングエンジンはhasLayoutの属性を採用し、属性値はtrueまたはfalseであってもよい.要素のhasLayout属性値がtrueの場合、この要素にはレイアウト(layout)があると言います.1つの要素にレイアウトがある場合、それは自分と可能な子孫要素の寸法計算と位置決めを担当します.簡単に言えば、祖先要素に依存するのではなく、これらの作業を完了します.IE Developer Toolbarでは、IEの下のHTML要素がhaslayout、haslayoutを持つ要素を持っているかどうかを確認できます.通常は「haslayout=-1」と表示されます.
ここでhas layoutは、自分と可能な子孫要素の寸法計算と位置決めを行い、親要素の高さ、つまり親要素が中身の高さに適応していることを決定します.今回は、なぜheight:1%を加えたのかがわかります.もちろん、widthなどの他の属性を加えてhas layoutすることもできます.もちろんfloatを加えてもいいですが(floatはlayoutをトリガーすることもできます)、floaでフローティングをクリアしないでください.floatはまたフローティングを生成します.
,,

,