ホームページ >ウェブフロントエンド >htmlチュートリアル >「マージン崩壊現象」divボックスネストボックス外マージンマージ現象_html/css_WEB-ITnose
問題の説明: プロトタイプはおそらく「2 つの div でネストされた div で、メインに背景 = "pink" を設定し、ヘッダー 1 に背景 = "赤" を設定します。ヘッダー 2 に背景 = "青" を設定し、同時にtime heder1 に margin-top:10px を設定します。 内側の heder1div の上部マージンが maindiv から 10 ピクセル離れていることが予想されましたが、実際には、内側の div には期待した効果がありませんでした。 maindiv がまだ内部 div に近いため、maindiv 全体の上枠がブラウザーの上から 10 ピクセルのマージンで追加されます。」
問題の説明コード:
<!DOCTYPE html><html lang="en"><head> <meta charset="UTF-8"> <title>Document</title> <style> *{margin: 0;padding: 0;} .main{ width: 400px; height: 400px; background: pink; } .header1{ width: 150px; height: 150px; background-color: red;<br /> margin-top:10px; } .header2{ width: 150px; height: 150px; background-color: blue; } </style></head><body><div class="main"><div class="header1"> </div><div class="header2"> </div> </div> </body></html>
解決策:
1. オーバーフローを追加: 親に非表示
2. 親に padding-top を使用
3. 親に位置を追加: 絶対
通常のドキュメント フローでは、2 つ以上のブロック レベルの隣接する垂直マージンボックスモデルは折りたたまれます。最終的なマージン値は次のように計算されます。
a、すべてが正の値である場合は、最大値を取得し、
b、すべてが正の値ではない場合は、絶対値を取得し、正の値から最大値を減算します。 、正の値がない場合は、絶対値を取得し、0 から最大値を減算します。
注: 隣接するボックス モデルは DOM 要素から動的に生成される場合があり、隣接関係や継承関係はありません。