为什么-webkit-margin-collapse 在body 标签内有h1 时取最小值?

Why does -webkit-margin-collapse take the smallest value when there is an h1 inside of the body tag?

我只是想了解 Chrome 的默认样式表。

如果你有这个html:

<body><h1>Hello</h1></body>

默认情况下,<body> 标签的 margin8px<h1> 标签的默认 -webkit-margin-before0.67 em ,达到 21.44px。为什么 <h1> 标签似乎忽略了 21.44px 边距?边距折叠规则应取两个边距中较大的一个。

谢谢!

在 quirks 模式下,margin collapsing 在各种情况下的行为不同。在您的示例中,具有默认边距的 body 的任何第一个 child 的默认上边距,例如 ph1,将被忽略。我相信 Chrome 通过 -webkit-margin-collapse 属性 (如您的标题中所述)实现了此行为; Firefox 将大多数 body > :-moz-first-node 元素的上边距清零(参见 quirk.css)。

当您包含 DOCTYPE 时,您会看到预期的行为。