ホームページ >ウェブフロントエンド >htmlチュートリアル >「マージン崩壊現象」divボックスネストボックス外マージンマージ現象_html/css_WEB-ITnose

「マージン崩壊現象」divボックスネストボックス外マージンマージ現象_html/css_WEB-ITnose

WBOY
WBOYオリジナル
2016-06-24 11:29:281032ブラウズ

問題の説明: プロトタイプはおそらく「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 要素から動的に生成される場合があり、隣接関係や継承関係はありません。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。