通常、floatの親要素にoverflow:hidden;を設定するとfloatがクリアできるのですが、float要素の親要素がbodyの場合、bodyにoverflow:hiddenを設定するとfloatがクリアできないことが分かりました。 ボディは通常のストリームに属していないので、無効であると言われていますが、誰か説明できますか?
ありがとう: CRIMX
Wang Dalu の言葉を借りると:
あなたのような人は偉大な神であるか、偉大な神への道を歩んでいるかのどちらかです。
为情所困2017-05-16 13:38:43
これは新しい BFC が生成されていないためです
新しいBFCを生成するための条件:
「overflow」が「visible」に計算されない場合の通常フローのブロックレベルの非置換要素(「overflow」プロパティの値がビューポートに伝播されている場合を除く).
何のための<body>
设置 overflow
ビューポートに散在する会:
UA は、ルート要素に設定された「オーバーフロー」プロパティをビューポートに適用する必要があります。ルート要素が HTML "HTML" 要素または XHTML "html" 要素で、その要素が子として HTML "BODY" 要素または XHTML "body" 要素を持つ場合、ユーザー エージェントは代わりに「オーバーフロー」を適用する必要があります。 ' ルート要素の値が 'visible' の場合、プロパティを最初の子要素からビューポートに追加します。ビューポートに使用される場合の「visible」値は「auto」として解釈される必要があります。値の伝播元の要素には、「visible」の「overflow」に使用される値が必要です。