【发布时间】:2014-03-31 03:58:05
【问题描述】:
我想要一个 height:100% 的子元素;容器应用高度:100%;。当存在 doctype 时,这似乎失败了。
如果你使用 min-height:100%;对于父元素,子元素不应用 height:100%;。
如果你使用 height:100%;子元素被拉伸,但会溢出父元素。 如果您尝试使用 height: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>
编辑: min-height 不继承。 @GCryrillus 提出了将 display:table 应用于父级的想法,这至少可以扩展父级。 @Volker E. 创建了一个codepen。
编辑: 如果不想支持IE≤8,可以设置child min-height:100vh;这将使其至少与视口一样高。
【问题讨论】:
-
min-height 不能被 min-height 继承,也不能被任何其他规则继承。 规则仅继承自父级中的相似规则
-
@GCyrillus 所以这就是为什么 min-height 不起作用,谢谢:)。有没有办法防止溢出,或者在使用 height:100%; 时拉伸父级?
-
您可以尝试将
height:100%发送给所有孩子并使用display:table,这样可以让他们伸展,然后您还需要设置width -
那也没用 :(。感谢您的快速回复!
-
你能在网上做一个小提琴或一个codepen,看看你是如何设置这些规则的吗?