CSS基礎(二)之三欄式布局

2021-07-28 10:46:16 字數 1813 閱讀 3616

-定義:左右兩欄寬度固定,中間一欄根據父元素寬度填充滿(自適應)

1.絕對定位法

原理是左右兩個塊用絕對定位固定大小定位到左邊和右邊,中間的塊設定左右margin比左右兩個塊稍大就在中間了

中間的塊為啥能自適應大小:

瀏覽器放大縮小,整個的寬度也是在變大變小,但是中間的塊只是設定margin比兩邊多一點,沒有設定寬度,因此能適應放大縮小,會隨縮小後瀏覽器變寬同時變寬

**如下:

id="left">左邊欄div>

id="right">右邊欄div>

id="main">主內容div>

html,body

#left,

#right

#left

#right

#main

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

此方法的優點是三個div順序可以任意改變。

缺點在於:如果中間欄含有最小寬度限制,或是含有寬度的內部元素,當瀏覽器寬度小到一定程度,會發生層重疊的情況。然而,一般情況下,除非使用者顯示器解析度寬度》=1600畫素,否則使用者不會把瀏覽器縮小到1000畫素以下的,所以該缺陷危害指數3.

2. 自身浮動法

就是把上面兩個絕對定位的塊變成了浮動,乙個浮動到最左邊乙個浮動到右邊

#left,

#right

#right

#main

該布局法的好處是受外界影響小,但是不足是 三個元素的順序,center一定要放在最後,這是和絕對定位不一樣的地方,center佔據文件流位置,所以一定要放在最後

如果要使用此方法,需避免明顯的clear樣式。

3.負邊距法(一般不要用)

先說下負邊距的不同效果

在靜態元素 並且固定寬時,top 或left的負值是正常人理解的向上或向左x值,而bottom或right的負值是讓其下邊的兄弟元素向上x值。

負邊距法的原理

先用乙個div作為主體父元素滿寬度float向左(如果沒有他,左右的負邊距沒法定位)

中間主題部分通過margin固定在中間(和上面一樣)

兩邊的部分,左邊這個用margin-left:-100%來定位

什麼意思:本來主元素已經在float的層上佔滿了一行,本來下乙個float應該在下一行的,但是加了負的margin後,元素就可以從佔滿的這一行的最後開始往前浮動。所以-100%是向左移動百分之百,所以本來在第一行最後,移動百分之百就到了最左邊,右邊的也是這樣移動自身長度就到了最右邊,這就是原理了

**如下

id="main">

id="maincontainer">main contentdiv>

div>

id="left">

id="leftcontainer"

class="inner">left contentdiv>

div>

id="right">

id="rightcontainer"

class="inner">rightdiv>

div>

#main

#maincontainer

#left

#right

#left

.inner,

#right

.inner

CSS三欄式布局

以下兩種方式分別用float和position absolute 實現,中間的自適應寬度都是用margin實現的,事實證明margin真的很方便!方法1 position container left,right left content right 這種方式存在的乙個問題 container的高度...

三欄式布局

通常來說,三欄式最基本要解決的是左右兩側固定寬度,中間列自適應寬度,另外根據瀏覽器從上至下的渲染原理,通常中間欄才是最主要的內容,最好能在dom結構上將中間欄放在更前面 中間欄需要自適應寬度,自然想到塊級元素特性,但正因為這種獨佔一行的特性,只能將左右提前並且兩邊浮動,而中放最後做自適應寬度 另外就...

三欄式布局

真是坑壞我了.就因為html裡left,right,center的位置一直出錯 應該是left,right,center我寫成了left,center,right 團隊名稱 課程多數題目的解決方案都不是唯一的,這和我們在實際工作中的情況也是一致的。因此,我們的要求不僅僅是實現設計稿的效果,更是要多去...