三種三欄網頁寬度自適應布局方法

2021-05-22 08:54:04 字數 2454 閱讀 4308

內容提要: 在如今各個解析度顯示器n足鼎立的時期,頁面採用流動性布局(亦可稱自適應布局)不失為乙個好選擇。當然,具體實現不 是那麼容易,需要一定的css功力和實踐經驗。本文不講細節,只講外部的自適應架構,這也是實現整個頁面自適應的前提。目前為止,我所熟知的左中右三欄寬度自適應於瀏覽器的方法有三個:絕對定位法 ,margin負值法 以及自身浮動法 。 這些方法簡潔實用,且無相容性問題。如果您想在您的頁面上使用流動性布局,相信本文給您一些啟示的。

三種方法

為了演示的需要,首先限定下示例的布局結構:左中右三欄布局,左右兩欄寬度固定(要想不固定將寬度值改為百分值即可),中間欄寬度自適應。左右兩欄的寬度為200畫素。

1、絕對定位法

這或許是三種方法裡最直觀,最容易理解的:左右兩欄採用絕對定位,分別固定於頁面的左右兩側,中間的主體欄用左右margin值撐開距離。於是實現了三欄自適應布局。

type

="text/css"

>

html,body

#left,#right

#left

#right

#main

style

>

>

id="left"

>div

>

id="main"

>div

>

id="right"

>div

>

body

>

這裡的左中右三個div的順序是可以任意調整的,這與剩下的兩中方法就不一樣了,需要注意一下。

此方法的優點是,理解容易,上手簡單,受內部元素影響而破壞布局的概率低,就是比較經得起折騰。

缺點在於:如果中間欄含有最小寬度限制,或是含有寬度的內部元素,當瀏覽器寬度小到一定程度,會發生層重疊的情況。然而,一般情況下,除非使用者顯示器解析度寬度》=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>

id="left"

>div

>

id="right"

>div

>

body

>

type

="text/css"

>

html,body

#main

#main #body

#left,#right

#left

#right

style

>

您需要注意幾個div的順序,無論是左浮動還是右浮動,先是主體部分div,這是肯定的,至於左右兩欄誰先誰後,都無所謂,我測試了ie6,firefox,以及chrome瀏覽器,表現一致。

此方法的優點:三欄相互關聯,可謂真正意義上的自適應,有一定的抗性——布局不易受內部影響。

缺點在於:相對比較難理解些,上手不容易,**相對複雜。出現百分比寬度,過多的負值定位,如果出現布局的bug,排查不易。

3、自身浮動法

此方法**最簡單。應用了標籤浮動跟隨的特性。左欄左浮動,右欄右浮動,主體直接放後面,就實現了自適應。

>

id="left"

>div

>

id="right"

>div

>

id="main"

>div

>

body

>

type

="text/css"

>

html,body

#main

#left,#right

#left

#right

style

>

這裡三個div標籤的順序的關鍵是要把主體div放在最後,左右兩欄div順序任意。

此方法的優點是:**足夠簡潔與高效

不足在於:中間主體存在克星,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功力和實踐經驗。本文不講細節,只講外部的自適應架構,這也是實現整個頁面自適應的前提。目前為止,我所熟知的左中右三欄...