三欄布局是目前最常見的網頁布局,主要頁內容放在中間一欄,邊上的兩欄放置導航連結之類的內容。基本布局一般是標題之下放置三欄,三欄佔據整個頁面的寬度,最後在頁的底端放置頁尾,頁尾也佔據整個頁面寬度。
絕大多數網頁設計者都熟悉傳統的網頁設計技術,用這些技術可以產生帶有表格、建立固定寬度布局或者“液態”(它可以根據使用者瀏覽器視窗寬度自動調整)布局的網頁。
現在,我們都開始拋棄基於表格的布局技術,許多網路設計者正在從XHTML標記和CSS格式這一新範例中尋找建立三欄布局的方法。用絕對位置的方法從CSS中得到固定寬度的布局並不困難;但是得到液態布局就有點困難了。因此,本文介紹一種用CSS的float和clear屬性來獲得三欄液態布局的方法。
基本方法
基本的布局包含五個div,即標題、頁尾和三欄。標題和頁尾佔據整個頁寬。左欄div和右欄div都是固定寬度的,並且用float屬性來把它們擠壓到瀏覽器視窗的左側和右側。中欄實際上佔據了整個頁寬,中欄的內容在左、右兩欄之間“流淌”。由於中欄div的寬度並不固定,因此它可以根據瀏覽器視窗的改變進行必要的伸縮。中欄div的左側和右側的填充(padding)屬性保證內容安排在一個整齊的欄中,甚至當它伸展到側邊欄(左欄或者右欄)的底端也是這樣。
三欄布局的一個例子
請看看用本文所介紹的技術進行三欄布局的例子。這個例子用鮮豔的顏色來區分布局的各個div。
下面是XHTML代碼:
<body>
<div id="header">
<h1>Header</h1>
</div>
<div id="left">
Port side text...
</div>
<div id="right">
Starboard side text...
</div>
<div id="middle">
Middle column text...
</div>
<div id="footer">
Footer text...
</div>
</body>
下面是CSS代碼:
body {
margin: 0px;
padding: 0px;
}
div#header {
clear: both;
height: 50px;
background-color: aqua;
padding: 1px;
}
div#left {
float: left;
width: 150px;
background-color: red;
}
div#right {
float: right;
width: 150px;
background-color: green;
}
div#middle {
padding: 0px 160px 5px 160px;
margin: 0px;
background-color: silver;
}
div#footer {
clear: both;
background-color: yellow;
}