【发布时间】:2023-03-13 21:11:01
【问题描述】:
当一个包含框的顶部margin与其第一个孩子的顶部margin折叠时,如何计算包含框的height(示例中为div)?
举个简单的例子:
div {
margin: 40px 0 25px 0;
background: yellowgreen;
/* border:1px solid black; */
}
p {
margin: 20px 0 20px 0;
background: lightgreen;
padding: 10px;
}
<div>
<p>Paragraph content</p>
</div>
p 是与div 合并的边距,因此我们看不到div 的背景颜色。将border 添加到div 可以阻止边距折叠。
但是,因为 p 的 margin 也是 div 的 margin ,这意味着 div 不再完全包含 p。这是违反直觉的。
我浏览了Calculating heights and margins 规范和Collapsing margins 并找不到如何计算height 的div。因为无法确定p的height。
【问题讨论】:
-
很不清楚你问的是什么。 如何计算包含框的高度是什么意思?
-
@LGSon 是的,OP 必须停止编辑值,否则答案会被破坏:/
-
@LGSon 如何计算
div的高度 -
这里很好地描述了发生了什么:developer.mozilla.org/en-US/docs/Web/CSS/CSS_Box_Model/…
-
@dippas 我认为你的回答很好,所以取消删除它并在我上面的评论中添加链接以获取折叠边距描述。还有一个关于字体大小/行高未设置时的注释,使用浏览器默认值,在这种情况下可以给出不同的输出/大小的div