您認爲是對的,但要記住的一件重要事情是body和html元素需要寬度和高度設置爲100%。
對此例子看看:
<!DOCTYPE html>
<html>
<head>
<style>
body, html {
height: 100%;
width: 100%;
margin: 0;
padding: 0;
background: gray;
}
#header {
background: red;
height: 100px;
width: 100%;
}
#main {
background: blue;
height: 100%;
width: 400px;
margin: 0 auto;
}
</style>
</head>
<body>
<div id="header"></div>
<div id="main"></div>
</body>
</html>
如果你運行它,你會看到唯一的問題是一個滾動條顯示。那是因爲#main
div將具有窗口高度,並且標題中有更多100px。
我建議的解決方案是將標題浮在主div上,然後在#main
內部添加另一個div,絕對定位100px波紋管,這樣您就可以在其中工作而不會有太多麻煩。完整的代碼是:
<!DOCTYPE html>
<html>
<head>
<style>
body, html {
height: 100%;
width: 100%;
margin: 0;
padding: 0;
background: gray;
}
#header {
background: red;
height: 100px;
width: 100%;
position: absolute;
top: 0;
z-index: 20;
}
#main {
background: blue;
height: 100%;
width: 400px;
margin: 0 auto;
position: relative;
z-index: 10;
}
#main #content {
position: absolute;
top: 100px;
}
</style>
</head>
<body>
<div id="header"></div>
<div id="main">
<div id="content">
<p style="margin:0">Paragraph</p>
</div>
</div>
</body>
</html>
確保您使用重置文件。像段落元素那樣的邊距會使佈局變得相當混亂。
更新: 正如指出的那樣,該解決方案帶來了溢出問題。因此,這裏是一個更好的版本:
更改2 CSS塊如下:
#main {
background: blue;
min-height: 100%; /* Changed */
width: 400px;
margin: 0 auto;
position: relative;
z-index: 10;
}
#main #content {
padding-top: 100px; /* Changed */
}
,並確保標記是這樣(如最後一個示例):
<div id="header"></div>
<div id="main">
<div id="content">
<!-- Content goes here -->
</div>
</div>
應訣竅!
什麼是真正的問題? – Spliffster 2011-01-26 16:31:25
`overflow:scroll`? – Eray 2011-01-26 16:32:30
他希望內容div始終伸展到瀏覽器視口的底部。 – Chris 2011-01-26 16:32:41