摘要:浮動代碼如下注意元素次序代碼如下左欄左浮動中間自適應右欄右浮動這種方式代碼足夠簡潔與高效,也容易理解后記四種方法其實只有圣杯布局和雙飛翼布局較難理解,但實際上理解了圣杯布局,雙飛翼布局自然就理解了。
前言
總括: 不管是三欄布局還是兩欄布局都是我們在平時項目里經常使用的,也許你不知道什么事三欄布局什么是兩欄布局但實際已經在用,或許你知道三欄布局的一種或兩種方法,但實際操作中也只會依賴那某一種方法,本文具體的介紹了三欄布局的四種方法,并介紹了它的使用場景。
原文地址:CSS三欄布局的四種方法
知乎專欄&&簡書專題:前端進擊者(知乎)&&前端進擊者(簡書)
博主博客地址:Damonare的個人博客
年華一去不復返,事業放棄再難成。
正文1.絕對定位法所謂三欄布局就是指頁面分為左中右三部分然后對中間一部分做自適應的一種布局方式。
HTML代碼如下:
LeftMainRight
CSS代碼如下:
//簡單的進行CSS reset body,html{ height:100%; padding: 0px; margin:0px; } //左右絕對定位 .left,.right{ position: absolute; top:0px; background: red; height:100%; } .left{ left:0; width:100px; } .right{ right:0px; width:200px; } //中間使用margin空出左右元素所占據的空間 .main{ margin:0px 100px 200px 0px; height:100%; background: blue; }
該方法有個明顯的缺點,就是如果中間欄含有最小寬度限制,或是含有寬度的內部元素,當瀏覽器寬度小到一定程度,會發生層重疊的情況。
2. 圣杯布局HTML代碼如下:
//注意元素次序MainLeftRight
CSS代碼如下:
//習慣性的CSS reset body,html{ height:100%; padding: 0; margin: 0 } //父元素body空出左右欄位 body { padding-left: 100px; padding-right: 200px; } //左邊元素更改 .left { background: red; width: 100px; float: left; margin-left: -100%; position: relative; left: -100px; height: 100%; } //中間部分 .main { background: blue; width: 100%; height: 100%; float: left; } //右邊元素定義 .right { background: red; width: 200px; height: 100%; float: left; margin-left: -200px; position: relative; right: -200px; }
相關解釋如下:
(1)中間部分需要根據瀏覽器寬度的變化而變化,所以要用100%,這里設左中右向左浮動,因為中間100%,左層和右層根本沒有位置上去
(2)把左層margin負100后,發現left上去了,因為負到出窗口沒位置了,只能往上挪
(3)按第二步這個方法,可以得出它只要挪動窗口寬度那么寬就能到最左邊了,利用負邊距,把左右欄定位
(4)但由于左右欄遮擋住了中間部分,于是采用相對定位方法,各自相對于自己把自己挪出去,得到最終結果
雙飛翼布局HTML代碼如下:
MainLeftRight
CSS代碼如下:
//CSS reset body,html { height:100%; padding: 0; margin: 0 } body { /*padding-left:100px;*/ /*padding-right:200px;*/ } .left { background: red; width: 100px; float: left; margin-left: -100%; height: 100%; /*position: relative;*/ /*left:-100px;*/ } .main { background: blue; width: 100%; float: left; height: 100%; } .right { background: red; width: 200px; float: left; margin-left: -200px; height: 100%; /*position:relative;*/ /*right:-200px;*/ } //新增inner元素 .inner { margin-left: 100px; margin-right: 200px; }
圣杯布局實際看起來是復雜的后期維護性也不是很高,在淘寶UED的探討下,出來了一種新的布局方式就是雙飛翼布局,代碼如上。增加多一個div就可以不用相對布局了,只用到了浮動和負邊距。和圣杯布局差異的地方已經被注釋。
4. 浮動HTML代碼如下:
//注意元素次序LeftRightMain
CSS代碼如下:
//CSS reset body,html { height:100%; padding: 0; margin: 0 } //左欄左浮動 .left { background: red; width: 100px; float: left; height: 100%; } //中間自適應 .main { background: blue; height: 100%; margin:0px 100px 200px 0px; } //右欄右浮動 .right { background: red; width: 200px; float: right; height: 100%; }
這種方式代碼足夠簡潔與高效,也容易理解
后記四種方法其實只有圣杯布局和雙飛翼布局較難理解,但實際上理解了圣杯布局,雙飛翼布局自然就理解了。
文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。
轉載請注明本文地址:http://specialneedsforspecialkids.com/yun/115401.html
摘要:本文概要本文將介紹如下幾種常見的布局其中實現三欄布局有多種方式,本文著重介紹圣杯布局和雙飛翼布局。借助等高布局正負可解決,下文會介紹雙飛翼布局特點同樣也是三欄布局,在圣杯布局基礎上進一步優化,解決了圣杯布局錯亂問題,實現了內容與布局的分離。 本文概要 本文將介紹如下幾種常見的布局: showImg(https://segmentfault.com/img/remote/14600000...
摘要:本文概要本文將介紹如下幾種常見的布局其中實現三欄布局有多種方式,本文著重介紹圣杯布局和雙飛翼布局。借助等高布局正負可解決,下文會介紹雙飛翼布局特點同樣也是三欄布局,在圣杯布局基礎上進一步優化,解決了圣杯布局錯亂問題,實現了內容與布局的分離。 本文概要 本文將介紹如下幾種常見的布局: showImg(https://segmentfault.com/img/remote/14600000...
摘要:本文概要本文將介紹如下幾種常見的布局其中實現三欄布局有多種方式,本文著重介紹圣杯布局和雙飛翼布局。借助等高布局正負可解決,下文會介紹雙飛翼布局特點同樣也是三欄布局,在圣杯布局基礎上進一步優化,解決了圣杯布局錯亂問題,實現了內容與布局的分離。 本文概要 本文將介紹如下幾種常見的布局: showImg(https://segmentfault.com/img/remote/14600000...
摘要:絕對底部前端掘金來自國外的設計達人,純,可以實現當正文內容很少時,底部位于窗口最下面。有效解決圖片使用單位邊角缺失的問題前端掘金起因在移動端使用布局時圖片也需要用單位。 CSS 絕對底部 - 前端 - 掘金來自國外的設計達人,純CSS,可以實現: 當正文內容很少時,底部位于窗口最下面。當改變窗口高度時,不會出現重疊問題。甚至,創造該CSS的人還專門成立一個網站介紹這個CSS底部布局方案...
閱讀 3916·2021-11-24 09:38
閱讀 3087·2021-11-17 09:33
閱讀 3862·2021-11-10 11:48
閱讀 1233·2021-10-14 09:48
閱讀 3123·2019-08-30 13:14
閱讀 2543·2019-08-29 18:37
閱讀 3385·2019-08-29 12:38
閱讀 1409·2019-08-29 12:30