html css經典布局 等高 聖杯 雙飛翼

2021-09-29 09:22:59 字數 3863 閱讀 4333

以三欄等高布局為例:

第一欄寬度30%,第二欄寬度40%,第三欄寬度30%

幾欄就寫幾個容器,這裡需要3個容器,分別是爺爺爸爸和兒子,寬度是100%

使用相對定位把爸爸向左側移動30%,漏出爺爺的30%

使用相對定位把兒子向左側移動40%,漏出爸爸的40%

在兒子裡面寫左中右三欄,給這三欄設定浮動,讓他們在同一行顯示

使用相對定位,把第三欄定位到和爺爺漏出的部分重疊到一起

使用相對定位,把第二欄定位到和爸爸漏出的部分重疊到一起

使用相對定位,把第一欄定位到和兒子漏出的部分重疊到一起

由於左中右三欄浮動,所以兒子的高度為0,需要清除浮動,可以使用float:left,然後給爸爸也設定float:left清除浮動,給爺爺設定overflow:hidden清除浮動

三欄等高,兒子爸爸爺爺是等高的

body**:

<

!--

三欄等高布局

第一欄 寬度30

% 第二欄 寬度40

% 第三欄 寬度30%--

>

="grandpa"

>

="father"

>

="son"

>

="left"

>左左左左左左左左左左左左左左左左左左左左<

/div>

="center"

>中中中中中中中中中中中中中中中中中中中<

/div>

="right"

>右<

/div>

<

/div>

<

/div>

<

/div>

<

/body>

css**:

*//清除頁面預設樣式

.grandpa

.father

.son

.left

.center

.right

<

/style>

利用padding和margin互相抵制

以三欄等高布局為例

給三欄設定同樣的padding-bottom:9999px

給三欄設定同樣的margin-bottom:-9999px

給三欄的父元素設定overflow:hidden(清除浮動,溢位隱藏)

body**:

="bigbox"

>

="box"

>

="left"

>左左左左左左左左左左左左左左左左左左左

<

/div>

="center"

>中<

/div>

="right"

>右右右右右右右右右右右右右右右<

/div>

<

/div>

<

/div>

<

/body>

css**:

.bigbox

.box

.left

.center

.right

<

/style>

利用邊框設定等高(只能設定兩欄或者三欄等高布局)

以三欄等高布局為例 , 第一欄寬度300px,第二欄寬度400px,第三欄寬度300px

設定乙個盒子,寬度是第二欄的寬度400px

給這個盒子設定左邊框是第一欄的寬度300px

給這個盒子設定右邊框是第三欄的寬度300px

在這個盒子裡設定三欄,注意順序:中-左-右

給這三欄設定浮動

利用margin的負值,把左側一欄移動到和盒子的左邊框重疊的位置

利用margin的負值,把右側一欄拽到第一行的位置

再利用相對定位,把右側一欄定位到和右邊框重疊的位置

等高看的是盒子的高度和左右邊框的高度

body**:

="box cleafix"

>

="center"

>中中中中中中中中中中<

/div>

="left"

>左左左左左左左左<

/div>

="right"

>右<

/div>

<

/div>

<

/body>

css**:

.cleafix:after

//清除浮動

.box

.center

.left

.right

<

/style>

三欄布局

左右兩側寬度固定

中間一欄寬度自適應

以左側寬度300px,右側寬度是200px為例

寫結構,注意順序:中——左——右

中間一欄寬度設定成100%;

給左中右三欄設定浮動

給左側一欄加margin-left:-100%,讓左側盒子移動到第一行的最左邊的位置

給右側盒子設定margin-left:-200px(右側盒子的寬度),讓右側盒子移動到第一行的最右邊的位置

給他們的父元素設定左右兩邊的padding值:padding:0 200px 0 300px; 讓所有子元素向中間移動

使用相對定位把左右兩側的盒子定位到空白區域

給父元素設定最小寬度

body**:

="center"

>

<

/div>

="left"

>

<

/div>

="right"

>

<

/div>

<

/body>

css**:

body

.center

.left

.right

<

/style>

兩者不同在於聖杯布局是給父元素加padding往中間擠,而雙飛翼布局是在center中再加乙個div,在d這個div上面用padding或者margin往中間擠

前五條同聖杯布局一樣

6. 在中間一欄裡在加乙個盒子,給這個盒子設定左右兩側margin或者padding,讓內容往中間擠

7. 給大盒子設定清除浮動和最小寬度

body**:

="box"

>

="center"

>

="cenmain"

>中<

/div>

<

/div>

="left"

>

<

/div>

="right"

>

<

/div>

<

/div>

css**:

*.center

.left

.right

.cenmain

.box

<

/style>

css聖杯布局 等高布局

所謂聖杯布局,就是自適應瀏覽器的解析度,也稱雙飛翼布局。例子 1 style 2body 3.center 4.left 5.right 6style 7head 8 body 9 div class center 2 div 10 div class left 1 div 11 div class...

HTML CSS 經典布局

html div class i box clearfix div class layout l clearfix div class i left p 左側定寬 p div div class i right p 右側自適應 p div div div div class i box clearf...

CSS經典布局 聖杯布局

廢話不多說,先上全部的 body container container column center left right footer ie6 fix html left 首先就是建立大體的布局,header footer container 給 container 乙個預設的padding le...