【发布时间】:2015-07-08 17:16:37
【问题描述】:
Firefox 在 div.p 的顶部呈现 100 像素的边距。这似乎是一个利润崩溃。但是div.p 的计算高度是 100px。根据spec,它不应该做保证金崩溃。这是一个错误,还是我在这里错了? Chrome 按预期呈现。
codepen
.s {
height: 100px;
width: 200px;
background: yellow;
float: left;
}
.p {
margin-top: 20px;
margin-bottom: 100px;
zoom: 1;
}
.p:after {
content: ' ';
display: block;
height: 0;
clear: both;
}
<div class="p">
<div class="s"></div>
</div>
【问题讨论】:
-
我不确定它是什么,但如果你删除
float:left,它就不会发生,所以我不认为这是一个折叠边距。 -
这似乎是margin-bottom造成溢出的问题,如果我们添加
*{overflow:auto},问题就不会再出现了:codepen.io/anon/pen/ZGxWVB -
我可以理解为什么如果我们
*{overflow:auto},问题就不会再发生了,因为它创建了一个 BFC。 -
您的问题没有在我的代码 sn-p 中复制。 Chrome 和 FF 都是相同的输出。我正在运行 Firefox 46.0