用CSS floats創(chuàng)建三欄頁(yè)布局
更新時(shí)間:2007年02月09日 00:00:00 作者:
三欄布局是目前最常見的網(wǎng)頁(yè)布局,主要頁(yè)內(nèi)容放在中間一欄,邊上的兩欄放置導(dǎo)航鏈接之類的內(nèi)容?;静季忠话闶菢?biāo)題之下放置三欄,三欄占據(jù)整個(gè)頁(yè)面的寬度,最后在頁(yè)的底端放置頁(yè)腳,頁(yè)腳也占據(jù)整個(gè)頁(yè)面寬度。
絕大多數(shù)網(wǎng)頁(yè)設(shè)計(jì)者都熟悉傳統(tǒng)的網(wǎng)頁(yè)設(shè)計(jì)技術(shù),用這些技術(shù)可以生成帶有表格、創(chuàng)建固定寬度布局或者“液態(tài)”(它可以根據(jù)用戶瀏覽器窗口寬度自動(dòng)伸縮)布局的網(wǎng)頁(yè)。
現(xiàn)在,我們都開始拋棄基于表格的布局技術(shù),許多網(wǎng)絡(luò)設(shè)計(jì)者正在從XHTML標(biāo)記和CSS格式這一新范例中尋找創(chuàng)建三欄布局的方法。用絕對(duì)定位的方法從CSS中得到固定寬度的布局并不困難;但是得到液態(tài)布局就有點(diǎn)困難了。因此,本文介紹一種用CSS的float和clear屬性來(lái)獲得三欄液態(tài)布局的方法。
基本方法
基本的布局包含五個(gè)div,即標(biāo)題、頁(yè)腳和三欄。標(biāo)題和頁(yè)腳占據(jù)整個(gè)頁(yè)寬。左欄div和右欄div都是固定寬度的,并且用float屬性來(lái)把它們擠壓到瀏覽器窗口的左側(cè)和右側(cè)。中欄實(shí)際上占據(jù)了整個(gè)頁(yè)寬,中欄的內(nèi)容在左、右兩欄之間“流淌”。由于中欄div的寬度并不固定,因此它可以根據(jù)瀏覽器窗口的改變進(jìn)行必要的伸縮。中欄div的左側(cè)和右側(cè)的填充(padding)屬性保證內(nèi)容安排在一個(gè)整齊的欄中,甚至當(dāng)它伸展到邊欄(左欄或者右欄)的底端也是這樣。
三欄布局的一個(gè)例子
請(qǐng)看看用本文所介紹的技術(shù)進(jìn)行三欄布局的例子。這個(gè)例子用鮮艷的顏色來(lái)區(qū)分布局的各個(gè)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;
}
絕大多數(shù)網(wǎng)頁(yè)設(shè)計(jì)者都熟悉傳統(tǒng)的網(wǎng)頁(yè)設(shè)計(jì)技術(shù),用這些技術(shù)可以生成帶有表格、創(chuàng)建固定寬度布局或者“液態(tài)”(它可以根據(jù)用戶瀏覽器窗口寬度自動(dòng)伸縮)布局的網(wǎng)頁(yè)。
現(xiàn)在,我們都開始拋棄基于表格的布局技術(shù),許多網(wǎng)絡(luò)設(shè)計(jì)者正在從XHTML標(biāo)記和CSS格式這一新范例中尋找創(chuàng)建三欄布局的方法。用絕對(duì)定位的方法從CSS中得到固定寬度的布局并不困難;但是得到液態(tài)布局就有點(diǎn)困難了。因此,本文介紹一種用CSS的float和clear屬性來(lái)獲得三欄液態(tài)布局的方法。
基本方法
基本的布局包含五個(gè)div,即標(biāo)題、頁(yè)腳和三欄。標(biāo)題和頁(yè)腳占據(jù)整個(gè)頁(yè)寬。左欄div和右欄div都是固定寬度的,并且用float屬性來(lái)把它們擠壓到瀏覽器窗口的左側(cè)和右側(cè)。中欄實(shí)際上占據(jù)了整個(gè)頁(yè)寬,中欄的內(nèi)容在左、右兩欄之間“流淌”。由于中欄div的寬度并不固定,因此它可以根據(jù)瀏覽器窗口的改變進(jìn)行必要的伸縮。中欄div的左側(cè)和右側(cè)的填充(padding)屬性保證內(nèi)容安排在一個(gè)整齊的欄中,甚至當(dāng)它伸展到邊欄(左欄或者右欄)的底端也是這樣。
三欄布局的一個(gè)例子
請(qǐng)看看用本文所介紹的技術(shù)進(jìn)行三欄布局的例子。這個(gè)例子用鮮艷的顏色來(lái)區(qū)分布局的各個(gè)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;
}
相關(guān)文章
用CSS解決中英文混合字符串的截取省略問(wèn)題的解決辦法
用CSS解決中英文混合字符串的截取省略問(wèn)題的解決辦法...2007-02-02網(wǎng)頁(yè)設(shè)計(jì)者需要了解的_網(wǎng)頁(yè)字體大小數(shù)據(jù)參考
對(duì)于頁(yè)面來(lái)說(shuō),字體的大小設(shè)置是比較重要的,網(wǎng)上搜集了一些關(guān)于網(wǎng)頁(yè)中字體大小的數(shù)據(jù)對(duì)比,在這共享出來(lái)給大家一起看看,希望對(duì)大家在頁(yè)面制作過(guò)程中有所幫助!2008-10-10CSS hack實(shí)現(xiàn) CSS完美兼容IE6/IE7/FF的通用方法
CSS hack實(shí)現(xiàn) CSS完美兼容IE6/IE7/FF的通用方法...2007-11-11讓網(wǎng)頁(yè)框架透明 底部對(duì)齊的代碼
2008-01-01css 兼容性問(wèn)題this.style.cursor=''''hand''''
css 兼容性問(wèn)題this.style.cursor='hand'讓我們來(lái)CSS HACK2008-11-11CSS中Float(浮動(dòng))相關(guān)技巧文章
CSS中Float(浮動(dòng))相關(guān)技巧文章...2007-09-09