摘要:圣杯布局對(duì)于三欄布局來說,左右兩欄一般放置目錄等簡(jiǎn)要信息,中間一欄是主要信息。無論是三欄布局還是兩欄布局,以上方法都適用。純浮動(dòng)布局左右兩欄分別向左右浮動(dòng),中間設(shè)置值,寬度自適應(yīng)。
圣杯布局
對(duì)于三欄布局來說,左右兩欄一般放置目錄等簡(jiǎn)要信息,中間一欄是主要信息。頁(yè)面加載時(shí),用戶最希望第一時(shí)間看到的是中間一欄內(nèi)容,所以根據(jù)文檔流加載順序(從上到下),中間一欄必須放在左右兩欄的前面。而實(shí)際布局需要將中間一欄居中放置,所以在布局的時(shí)候就稍有不同,這是就需要用到圣杯布局。(原因or背景)
下面是代碼示例:
圣杯布局 HeaderCenterLeftRight
body{padding:0;margin:0} .header,.footer{width:100%; background: #666;height:30px;clear:both;} .container{ padding-left:150px; padding-right:200px; } .left{ background: #34934D; width:150px; float:left; margin-left:-100%; position: relative; left:-150px; } .center{ background: #D6D6D6; width:100%; float:left; } .right{ background: #EF4400; width:200px; float:left; margin-left:-200px; position:relative; right:-200px; }
運(yùn)行結(jié)果:
需要注意的地方:
在HTML中center是在left和right前面。
左右兩欄的寬度是固定的,中間一欄寬度是隨瀏覽器寬度變化而變化
當(dāng)left負(fù)外邊距使得left脫離container時(shí),會(huì)升上去。(right同理)
第三步中l(wèi)eft和right升上去后會(huì)左右擋住center,所以需要container設(shè)置padding,在將left和right定位。
當(dāng)然這里只是簡(jiǎn)單的舉例,為使代碼更加簡(jiǎn)潔清楚,container沒有加清浮動(dòng),此時(shí)他的高度為0.
圣杯布局的進(jìn)化:雙飛翼布局雙飛翼布局是在圣杯布局上進(jìn)行改進(jìn),當(dāng)left和right設(shè)置負(fù)margin,會(huì)上升并擋住center,圣杯布局是采用padding+relative定位,而雙飛翼布局是采用margin解決。
具體代碼如下
雙飛翼布局 HeaderCenterLeftRight
body{padding:0;margin:0} .header,.footer{width:100%; background: #666;height:30px;clear:both;} .left{ background: #34934D; width:150px; float:left; margin-left:-100%; } .center{ background: #D6D6D6; width:100%; float:left; } .center-inner{ margin-left: 150px; margin-right: 200px; } .right{ background: #EF4400; width:200px; float:left; margin-left:-200px; }
與圣杯運(yùn)行結(jié)果一樣。
需要注意的是
這里是在center里面套了一個(gè)div,再設(shè)置margin值。
left和right沒有使用定位。
圣杯布局的退化前面兩個(gè)布局是考慮到中間一欄先加載,但有些場(chǎng)景并不需要,此時(shí)可以很快的得到簡(jiǎn)單的三欄布局。
代碼示例如下:
圣杯布局退化 HeaderLeftCenterRight
body{padding:0;margin:0} .header,.footer{width:100%; background: #666;height:30px;clear:both;} .container{ padding-left: 150px; padding-right: 200px; } .left{ background: #34934D; width:150px; float:left; margin-left:-150px; } .center{ background: #D6D6D6; width:100%; float:left; } .right{ background: #EF4400; width:200px; float:right; margin-right: -200px; }
結(jié)果與圣杯布局一樣。
需要注意的是:
在HTML中l(wèi)eft放在center的前面。
主要實(shí)現(xiàn)的思路:根據(jù)文檔流從上到下為:left-center-right。首先將container設(shè)置左右padding,在將left和right設(shè)置負(fù)margin值,使其剛好落在container的padding中。
無論是三欄布局還是兩欄布局,以上方法都適用。
純浮動(dòng)布局左右兩欄分別向左右浮動(dòng),中間設(shè)置margin值,寬度自適應(yīng)。
代碼如下:
純浮動(dòng) HeaderLeftRightCenter
body{padding:0;margin:0} .header,.footer{width:100%; background: #666;height:30px;clear:both;} .left{ background: #34934D; width:150px; float:left; } .center{ background: #D6D6D6; margin-left: 150px; margin-right: 200px; } .right{ background: #EF4400; width:200px; float:right; }
運(yùn)行結(jié)果與圣杯布局一樣。
需要注意的點(diǎn):
浮動(dòng)的left和right需要放在center前面。浮動(dòng)前面有非浮動(dòng)的元素,后面浮動(dòng)元素只能在其后面。
center的width應(yīng)為auto。
絕對(duì)定位純浮動(dòng)是利用浮動(dòng)將左右兩欄定位,這里也可以絕對(duì)定位。center依舊設(shè)置margin值留出左右空位。
代碼如下:
絕對(duì)定位 HeaderLeftRightCenter
body{padding:0;margin:0} .header,.footer{width:100%; background: #666;height:30px;clear:both;} .container{ position: relative; } .left{ background: #34934D; width:150px; position: absolute; top: 0px; left: 0px; } .center{ background: #D6D6D6; margin-left: 150px; margin-right: 200px; } .right{ background: #EF4400; width:200px; position: absolute; top: 0px; right: 0px; }
運(yùn)行結(jié)果與圣杯布局一樣。
需要注意:container需要加position:relative(或其他非static)。
以上就是幾種常見的布局,可根據(jù)不同的場(chǎng)景選擇相應(yīng)的布局。如有錯(cuò)誤的地方還望指出,有更好的布局歡迎補(bǔ)充。
新年的第一篇博客完成啦,接下來要將之前所學(xué)的知識(shí)寫成一篇篇博文,2017年加油吧?。?!
文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請(qǐng)注明本文地址:http://specialneedsforspecialkids.com/yun/115460.html
摘要:重點(diǎn)介紹一下常見的三列布局之圣杯布局和雙飛翼布局。兩種布局方式的不同之處在于如何處理中間主列的位置圣杯布局是利用父容器的左右內(nèi)邊距定位雙飛翼布局是把主列嵌套在后利用主列的左右外邊距定位。 CSS總結(jié) 由于最近在準(zhǔn)備前端方面的面試,所以對(duì)自己平常工作中用到的地方做出一些總結(jié)。該篇是CSS部分(上),有許多地方敘述的并不是十分詳細(xì),只是大致的描述一下,給自己提供一個(gè)知識(shí)輪廓。本篇中主要描述...
摘要:本文概要本文將介紹如下幾種常見的布局其中實(shí)現(xiàn)三欄布局有多種方式,本文著重介紹圣杯布局和雙飛翼布局。借助等高布局正負(fù)可解決,下文會(huì)介紹雙飛翼布局特點(diǎn)同樣也是三欄布局,在圣杯布局基礎(chǔ)上進(jìn)一步優(yōu)化,解決了圣杯布局錯(cuò)亂問題,實(shí)現(xiàn)了內(nèi)容與布局的分離。 本文概要 本文將介紹如下幾種常見的布局: showImg(https://segmentfault.com/img/remote/14600000...
摘要:本文概要本文將介紹如下幾種常見的布局其中實(shí)現(xiàn)三欄布局有多種方式,本文著重介紹圣杯布局和雙飛翼布局。借助等高布局正負(fù)可解決,下文會(huì)介紹雙飛翼布局特點(diǎn)同樣也是三欄布局,在圣杯布局基礎(chǔ)上進(jìn)一步優(yōu)化,解決了圣杯布局錯(cuò)亂問題,實(shí)現(xiàn)了內(nèi)容與布局的分離。 本文概要 本文將介紹如下幾種常見的布局: showImg(https://segmentfault.com/img/remote/14600000...
摘要:本文概要本文將介紹如下幾種常見的布局其中實(shí)現(xiàn)三欄布局有多種方式,本文著重介紹圣杯布局和雙飛翼布局。借助等高布局正負(fù)可解決,下文會(huì)介紹雙飛翼布局特點(diǎn)同樣也是三欄布局,在圣杯布局基礎(chǔ)上進(jìn)一步優(yōu)化,解決了圣杯布局錯(cuò)亂問題,實(shí)現(xiàn)了內(nèi)容與布局的分離。 本文概要 本文將介紹如下幾種常見的布局: showImg(https://segmentfault.com/img/remote/14600000...
摘要:常用于控制頁(yè)面布局的定位機(jī)制普通流相對(duì)定位絕對(duì)定位和固定定位。左右布局最常用的就是通過浮動(dòng)左浮或右浮來實(shí)現(xiàn)浮動(dòng)。可以通過設(shè)置左右的外邊距為值來居中包括圖片。 這里,就CSS左右布局,左中右布局,水平與垂直居中,進(jìn)行討論。 CSS常用于控制頁(yè)面布局的定位機(jī)制:普通流、相對(duì)定位、絕對(duì)定位和固定定位。還可以使用float屬性來讓元素浮動(dòng)。 1.左右布局 最常用的就是通過浮動(dòng)(左浮或右浮)來實(shí)...
閱讀 1573·2021-09-23 11:21
閱讀 2344·2021-09-07 10:13
閱讀 834·2021-09-02 10:19
閱讀 1124·2019-08-30 15:44
閱讀 1720·2019-08-30 13:18
閱讀 1912·2019-08-30 11:15
閱讀 1104·2019-08-29 17:17
閱讀 2016·2019-08-29 15:31