CSS 2.1规范涵盖了该问题:
< 百分比>
指定百分比高度。相对于生成的盒子的包含块的高度计算百分比。如果未明确指定包含块的高度(即,它取决于内容的高度),并且该元素的位置不是绝对的,则该值将计算为“自动”。根元素上的百分比高度是相对于初始包含块的高度。注意:对于绝对定位的元素(其包含的块基于块级元素),百分比是相对于该元素的填充框的高度计算的。这是CSS1的更改,在CSS1中,始终相对于父元素的内容框计算百分比。
因此,为了澄清起见,百分比高度将引用其包含块的高度(除非它是
position: absolute或
position:fixed)。如果该包含块的高度没有指定,则百分比将指
auto,实际上不会做太多。
position: absolute引用包含块改变到位于最近的(
absolute,
relative,或
fixed)元素。
position: fixed将引用的包含块更改为视口。
因此,如果在包含块上指定高度,在包含块上指定静态以外的位置,或者不介意将视口用作包含块,则可以有效地使用百分比高度。



