在我们的一个项目中,我们注意到所有主要浏览器(Firefox 22.0、Chrome 28.0.1500.72 m、IE 10.0.9200.16521)中的以下奇怪计算
考虑以下 HTML 代码:
<div>
<div style="height:100px">Head</div>
<div style="height:200px">
<p style="margin:10px">This goes wrong</p>
Wrong wrong wrong
</div>
</div>
<div>
<div style="height:100px">Head</div>
<div style="height:200px">
Right right right
<p style="margin:10px">This goes right</p>
Right right right
</div>
</div>
您还可以在以下位置找到代码示例:http: //jsfiddle.net/Cnjdg/
如果您检查 2 个顶级 DIV 的计算高度,您会发现一些奇怪的东西:DIV1 高 310 像素,而 DIV2 高 300 像素...现在逻辑告诉我 DIV 与其子级一样高(特别是因为没有特殊样式已应用)对我来说这意味着两个 DIV 元素都应该返回 300px 高度。
因此,当子元素的最顶部有一个具有上边距的元素时,在计算父元素的高度时似乎考虑了这个高度。这是一个错误吗?这是故意的吗?达到什么目的?