Html 为什么百分比高度在位置固定元件上起作用?

Html 为什么百分比高度在位置固定元件上起作用?,html,css,Html,Css,我了解到,只有当父元素(和父元素)都设置了height值时,百分比高度才起作用。但是为什么在位置上不需要这样做:fixed元素 div{ 位置:固定; 宽度:50%; 身高:100%; 背景:银; } 占位符位置:固定的相对于屏幕的视口,忽略父元素的位置 固定的 不要为元素留空间。相反,将其放置在相对于屏幕视口的指定位置,滚动时不要移动它。打印时,将其放置在每页的固定位置 通常,如果父对象具有初始的高度:auto,则百分比不起作用 这是因为height百分比是相对于建筑物的高度进行解析的。但

我了解到,只有当父元素(和父元素)都设置了
height
值时,百分比高度才起作用。但是为什么在
位置上不需要这样做:fixed
元素

div{
位置:固定;
宽度:50%;
身高:100%;
背景:银;
}

占位符
位置:固定的相对于屏幕的视口,忽略父元素的位置

固定的

不要为元素留空间。相反,将其放置在相对于屏幕视口的指定位置,滚动时不要移动它。打印时,将其放置在每页的固定位置

通常,如果父对象具有初始的
高度:auto
,则百分比不起作用

这是因为
height
百分比是相对于建筑物的高度进行解析的。但是,如果建立包含块的块祖先具有
高度:auto
,则其高度将是其内容的高度

这将是一个循环定义,因此百分比被视为
auto

但是,使用(包括)可以避免此问题。采用绝对定位的元素,因此它们不会影响具有
高度:auto
的块祖先的高度。在这种情况下,它不再是一个循环定义,所以它可以工作

下文对此进行了解释:

该百分比是根据建筑物的高度计算的 生成的框的。如果容器的高度 块未明确指定(即,它取决于内容 高度),并且该元素不是绝对定位的,该值 计算为“自动”