-定義:左右兩欄寬度固定,中間一欄根據父元素寬度填充滿(自適應)
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 團隊名稱 課程多數題目的解決方案都不是唯一的,這和我們在實際工作中的情況也是一致的。因此,我們的要求不僅僅是實現設計稿的效果,更是要多去...