我正在尝试创建一个最小高度为100%的DIV,这在FireFox/IE中不起作用。只有在使用"height"属性时才有效。
chrome运行正常。
<style>
.page{
min-height:100%;
border:1px solid black;
}
</style>
<html>
<div class="page">
With firefox / IE, this div is not stretching to take 100% of the total page height.
</div>
</html>
- 更新:**
我明白我需要定义body/html的高度。有道理但是即使使用了这个解决方案,我仍然不能对一个子div使用min-height。请参见下面的示例。子div没有占用父div的33%。(在FireFox和IE中)
<style>
.page{
min-height:100%;
border:1px solid black;
}
html,
body {
height: 100%;
}
.child{
min-height:33%;
border:1px solid black;
display:flex;
}
</style>
<html>
<div class="page">
Parent div
<div class="child">
With firefox / IE, this CHILD div is not stretching to take 33% of the container.
</div>
</div>
</html>
6条答案
按热度按时间svmlkihl1#
您还需要给予
html
和body
指定高度更新1,问题编辑后
有了这个新标记,
.page
也需要height: 100%
更新2,基于评论
使用Flexbox和viewport单位
vh
,效果会更好它也将与
min-height: 33%
一起使用dddzy1tm2#
如果元素的直接父级没有使用CSS应用显式的
height
,则min-height
和height
属性的百分比值不起作用。从MDN
百分比是相对于生成的框的包含块的高度计算的。如果没有明确指定包含块的高度(即,它取决于内容高度),并且此元素不是绝对定位的,则百分比值被视为0。
唯一的方法是在父
div
中添加另一个div
,并显式地将其高度设置为100%,然后将子div
插入其中,然后min-height
就可以工作了qyyhg6bp3#
老实说,我不知道为什么它甚至与高度属性。当你在CSS中使用百分比高度时,根元素(html,body)需要有一个定义好的高度。
这是因为百分比是父项的百分比。如果根元素没有定义的高度,则不能从它计算高度。
因此,要给予根元素一个高度,你可以将它设置为100%,如下所示:
kq0g1dla4#
在我的例子中,解决方案是使用
min-height: 100vh
pvabu6sv5#
在表**
<th> \ <tr>
**的情况下,min-height
不工作,但您可以使用heigh
,在这种情况下将表现为min-height
。kninwzqo6#
尝试在CSS代码中添加以下内容:
有时浏览器的行为不一样,你需要添加一些东西。Mozilla Firefox的Moz。
-webkit-styleGoesHere
用于Chrome。希望这能帮上忙。