【发布时间】:2010-03-23 18:02:14
【问题描述】:
好的,我有一个问题 - 我很想解决它。
我正在使用我最喜欢的方式来设置简单的页眉/内容/页脚布局。 问题是我添加到布局的“内容”div 中的任何元素都无法在 Internet Explorer 中扩展到 100%(据我所知,仅限 IE)。 我知道没有为“内容”元素声明高度,但由于其定位样式(声明绝对顶部和底部),该元素填充了所需的区域。 (内容元素定义了背景颜色,因此您可以看到 div 实际上填充在页眉和页脚之间。)
所以我的问题是,既然 div 显然在两者之间扩展,为什么不能将孩子设置为 100% 来填充该区域? 如果有人有任何解决方案,我很想听听。 (我正在寻找一种不涉及通过完全不同的布局进行设计的解决方案。或者至少可以解释为什么会发生这种情况。我假设此时这是因为缺少高度声明 - - 但是 div 被扩展了,所以我不明白!)
这是页面上使用的代码:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta name="robots" content="noindex" />
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>No 100% height on 'content' child div in IE</title>
</head>
<style>
html, body {
width:100%;
height:100%;
margin:0px;
padding:0px;
}
body {
position:relative;
}
#wrapper {
position:absolute;
top:0px;
width:960px;
height:100%;
left:50%;
margin-left:-480px;
}
#header{
position:absolute;
top:0px;
left:0px;
width:100%;
height:200px;
background-color:#999;
}
#content{
position:absolute;
top:100px;
bottom:50px;
left:0px;
width:100%;
background-color:#F7F7F7;
}
#content_1{
width:200px;
background-color:black;
height:100%;
float:left;
}
#footer{
position:absolute;
bottom:0px;
left:0px;
width:100%;
height:50px;
background-color:#999;
}
</style>
<body>
<div id="wrapper">
<div id="header">
</div>
<div id="content">
<div id="content_1">
</div>
</div>
<div id="footer">
</div>
</div>
</body>
</html>
【问题讨论】:
-
对我来说似乎在 IE8 中工作。当我打开兼容模式时,我确实看到黑色边栏不是全高。
-
你能给出一个具体的问题例子吗?你的意思是孩子不会填满这个区域?您具体观察到什么问题?一两张图片可能会有所帮助。
-
原始帖子中包含代码和工作示例的链接...
-
我看到了该页面,但没有任何问题。
标签: html css internet-explorer height