【发布时间】:2011-11-11 16:51:31
【问题描述】:
我有以下页面:
<!DOCTYPE html>
<html>
<head>
<style type="text/css">
html, body
{
height:100%;
}
#outer
{
width:80%;
min-width:600px;
height:80%;
min-height:600px;
margin: 0 auto;
border:2px dashed red;
}
#inner
{
height:100%;
width:100%;
border:2px dashed blue;
}
</style>
</head>
<body>
<div id="outer">
<div id="inner">
</div>
</div>
</body>
</html>
我的期望是一旦达到最小高度,内部 div 将保持外部 div 高度的 100%(两者都是 600 像素)。在 IE9 和 FF8 中就是这种情况。我认为这是正确的,基于 W3C:http://www.w3.org/TR/CSS2/visudet.html#the-height-property。
来自 W3C 页面:
百分比是根据生成框的包含块的高度计算的。如果包含块的高度没有明确指定(即,它取决于内容高度),并且该元素不是绝对定位的,则该值计算为 'auto'。
我的父元素有一个明确指定的高度,所以我认为不需要绝对定位。 (对于它的价值,绝对定位外部 div 确实解决了问题 - 但它不应该是必要的。)
然而,在 Chrome 中,在外部 div 的最小高度被击中后,内部 div 会随着窗口大小的调整而缩小,而不是保持外部 div 高度的 100%,即 600px;
我想我有两个问题:哪种解释是正确的?有解决办法吗?
【问题讨论】:
标签: html css google-chrome