我尝试在 div
另一个 div
上添加 margin
值。除了最高值外,一切正常,它似乎被忽略了。但为什么?
我所期望的:
我得到什么:
代码:
#outer {
width: 500px;
height: 200px;
background: #FFCCCC;
margin: 50px auto 0 auto;
display: block;
}
#inner {
background: #FFCC33;
margin: 50px 50px 50px 50px;
padding: 10px;
display: block;
}
<div id="outer">
<div id="inner">
Hello world!
</div>
</div>
W3Schools 没有解释为什么 margin
会这样。
原文由 jamietelin 发布,翻译遵循 CC BY-SA 4.0 许可协议
您实际上看到 --- 元素的上边距 塌陷 到 ---
#outer
#inner
元素的上边缘,只留下#outer
边距完好无损(尽管没有显示在您的图像中)。两个框的上边缘彼此齐平,因为它们的边距相等。以下是 W3C 规范中的相关要点:
您可以执行以下任何操作来防止边距折叠:
上述选项防止边距折叠的原因是:
左右边距的行为与您预期的一样,因为: