これはマージンの崩壊が原因である可能性があり、マージンの崩壊について、少なくとも隣接する要素にどのように影響するかは知っていますが、負のマージンが関係している場合にネストされた要素でどのように機能するかはわかりません。
たとえば、このマークアップとそれに付随する CSS では、次のようになります。
マークアップ
<div class="parent">
<div class="child">
Child 1
</div>
</div>
<div class="parent">
<div class="child negative">
Child 1
</div>
</div>
CSS
body {
background: white;
padding: 45px;
}
.parent {
border: 1px solid black;
margin-bottom: 10px;
}
.negative {
margin-bottom: -1px;
}
ライブの例はこちら.
2 番目の div の高さを調べると.parent
、最初の div よりも 1 ピクセル小さいことがわかります。これは、.negative
要素内の負のマージンが原因で発生しました。W3C をざっと見てみたのですが、この動作の説明が見つかりませんでした。
誰かがここで何が起こっているのかを説明し、それに関する W3C 仕様セクションへのリンクを提供してもらえますか?