在CSS中,当padding-top和padding-bottom的值设置为百分比时,这个百分比并不是基于父元素的height,而是基于包含块(containing block)的宽度(width)。这个行为可能初看起来有些反直觉,但它是根据CSS规范来定义的。
在CSS2.1规范中,关于盒模型的百分比填充(padding)有如下说明:
The percentage is calculated with respect to the width of the containing block, even for ‘padding-top’ and ‘padding-bottom’. If the containing block’s width depends on this element, then the resulting layout is undefined in CSS 2.1.
这段话的意思是,即使是padding-top和padding-bottom,百分比也是根据包含块的宽度来计算的。如果包含块的宽度依赖于这个元素本身,那么在CSS 2.1中,最终的布局是未定义的。
因此,如果你在设置padding-top或padding-bottom为百分比时,应该记住这个百分比是基于父元素的宽度,而不是高度。这可能会导致一些意想不到的布局效果,特别是在响应式设计中,所以需要谨慎使用。
如果你希望padding或margin的百分比值基于父元素的高度,你可能需要使用JavaScript或其他方法来动态计算和设置这些值。

被折叠的 条评论
为什么被折叠?



