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

gar*_*uan 5 html css firefox

在这个JSFiddle中

http://jsfiddle.net/9UMRk/

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

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

为什么?

Bol*_*ock 9

它看起来似乎是违反直觉的,但实际上是根据边距的盒子模型,其中说明了CSS级别2.1规范:

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

在CSS3规范中(更清楚地说是IMO):

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

(大胆强调我的.)

  • 根据父母的身高来定义百分比差额的问题在于父母的身高通常取决于所讨论的边际.所以在大多数情况下,它绝对不会做任何事...... (3认同)