最佳答案
如果你观察 CSS 盒模型规范,你会发现以下几点:
[边距]百分比是根据生成框的包含块的 宽度计算的。如果包含块的宽度取决于这个元素,那么最终的布局在 CSS 2.1中是未定义的。(强调我的)
的确如此。但是 为什么呢?到底是什么迫使人们把它设计成这样?很容易想到你想要的场景,例如某个东西总是从页面顶部下降25% ,但是很难想出任何理由为什么你想要垂直填充相对于父页面的水平大小。
下面是我所指的这种现象的一个例子:
<div style="border: 1px solid red; margin: 0; padding: 0; width: 200px; height: 800px;">
This div is 200x800.
<div style="border: 1px solid blue; margin: 10% 0 0 10%;">
This div has top-margin of 10% and left-margin of 10% with respect to its parent.
</div>
</div>