用CSS floats創(chuàng)建三欄頁布局 | ||
作者: Builder.com
2004-04-21 11:16 AM |
||
三欄布局是目前最常見的網(wǎng)頁布局,主要頁內(nèi)容放在中間一欄,邊上的兩欄放置導(dǎo)航鏈接之類的內(nèi)容。基本布局一般是標(biāo)題之下放置三欄,三欄占據(jù)整個頁面的寬度,最后在頁的底端放置頁腳,頁腳也占據(jù)整個頁面寬度。
絕大多數(shù)網(wǎng)頁設(shè)計者都熟悉傳統(tǒng)的網(wǎng)頁設(shè)計技術(shù),用這些技術(shù)可以生成帶有表格、創(chuàng)建固定寬度布局或者“液態(tài)”(它可以根據(jù)用戶瀏覽器窗口寬度自動伸縮)布局的網(wǎng)頁。 現(xiàn)在,我們都開始拋棄基于表格的布局技術(shù),許多網(wǎng)絡(luò)設(shè)計者正在從XHTML標(biāo)記和CSS格式這一新范例中尋找創(chuàng)建三欄布局的方法。用絕對定位的方法從CSS中得到固定寬度的布局并不困難;但是得到液態(tài)布局就有點困難了。因此,本文介紹一種用CSS的 float 和 clear 屬性來獲得三欄液態(tài)布局的方法。 基本方法基本的布局包含五個div,即標(biāo)題、頁腳和三欄。標(biāo)題和頁腳占據(jù)整個頁寬。左欄div和右欄div都是固定寬度的,并且用 float 屬性來把它們擠壓到瀏覽器窗口的左側(cè)和右側(cè)。中欄實際上占據(jù)了整個頁寬,中欄的內(nèi)容在左、右兩欄之間“流淌”。由于中欄div的寬度并不固定,因此它可以根據(jù)瀏覽器窗口的改變進行必要的伸縮。中欄div的左側(cè)和右側(cè)的填充(padding)屬性保證內(nèi)容安排在一個整齊的欄中,甚至當(dāng)它伸展到邊欄(左欄或者右欄)的底端也是這樣。 三欄布局的一個例子
請看看用本文所介紹的技術(shù)進行三欄布局的
例子
。這個例子用鮮艷的顏色來區(qū)分布局的各個div。下面是XHTML代碼:
|
代碼說明
<!--start banner ad--><!--ba--> <noscript></noscript> <!--end banner ad--> |
HTML代碼中各部分出現(xiàn)的順序是非常重要的。左欄和右欄div必須在中欄之前出現(xiàn)。這樣才可以讓這兩個邊欄浮動到它們的位置上(屏幕兩側(cè)),并讓中欄的內(nèi)容將“流”入它們之間的空間。如果瀏覽器在一個或者兩個邊欄div之前先發(fā)現(xiàn)中欄,那么中欄將占據(jù)屏幕的一側(cè)或者兩側(cè),這樣浮動的部分就會跑到中欄的下面而不是中欄的旁邊了。
div#header 和 div#footer 樣式(style)中的 clear:both 申明用來確保這浮動部分不會占據(jù)標(biāo)題和頁腳的空間。 div#header 樣式中的 padding:1px 申明用來消除頁頭背景色中的異常邊,如果 padding 設(shè)置為零,那么在Netscape瀏覽器中就會看到這個異常。
div#left 樣式中的 float:left 申明是用來把左欄擠壓到左側(cè)。 width:150px 申明用來設(shè)置欄的固定寬度,不過你也可以把它的寬度設(shè)置為其它具體值。類似的, div#right 樣式中的 float:right 申明用來把右欄div擠壓到右側(cè)。在本例中, float 把左欄和右欄完全擠壓到瀏覽器窗口的左邊緣和右邊緣。然而,如果這些div被其它div包含,那么 float 將會把它們擠壓到包含它們的div的邊緣。
在 div#middle 樣式中, clear 申明允許中欄的內(nèi)容“流淌”在兩個邊欄之間。 padding:0px 160px 5px 160px 申明設(shè)置了到左欄和右欄的填充,這樣允許150象素寬度的欄div,在加上10象素的間距。
這個例子非常粗糙和簡單,但是它很好的演示了用浮動div來創(chuàng)建三欄液態(tài)布局的邊欄這一基本技術(shù)。
更多文章、技術(shù)交流、商務(wù)合作、聯(lián)系博主
微信掃碼或搜索:z360901061

微信掃一掃加我為好友
QQ號聯(lián)系: 360901061
您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點擊下面給點支持吧,站長非常感激您!手機微信長按不能支付解決辦法:請將微信支付二維碼保存到相冊,切換到微信,然后點擊微信右上角掃一掃功能,選擇支付二維碼完成支付。
【本文對您有幫助就好】元
