Salam全部,如何保持DIV拉伸到高度100%的網頁底部並溢出:僅使用CSS自動生成?
我有一個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>
謝謝你的回答,這個解決方案完美適用於IE和Opera,Chrome也很好用,但FF 6.0.2在調整頁面大小時仍然顯示網頁滾動條。 – Shadi
奇怪的是,在我的FF 6.0中工作正常。滾動條來自容器。您可以通過調整左側,右側和底部位置來測試它,以便容器不會觸摸頁面邊框。它應該更好地顯示頁面的行爲。 –
我沒有運氣,DIV高度不會在您調整頁面大小時自動刷新,您需要按F5才能獲得正確的行爲,任何線索? – Shadi