三列式網頁布局如何用CSSfloats創建?_Div+CSS教程
教程Tag:暫無Tag,歡迎添加,賺取U幣!
三欄布局是目前最常見的網頁布局,主要頁內容放在中間一欄,邊上的兩欄放置導航鏈接之類的內容。基本布局一般是標題之下放置三欄,三欄占據整個頁面的寬度,最后在頁的底端放置頁腳,頁腳也占據整個頁面寬度。
絕大多數網頁設計者都熟悉傳統的網頁設計技術,用這些技術可以生成帶有表格、創建固定寬度布局或者“液態”(它可以根據用戶瀏覽器窗口寬度自動伸縮)布局的網頁。
現在,我們都開始拋棄基于表格的布局技術,許多網絡設計者正在從XHTML標記和CSS格式這一新范例中尋找創建三欄布局的方法。用絕對定位的方法從CSS中得到固定寬度的布局并不困難;但是得到液態布局就有點困難了。因此,本文介紹一種用CSS的float和clear屬性來獲得三欄液態布局的方法。
基本方法
基本的布局包含五個div,即標題、頁腳和三欄。標題和頁腳占據整個頁寬。左欄div和右欄div都是固定寬度的,并且用float屬性來把它們擠壓到瀏覽器窗口的左側和右側。中欄實際上占據了整個頁寬,中欄的內容在左、右兩欄之間“流淌”。由于中欄div的寬度并不固定,因此它可以根據瀏覽器窗口的改變進行必要的伸縮。中欄div的左側和右側的填充(padding)屬性保證內容安排在一個整潔的欄中,甚至當它伸展到邊欄(左欄或者右欄)的底端也是這樣。
三列式網頁布局的一個例子
[ 可先修改部分代碼 再運行查看效果 ]
請看看用本文所介紹的技術進行三欄布局的例子。這個例子用鮮艷的顏色來區分布局的各個div。
下面是XHTML代碼:
下面是CSS代碼:
代碼說明
HTML代碼中各部分出現的順序是非常重要的。左欄和右欄div必須在中欄之前出現。這樣才可以讓這兩個邊欄浮動到它們的位置上(屏幕兩側),并讓中欄的內容將“流”入它們之間的空間。假如瀏覽器在一個或者兩個邊欄div之前先發現中欄,那么中欄將占據屏幕的一側或者兩側,這樣浮動的部分就會跑到中欄的下面而不是中欄的旁邊了。
div#header和div#footer樣式(style)中的clear:both申明用來確保這浮動部分不會占據標題和頁腳的空間。div#header樣式中的padding:1px申明用來消除頁頭背景色中的異常邊,假如padding設置為零,那么在Netscape瀏覽器中就會看到這個異常。
div#left樣式中的float:left申明是用來把左欄擠壓到左側。width:150px申明用來設置欄的固定寬度,不過你也可以把它的寬度設置為其它具體值。類似的,div#right樣式中的float:right申明用來把右欄div擠壓到右側。在本例中,float把左欄和右欄完全擠壓到瀏覽器窗口的左邊緣和右邊緣。然而,假如這些div被其它div包含,那么float將會把它們擠壓到包含它們的div的邊緣。
在div#middle樣式中,clear申明答應中欄的內容“流淌”在兩個邊欄之間。padding:0px 160px 5px 160px申明設置了到左欄和右欄的填充,這樣答應150象素寬度的欄div,在加上10象素的間距。
這個例子比較粗糙、簡單,但很好的演示了用浮動div來創建三欄液態布局的邊欄這一基本技術。
絕大多數網頁設計者都熟悉傳統的網頁設計技術,用這些技術可以生成帶有表格、創建固定寬度布局或者“液態”(它可以根據用戶瀏覽器窗口寬度自動伸縮)布局的網頁。
現在,我們都開始拋棄基于表格的布局技術,許多網絡設計者正在從XHTML標記和CSS格式這一新范例中尋找創建三欄布局的方法。用絕對定位的方法從CSS中得到固定寬度的布局并不困難;但是得到液態布局就有點困難了。因此,本文介紹一種用CSS的float和clear屬性來獲得三欄液態布局的方法。
基本方法
基本的布局包含五個div,即標題、頁腳和三欄。標題和頁腳占據整個頁寬。左欄div和右欄div都是固定寬度的,并且用float屬性來把它們擠壓到瀏覽器窗口的左側和右側。中欄實際上占據了整個頁寬,中欄的內容在左、右兩欄之間“流淌”。由于中欄div的寬度并不固定,因此它可以根據瀏覽器窗口的改變進行必要的伸縮。中欄div的左側和右側的填充(padding)屬性保證內容安排在一個整潔的欄中,甚至當它伸展到邊欄(左欄或者右欄)的底端也是這樣。
三列式網頁布局的一個例子
代碼調試框 [www.zhaotila.cn]
[ 可先修改部分代碼 再運行查看效果 ]
請看看用本文所介紹的技術進行三欄布局的例子。這個例子用鮮艷的顏色來區分布局的各個div。
下面是XHTML代碼:
示例代碼 [www.zhaotila.cn]
<body>
<div id="header">
<h1>mb5u.com</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...mb5u.com
</div>
</body>
<div id="header">
<h1>mb5u.com</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...mb5u.com
</div>
</body>
下面是CSS代碼:
示例代碼 [www.zhaotila.cn]
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;
height:300px;
}
div#footer {
clear: both;
background-color: yellow;
}
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;
height:300px;
}
div#footer {
clear: both;
background-color: yellow;
}
代碼說明
HTML代碼中各部分出現的順序是非常重要的。左欄和右欄div必須在中欄之前出現。這樣才可以讓這兩個邊欄浮動到它們的位置上(屏幕兩側),并讓中欄的內容將“流”入它們之間的空間。假如瀏覽器在一個或者兩個邊欄div之前先發現中欄,那么中欄將占據屏幕的一側或者兩側,這樣浮動的部分就會跑到中欄的下面而不是中欄的旁邊了。
div#header和div#footer樣式(style)中的clear:both申明用來確保這浮動部分不會占據標題和頁腳的空間。div#header樣式中的padding:1px申明用來消除頁頭背景色中的異常邊,假如padding設置為零,那么在Netscape瀏覽器中就會看到這個異常。
div#left樣式中的float:left申明是用來把左欄擠壓到左側。width:150px申明用來設置欄的固定寬度,不過你也可以把它的寬度設置為其它具體值。類似的,div#right樣式中的float:right申明用來把右欄div擠壓到右側。在本例中,float把左欄和右欄完全擠壓到瀏覽器窗口的左邊緣和右邊緣。然而,假如這些div被其它div包含,那么float將會把它們擠壓到包含它們的div的邊緣。
在div#middle樣式中,clear申明答應中欄的內容“流淌”在兩個邊欄之間。padding:0px 160px 5px 160px申明設置了到左欄和右欄的填充,這樣答應150象素寬度的欄div,在加上10象素的間距。
這個例子比較粗糙、簡單,但很好的演示了用浮動div來創建三欄液態布局的邊欄這一基本技術。
相關Div+CSS教程:
- 相關鏈接:
- 教程說明:
Div+CSS教程-三列式網頁布局如何用CSSfloats創建?
。