我想要一个身高的孩子元素:100%;容器适用高度:100%;.当出现文档类型时,这似乎失败了。最小高度的孩子:100%不适用身高:100%
如果您使用最小高度:100%;对于父母,子元素不适用高度:100%;.
如果您使用身高:100%;子元素会伸展,但会使父元素溢出。 如果您然后尝试使用高度:100%;在父母身上并保持最小身高:100%;对孩子来说,孩子们不会再舒展了。
这里有一个小例子:
<!DOCTYPE html>
<html>
<head>
<title>Oh Well</title>
<style>
html, body {
width: 100%;
height:100%;
background: white;
margin:0;
padding:0;
}
#min-h-100 {
background-color: #eee;
min-height: 100%;
}
#min-h-100 > div{
min-height: 100%;
}
#h-100 {
background-color: #ccc;
height: 100%;
}
#h-100 > div {
height: 100%;
}
</style>
</head>
<body>
<div id="min-h-100">
<div>If this is heigher than the container, the container expands.</div>
<div>The child elements do not get 100% height.</div>
</div>
<div id="h-100">
<div>The child elements get 100% height.</div>
<div>But there will be an overflow.</div>
</div>
<div>THIS SHOULD BE PUSHED DOWN</div>
</body>
</html>
编辑: 最小高度不继承。 @Cryrillus提出了将display:table应用到父项的想法,该项至少延伸了父项。 @Volker E.创建了一个codepen。
编辑: 如果你不想支持IE≤8,您可以设置孩子最小高度:100vh;这将使其至少与视口一样高。
最小高度不能通过最小高度而不受任何其他规则无法估计。 A **规则仅继承父母 –
@Gyryrillus中的类似规则**,这就是为什么min-height不起作用,谢谢:)。有没有办法来防止溢出,或者更确切地说,在使用height时拉伸父项:100%;? – aimed
你可以尝试给所有孩子发送'height:100%'并使用'display:table',所以它可以让它们伸展,你也需要设置'width'然后 –