为什么页面宽度会影响Firefox中的“margin-top:50%”?

时间:2011-09-12 10:18:19

标签: html css firefox

在这个JSFiddle中

http://jsfiddle.net/9UMRk/

div的保证金最高可达50%。我希望调整到页面高度。

但是,如果您在Firefox(3& 4)中调整窗口大小,您将看到div的垂直位置受页面宽度的影响,但不受页面高度的影响。

为什么?

1 个答案:

答案 0 :(得分:9)

这看起来似乎违反直觉,但实际上是根据边距的框模型,其中说明in the CSS level 2.1 spec

  

百分比是根据生成的框的包含块的 width 计算的。请注意,对于'margin-top'和'margin-bottom'也是如此。如果包含块的宽度取决于此元素,则在CSS 2.1中未定义结果布局。

in the CSS3 spec(更明确的是IMO):

  

请注意,在水平流程中,'margin-top'和'margin-bottom'的百分比是相对于包含块的 width ,而不是高度 (在垂直流动中,'margin-left'和'margin-right'是相对于高度而不是宽度)。

(Bold强调我的。)