【发布时间】:2011-09-13 17:18:36
【问题描述】:
大家好,
我有一个包含两个部分的 HTML 页面,标题和内容,标题高度是已知的并且是固定的,内容高度应该填满网页的其余区域。当内容部分填充网页的其余区域时,如果内容大于网页的高度,它应该显示一个滚动条(我不想看到网页滚动条,只有内容 DIV 滚动条)。
我已经使用 Javascript 完成了这项工作(我已经得到了我想要的结果),
我的问题是:我可以使用 CSS 做出同样的行为吗?
代码如下:
CSS 文件(site.css):
html, body
{
height:100%;
width:100%;
padding:0;
margin:0;
}
#header
{
height:85px;
width:100%;
background-color : yellow;
}
#container
{
height: 100%;
width:auto;
background-color : green;
padding:2px;
margin: 0 auto;
}
#maindiv
{
height:100%;
width:100%;
overflow:auto;
}
HTML 文件:
<!DOCTYPE html>
<html>
<head>
<link href="Site.css")" rel="stylesheet" type="text/css"/>
</head>
<body onresize="onheightchanged()" onload="onheightchanged()">
<table id="header">
<tr>
<td>
some headers <br />
some headers <br />
some headers <br />
some headers <br />
</td>
</tr>
</table>
<div id="container">
<div id="maindiv">
contents <br />contents <br />contents <br />contents <br />contents <br />contents <br />
contents <br />contents <br />contents <br />contents <br />contents <br />contents <br />
contents <br />contents <br />contents <br />contents <br />contents <br />contents <br />
contents <br />contents <br />contents <br />contents <br />contents <br />contents <br />
contents <br />contents <br />contents <br />contents <br />contents <br />contents <br />
contents <br />contents <br />contents <br />contents <br />contents <br />contents <br />
</div>
</div>
<script type="text/javascript">
function getDocHeight() {
var D = document;
return Math.max(
Math.max(D.body.offsetHeight, D.documentElement.offsetHeight),
Math.max(D.body.clientHeight, D.documentElement.clientHeight));
}
function onheightchanged() {
var container = document.getElementById("container");
var newheight = getDocHeight() - 90; // 90 = header height (85) + padding/margin (5)
container.style.height = newheight + "px";
}
</script>
</body>
</html>
【问题讨论】:
标签: javascript css html height