ホームページ > 記事 > ウェブフロントエンド > CSSボックスモデルの「コンテンツエリア」の問題〜高得点の方アドバイスお願いします! _html/css_WEB-ITnose
私は CSS の教科書を持っており、マージンの重なりの問題を説明する例が載っています:
効果:
<div style="margin:10px; background:red;"> <p style="margin:20px; background:yellow;">aaaaaaa</p></div>
1. それは p の高さに等しい div の高さです
2. この方法では、ボーダーやパディングを使用して制限することはできません。サブ要素の範囲を指定すると、重複現象を排除できます。
あなたの本のコンテンツの高さと余白のオーバーレイに関する説明は偏っています。
マージンのオーバーレイ、w3c の説明は次のとおりです:
ブロックレベル要素 (display:block) の場合、アンフロートの垂直方向に隣接する要素の上下の境界線が圧縮されます。
わかりやすい例は、上下の 2 つの要素があり、上の要素の下枠が 5px、下の要素の上枠が 20px である場合、2 つの要素間の実際の距離は次のとおりです。 20px (2 つの境界値のうち大きい方) 。
これは、例のように、隣接する要素に親子要素も含まれる状況です。
この時、実際には子要素の高さとは関係ありませんが、親要素がpaddingやborderで区切られていないため、子要素の余白が親のコンテンツ領域の外に出てしまいます。要素。
あなたがどの本を読んでいるのか分からないので、別の本で読むことをお勧めします。
教えてもらいました、とても上手です。 。 。 。
1. 赤い部分の高さは div コンテンツ領域の高さであり、p コンテンツ領域の高さでもあります。 div の height 属性を設定していないため、デフォルトでは div の高さになります。
2. div の幅を明示的に設定した場合でも、div または p に垂直境界線またはパディングを設定しない場合は、div に十分な高さがある場合でも、 p の高さ全体 (マージンなどを含む) を収容するために、マージンは依然として p の上マージンが div の上マージンと一致することがあります。理由を尋ねる必要はありません。CSS2.1 標準ではこれを規定しています。垂直方向の境界線やパディングがなければ、通常のフローではブロック レベルのボックスにマージンが重なり、兄弟ボックス、親子ボックス、さらにはそれら自体にマージンが重なる可能性があります。
この知識については、W3school にアクセスして学ぶことができます。
昨日、家のインターネットが切断されました、助けてくれてありがとう! ! !