元素多多看對(duì)齊
元素多多看對(duì)齊
元素多多看對(duì)齊
元素多多看對(duì)齊
元素多多看對(duì)齊
元素多多看對(duì)齊
元素多多看對(duì)齊
元素多多看對(duì)齊
元素多多看對(duì)齊
元素多多看對(duì)齊
元素多多看對(duì)齊
元素多多看對(duì)齊
元素多多看對(duì)齊
元素多多看對(duì)齊
元素多多看對(duì)齊
摘要:雙飛翼布局是對(duì)圣杯布局的優(yōu)化,先實(shí)現(xiàn)中間最重要的身體部分,再實(shí)現(xiàn)翅膀,所以叫雙飛翼布局。參考資料跟這些特性相互疊加后會(huì)怎么樣經(jīng)典布局之雙飛翼布局
‘display’、’position’ 和 ‘float’ 的相互關(guān)系 圣杯布局和雙飛翼 什么是圣杯布局和雙飛翼布局?
圣杯布局和雙飛翼布局可實(shí)現(xiàn)兩邊寬度固定,中間寬度自適應(yīng),外部高度為三者中的最高高度的三列布局,當(dāng)然,由擴(kuò)展性這樣的布局不僅僅只是三列,
圣杯布局因?yàn)楝F(xiàn)有的技術(shù)全部都有缺點(diǎn),要找到一種好的實(shí)現(xiàn)方法就像找到圣杯一樣難。
雙飛翼布局是對(duì)圣杯布局的優(yōu)化,先實(shí)現(xiàn)中間最重要的身體部分,再實(shí)現(xiàn)翅膀,所以叫雙飛翼布局。
早期用table實(shí)現(xiàn),現(xiàn)在不用了,因?yàn)閠able要等到頁面加載完之后才渲染。table有一些略根性,這個(gè)我并不是很清楚,總之table并不推薦。
布局實(shí)現(xiàn)思路1.因?yàn)橹虚g的主體內(nèi)容最重要,所以先加載它,所以html中middle放在最前面
2.他們?nèi)齻€(gè)要對(duì)其,先將middle設(shè)為全寬,讓left和right浮動(dòng)上去,并且一個(gè)在左一個(gè)在右。
3.讓middle自適應(yīng)寬度
4.外部高度為三者最高的高度
先給出html的結(jié)構(gòu),為了方便觀察,這里也給出了頭部和腳部:
實(shí)現(xiàn)過程我是頭部 我是中間元素多多看對(duì)齊
元素多多看對(duì)齊
元素多多看對(duì)齊
元素多多看對(duì)齊
元素多多看對(duì)齊
元素多多看對(duì)齊
元素多多看對(duì)齊
元素多多看對(duì)齊
元素多多看對(duì)齊
元素多多看對(duì)齊
元素多多看對(duì)齊
元素多多看對(duì)齊
元素多多看對(duì)齊
元素多多看對(duì)齊
元素多多看對(duì)齊
我是左我是右
首先給出相應(yīng)的寬度和背景值,便于觀察
header{ height: 150px; background-color: #0099FF; } article{ /*height值只是為了方便看效果*/ height: 300px; background-color: #924652; } footer{ height: 150px; background-color: #CCCC33; } article .middle{ background-color: darksalmon; } article .left{ background-color: #65cca1; width: 150px; } article .right{ background-color: #f786ff; width: 200px; }
先把中middle浮動(dòng)上去,給他一個(gè)全寬,原有基礎(chǔ)上添加
.middle{ float:left; width:100%; }
把left放到middle左邊,原有基礎(chǔ)上添加
.left{ float:left; margin-left:-100%; }
把right放到middle右邊,原有基礎(chǔ)上添加
.right{ float:left; /*這里的150px為right的寬度*/ margin-left:-150px; }
middle自適應(yīng),原有基礎(chǔ)上添加
article{ padding-left: 150px; padding-right: 100px; } article .left{ position: relative; left: -150px; } article .right{ position: relative; left: 100px; }
外部高度為三者中最高,原有基礎(chǔ)上添加為(不想全部為最大的高度,middle,right,left誰最高設(shè)誰的樣式即可)
article .middle{ padding-bottom: 9999px; margin-bottom: -9999px; } article .left{ padding-bottom: 9999px; margin-bottom: -9999px; } article .right{ padding-bottom: 9999px; margin-bottom: -9999px; } article{ overflow: hidden; }圣杯布局全部代碼:
*{ margin: 0; padding: 0; } header{ height: 150px; background-color: #0099FF; } article{ /*height: 300px;*/ background-color: #924652; padding-left: 150px; padding-right: 100px; overflow: hidden; } footer{ height: 150px; background-color: #CCCC33; } article .middle{ background-color: darksalmon; float: left; width: 100%; padding-bottom: 9999px; margin-bottom: -9999px; } article .left{ background-color: #65cca1; float: left; width: 150px; margin-left: -100%; position: relative; left: -150px; } article .right{ background-color: #f786ff; float: left; width: 200px; margin-left: -200px; position: relative; left: 100px; }實(shí)現(xiàn)雙飛翼布局 有了圣杯布局為什么還要有雙飛翼布局
圣杯布局是有一定局限性的,在middle居中時(shí),限定了left和right必為position:relative才合適,如果它們不為relative,整個(gè)布局就費(fèi)了。
怎樣解決圣杯布局的局限性?關(guān)鍵是給middle內(nèi)部添加一層,作為安全層。
修改html。為middle加個(gè)內(nèi)部層,原有基礎(chǔ)上添加
實(shí)現(xiàn)過程我是中間元素多多看對(duì)齊
元素多多看對(duì)齊
元素多多看對(duì)齊
元素多多看對(duì)齊
元素多多看對(duì)齊
元素多多看對(duì)齊
元素多多看對(duì)齊
元素多多看對(duì)齊
元素多多看對(duì)齊
元素多多看對(duì)齊
元素多多看對(duì)齊
元素多多看對(duì)齊
元素多多看對(duì)齊
元素多多看對(duì)齊
元素多多看對(duì)齊
前面left和right浮動(dòng)上來的過程與圣杯一致,不同的是middle自適應(yīng),將圣杯布局的middle自適應(yīng)步驟改為:
.inner{ margin-left: 150px; margin-right: 150px; }
外部高度為三者最高的步驟類似圣杯布局,將middle出的設(shè)置改為inner的即可
雙飛翼布局全部代碼*{ margin: 0; padding: 0; } header{ height: 150px; background-color: #0099FF; } article{ /*height: 300px;*/ background-color: #924652; overflow: hidden; } footer{ height: 150px; background-color: #CCCC33; } article .middle{ background-color: darksalmon; float: left; width: 100%; } article .left{ background-color: #65cca1; float: left; width: 150px; height: 16px; margin-left: -100%; padding-bottom: 9999px; margin-bottom: -9999px; } article .right{ background-color: #f786ff; float: left; width: 200px; height: 16px; margin-left: -200px; padding-bottom: 9999px; margin-bottom: -9999px; } .inner{ margin-left: 150px; margin-right: 150px; padding-bottom: 9999px; margin-bottom: -9999px; }不僅僅是三列 怎樣實(shí)現(xiàn)兩列布局?
float:left便可輕松實(shí)現(xiàn),其中l(wèi)eft作為主體部分
怎樣實(shí)現(xiàn)三列布局?圣杯布局和雙飛翼布局便是三列布局
怎樣實(shí)現(xiàn)多列布局?在三列布局的基礎(chǔ)上,將最后一列不斷擴(kuò)張成兩列布局或者三列布局即可實(shí)現(xiàn)
思考:1.圣杯布局和雙飛翼布局一步步實(shí)現(xiàn)的思路
2.float的實(shí)質(zhì)
以float:left為例,假設(shè)a在b前面,將b浮動(dòng)到左邊,看起來像是把a(bǔ)擠到了它后面,其實(shí)它更像是在a中插入了文字,它是堆疊在了a上,給b設(shè)一定的透明度,給a加個(gè)顏色,會(huì)發(fā)現(xiàn)b的下面是a。
3.float使用時(shí)的一個(gè)注意事項(xiàng)
只有寬沒有高的float并不能達(dá)到占位的目的,它并不能擠壓到后面的元素
4.float最多能在垂直方向上浮動(dòng)多遠(yuǎn)
元素float之后,占據(jù)文檔流中能占的位置,能占的位置便是,最接近的前一行非浮動(dòng)元素的后面
5.使用margin-left超視口進(jìn)行折行控制時(shí),向左的折動(dòng)距離越大,當(dāng)前行一點(diǎn)點(diǎn)向視口外部縮進(jìn),當(dāng)縮進(jìn)為自己寬度并漸漸增大時(shí),會(huì)一下子全部出現(xiàn)在上一行中并漸漸移動(dòng)。
position跟display、margin collapse、overflow、float這些特性相互疊加后會(huì)怎么樣?
CSS 經(jīng)典布局之雙飛翼布局
文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請(qǐng)注明本文地址:http://systransis.cn/yun/111676.html
摘要:前言三欄布局,顧名思義就是兩邊固定,中間自適應(yīng)。三欄布局在實(shí)際的開發(fā)十分常見,比如淘寶網(wǎng)的首頁,就是個(gè)典型的三欄布局即左邊商品導(dǎo)航和右邊導(dǎo)航固定寬度,中間的主要內(nèi)容隨瀏覽器寬度自適應(yīng)。但網(wǎng)格布局的兼容性不好。 前言 三欄布局,顧名思義就是兩邊固定,中間自適應(yīng)。三欄布局在實(shí)際的開發(fā)十分常見,比如淘寶網(wǎng)的首頁,就是個(gè)典型的三欄布局:即左邊商品導(dǎo)航和右邊導(dǎo)航固定寬度,中間的主要內(nèi)容隨瀏覽器寬...
摘要:前言三欄布局,顧名思義就是兩邊固定,中間自適應(yīng)。三欄布局在實(shí)際的開發(fā)十分常見,比如淘寶網(wǎng)的首頁,就是個(gè)典型的三欄布局即左邊商品導(dǎo)航和右邊導(dǎo)航固定寬度,中間的主要內(nèi)容隨瀏覽器寬度自適應(yīng)。但網(wǎng)格布局的兼容性不好。 前言 三欄布局,顧名思義就是兩邊固定,中間自適應(yīng)。三欄布局在實(shí)際的開發(fā)十分常見,比如淘寶網(wǎng)的首頁,就是個(gè)典型的三欄布局:即左邊商品導(dǎo)航和右邊導(dǎo)航固定寬度,中間的主要內(nèi)容隨瀏覽器寬...
摘要:前言三欄布局,顧名思義就是兩邊固定,中間自適應(yīng)。三欄布局在實(shí)際的開發(fā)十分常見,比如淘寶網(wǎng)的首頁,就是個(gè)典型的三欄布局即左邊商品導(dǎo)航和右邊導(dǎo)航固定寬度,中間的主要內(nèi)容隨瀏覽器寬度自適應(yīng)。但網(wǎng)格布局的兼容性不好。 前言 三欄布局,顧名思義就是兩邊固定,中間自適應(yīng)。三欄布局在實(shí)際的開發(fā)十分常見,比如淘寶網(wǎng)的首頁,就是個(gè)典型的三欄布局:即左邊商品導(dǎo)航和右邊導(dǎo)航固定寬度,中間的主要內(nèi)容隨瀏覽器寬...
摘要:解決的問題圣杯布局和雙飛翼布局解決的問題是一樣的,就是兩邊定寬,中間自適應(yīng)的三欄布局,中間欄要在放在文檔流前面以優(yōu)先渲染。 解決的問題 圣杯布局和雙飛翼布局解決的問題是一樣的,就是兩邊定寬,中間自適應(yīng)的三欄布局,中間欄要在放在文檔流前面以優(yōu)先渲染。 圣杯布局 圣杯布局dom結(jié)構(gòu): 圣杯布局 ...
摘要:題目假設(shè)高度已知,請(qǐng)寫出三欄布局,其中左欄右欄寬度各為,中間自適應(yīng)三欄布局的種方案這是一道經(jīng)典的面試題,下面記錄了布局的種方法。 題目:假設(shè)高度已知,請(qǐng)寫出三欄布局,其中左欄、右欄寬度各為300px,中間自適應(yīng). 三欄布局的5種方案 這是一道經(jīng)典的面試題,下面記錄了css布局的5種方法。 三欄布局 * { margin: 0; ...
閱讀 2095·2021-10-11 10:59
閱讀 936·2021-09-23 11:21
閱讀 3572·2021-09-06 15:02
閱讀 1623·2021-08-19 10:25
閱讀 3380·2021-07-30 11:59
閱讀 2376·2019-08-30 11:27
閱讀 2589·2019-08-30 11:20
閱讀 2980·2019-08-29 13:15