在这个JSFiddle中
div的保证金最高可达50%。我希望调整到页面高度。
但是,如果您在Firefox(3& 4)中调整窗口大小,您将看到div的垂直位置受页面宽度的影响,但不受页面高度的影响。
为什么?
答案 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强调我的。)