Html 为什么不是';当容器的高度为最小高度时,是否继承容器高度?
我试图使容器填充整个页面(或视口,以较大者为准),但遇到了一些问题。我使用这篇文章中的建议:,将Html 为什么不是';当容器的高度为最小高度时,是否继承容器高度?,html,css,Html,Css,我试图使容器填充整个页面(或视口,以较大者为准),但遇到了一些问题。我使用这篇文章中的建议:,将和设置为100%高度 但是我注意到,.Contentdiv仅在高度设置为高度:100%时填充视口,而不是最小高度:100%时填充视口。为什么呢?当设置为最小高度时,.Content为什么不拾取的高度?是否对此进行了修复(无绝对定位或固定高度) html 代码笔: 注意:当高度设置为高度:100%时,最小高度:100%和高度:100%按预期工作。内容百分比高度指父元素的计算高度属性。看。根据我对链接问题
和
设置为100%高度
但是我注意到,.Content
div仅在
高度设置为高度:100%
时填充视口,而不是最小高度:100%
时填充视口。为什么呢?当设置为最小高度时,.Content
为什么不拾取
的高度?是否对此进行了修复(无绝对定位或固定高度)
html
代码笔:
注意:当
高度设置为高度:100%
时,最小高度:100%
和高度:100%
按预期工作。内容百分比高度指父元素的计算高度
属性。看。根据我对链接问题的回答,在主体
元素上仅设置min height:100%
时,height
属性在其默认值auto
下保持不变。min height
属性不影响height
属性的计算值
因此,元素上的minheight:100%
没有父级高度可供参考,因此它不起作用。在body
元素上设置height:100%
后,元素就可以引用此高度来计算其自身的百分比高度
如何解决这一问题取决于您试图实现的布局类型。在body
元素上设置最小高度:100%
的唯一目的是,当内容高度超过视口高度时,允许其展开,从而产生滚动条。如果您的内容只会精确到视口的高度,或者您不希望body
生成滚动条,那么只需在body
上用height:100%
替换min height:100%
,我猜根本原因是body height和content height之间存在循环依赖关系。假设在.content
之后还有另一个元素。现在,如果内容扩展到100%,主体也必须扩展,这将导致内容进一步扩展。规范定义百分比高度的方式可能是为了打破这种循环依赖关系。@Alexey Lebedev:这是正确的。
<html>
<body>
<div class="Content">Content</div>
</body>
</html>
* {
margin: 0;
padding: 0;
}
html {
height: 100%;
}
body {
/* does not work for .Content: */
min-height: 100%;
/* does work for .Content: */
/* height: 100%; */
background: blue;
}
.Content {
background: red;
min-height: 100%;
}