內容提要: 在如今各個解析度顯示器n足鼎立的時期,頁面採用流動性布局(亦可稱自適應布局)不失為乙個好選擇。當然,具體實現不 是那麼容易,需要一定的css功力和實踐經驗。本文不講細節,只講外部的自適應架構,這也是實現整個頁面自適應的前提。目前為止,我所熟知的左中右三欄寬度自適應於瀏覽器的方法有三個:絕對定位法 ,margin負值法 以及自身浮動法 。 這些方法簡潔實用,且無相容性問題。如果您想在您的頁面上使用流動性布局,相信本文給您一些啟示的。
三種方法
為了演示的需要,首先限定下示例的布局結構:左中右三欄布局,左右兩欄寬度固定(要想不固定將寬度值改為百分值即可),中間欄寬度自適應。左右兩欄的寬度為200畫素。
1、絕對定位法
這或許是三種方法裡最直觀,最容易理解的:左右兩欄採用絕對定位,分別固定於頁面的左右兩側,中間的主體欄用左右margin值撐開距離。於是實現了三欄自適應布局。
type
="text/css"
>
html,body
#left,#right
#left
#right
#main
style
>
>這裡的左中右三個div的順序是可以任意調整的,這與剩下的兩中方法就不一樣了,需要注意一下。id="left"
>div
>
id="main"
>div
>
id="right"
>div
>
body
>
此方法的優點是,理解容易,上手簡單,受內部元素影響而破壞布局的概率低,就是比較經得起折騰。
缺點在於:如果中間欄含有最小寬度限制,或是含有寬度的內部元素,當瀏覽器寬度小到一定程度,會發生層重疊的情況。然而,一般情況下,除非使用者顯示器解析度寬度》=1600畫素,否則使用者不會把瀏覽器縮小到1000畫素以下的,所以該缺陷危害指數3.
2、margin負值法
這種方法是在實際的**中應用的最多的,我個人感覺多少有些跟風的嫌疑。此方法很難用一句話概括。首先,中間的主體要使用雙層標籤。外層div寬度 100%顯示,並且浮動(本例左浮動,下面所述依次為基礎),內層div為真正的主體內容,含有左右210畫素的margin值。左欄與右欄都是採用 margin負值定位的,左欄左浮動,margin-left為-100%,由於前面的div寬度100%與瀏覽器,所以這裡的-100%margin值 正好使左欄div定位到了頁面的左側;右側欄也是左浮動,其margin-left也是負值,大小為其本身的寬度即200畫素。
>id="main"
>
id="body"您需要注意幾個div的順序,無論是左浮動還是右浮動,先是主體部分div,這是肯定的,至於左右兩欄誰先誰後,都無所謂,我測試了ie6,firefox,以及chrome瀏覽器,表現一致。>div
>
div>
id="left"
>div
>
id="right"
>div
>
body
>
type
="text/css"
>
html,body
#main
#main #body
#left,#right
#left
#right
style
>
此方法的優點:三欄相互關聯,可謂真正意義上的自適應,有一定的抗性——布局不易受內部影響。
缺點在於:相對比較難理解些,上手不容易,**相對複雜。出現百分比寬度,過多的負值定位,如果出現布局的bug,排查不易。
3、自身浮動法
此方法**最簡單。應用了標籤浮動跟隨的特性。左欄左浮動,右欄右浮動,主體直接放後面,就實現了自適應。
>這裡三個div標籤的順序的關鍵是要把主體div放在最後,左右兩欄div順序任意。id="left"
>div
>
id="right"
>div
>
id="main"
>div
>
body
>
type
="text/css"
>
html,body
#main
#left,#right
#left
#right
style
>
此方法的優點是:**足夠簡潔與高效
不足在於:中間主體存在克星,clear:both屬性。如果要使用此方法,需避免明顯的clear樣式。
三種三欄網頁寬度自適應布局方法
1 絕對定位法 這或許是三種方法裡最直觀,最容易理解的 左右兩欄採用絕對定位,分別固定於頁面的左右兩側,中間的主體欄用左右margin值撐開距離。於是實現了三欄自適應布局。css 如下 為截圖 html 為 這裡的左中右三個div的順序是可以任意調整的,這與剩下的兩中方法就不一樣了,需要注意一下。此...
三欄網頁寬度自適應布局方法
一 絕對定位法 html片段如下 left main right css片段如下 html,body left,right left main right 思路 左右兩欄採用絕對定位,分別固定於頁面的左右兩側,中間的主體欄用左右margin值撐開距離。二 雙飛翼布局 main left right ...
《轉》我熟知的三種三欄網頁寬度自適應布局方法
by zhangxinxu from 一 前言 在如今各個解析度顯示器n足鼎立的時期,頁面採用流動性布局 亦可稱自適應布局 不失為乙個好選擇。當然,具體實現不是那麼容易,需要一定的css功力和實踐經驗。本文不講細節,只講外部的自適應架構,這也是實現整個頁面自適應的前提。目前為止,我所熟知的左中右三欄...