摘要:解決的問(wèn)題圣杯布局和雙飛翼布局解決的問(wèn)題是一樣的,就是兩邊定寬,中間自適應(yīng)的三欄布局,中間欄要在放在文檔流前面以優(yōu)先渲染。
解決的問(wèn)題
圣杯布局和雙飛翼布局解決的問(wèn)題是一樣的,就是兩邊定寬,中間自適應(yīng)的三欄布局,中間欄要在放在文檔流前面以優(yōu)先渲染。
圣杯布局圣杯布局dom結(jié)構(gòu):
圣杯布局
1.這是三欄布局的圣杯布局解決方案; 2.這是三欄布局的圣杯布局解決方案; 3.這是三欄布局的圣杯布局解決方案; 4.這是三欄布局的圣杯布局解決方案; 5.這是三欄布局的圣杯布局解決方案; 6.這是三欄布局的圣杯布局解決方案; 7.這是三欄布局的圣杯布局解決方案; 8.這是三欄布局的圣杯布局解決方案; 9.這是三欄布局的圣杯布局解決方案;
1.首先讓三個(gè)列都向左浮動(dòng):
.layout.grail .left-center-right>div { float: left; }
2.把左右兩個(gè)列提到和中間列同行(margin作用的相關(guān)解釋?zhuān)篽ttp://www.cnblogs.com/2050/a...):
.layout.grail .left { margin-left: -100%; } .layout.grail .right { margin-left: -300px; }
3.上面中間列被遮擋了,這時(shí)在這三列的父元素上加padding值(疑問(wèn):為什么這里不用margin呢?試了下效果也可以的~):
.layout.grail .left-center-right { padding: 0 300px; }
4.這時(shí)左右兩列也跑上來(lái)了,通過(guò)絕對(duì)定位relative讓它們回到正確的位置:
.layout.grail .left { position: relative; left: -300px; } .layout.grail .right { position: relative; right: -300px; }
此時(shí)效果已經(jīng)完成了,只是在窗口變小到限定值時(shí)布局會(huì)亂掉,那么給它加上一個(gè)寬度限制:
.layout.grail .left-center-right { min-width: 304px; }
完整的CSS代碼如下:
雙飛翼布局
雙飛翼dom結(jié)構(gòu):
雙飛翼布局
1.這是三欄布局的雙飛翼布局解決方案; 2.這是三欄布局的雙飛翼布局解決方案; 3.這是三欄布局的雙飛翼布局解決方案; 4.這是三欄布局的雙飛翼布局解決方案; 5.這是三欄布局的雙飛翼布局解決方案; 6.這是三欄布局的雙飛翼布局解決方案; 7.這是三欄布局的雙飛翼布局解決方案; 8.這是三欄布局的雙飛翼布局解決方案; 9.這是三欄布局的雙飛翼布局解決方案;
圣杯布局和雙飛翼布局解決問(wèn)題的方案在前一半是相同的,也就是三欄全部float浮動(dòng),但左右兩欄加上負(fù)margin讓其跟中間欄div并排,以形成三欄布局:
.layout.ued .left-center-right>div { float: left; } .layout.ued .center { background: yellow; } .layout.ued .left { margin-left: -100%; } .layout.ued .right { margin-left: -300px; }
不同在于解決”中間欄div內(nèi)容不被遮擋“問(wèn)題的思路不一樣:圣杯布局為了中間div內(nèi)容不被遮擋,將父容器設(shè)置了左右padding-left和padding-right后,將左右兩個(gè)div用相對(duì)布局position: relative并分別配合right和left屬性,以便左右兩欄div移動(dòng)后不遮擋中間div;而雙飛翼布局為了中間div內(nèi)容不被遮擋,直接在中間div內(nèi)部創(chuàng)建子div用于放置內(nèi)容,在該子div里用margin-left和margin-right為左右兩欄div留出位置。
.layout.ued .wrap { margin-left: 300px; margin-right: 300px; }
完整的CSS代碼:
轉(zhuǎn)載鏈接:https://www.zhihu.com/questio...
文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請(qǐng)注明本文地址:http://www.ezyhdfw.cn/yun/112788.html
摘要:圣杯布局雙飛翼布局所謂圣杯布局和雙飛翼布局其實(shí)解決的問(wèn)題是相同的,都是解決左右兩欄固定寬度,中間部分自適應(yīng),其中某部分內(nèi)容比其他內(nèi)容高的時(shí)候,保證三者元素等高。雙飛翼用在外層多加了一個(gè)然后改用。 前言 我曾一度覺(jué)得總寫(xiě)css的前端很low,有了這種思想以后我便遠(yuǎn)離網(wǎng)頁(yè)布局,H5的工作更不想接,沉迷于頁(yè)面邏輯和封裝組件。直到最近我面試,面試官說(shuō)我css3理解的不熟,我起初很不屑,但后來(lái)靜...
摘要:如何實(shí)現(xiàn)如下的這種中間自適應(yīng)寬度,左右兩欄固定寬度布局這是一道經(jīng)典的面試題,常用的方法是圣杯布局雙飛翼布局。相信看完這篇文章,你就能很清楚的知道什么是圣杯和雙飛翼了。在雙飛翼中避免左右盒子被覆蓋,是通過(guò)設(shè)置的左右來(lái)實(shí)現(xiàn)的。 如何實(shí)現(xiàn)如下的這種中間自適應(yīng)寬度,左右兩欄固定寬度布局? showImg(https://segmentfault.com/img/bVbe5Dq?w=1215&h...
摘要:參考文章同學(xué)的關(guān)于圣杯布局,圣杯布局和雙飛翼布局的區(qū)別經(jīng)典布局圣杯布局實(shí)現(xiàn)的效果主要在中,和固定寬度,首先渲染,且自適應(yīng)寬度。 ps: 參考文章 DotHide同學(xué)的關(guān)于圣杯布局,圣杯布局和雙飛翼布局的區(qū)別 經(jīng)典布局 圣杯布局 showImg(https://segmentfault.com/img/remote/1460000015851268?w=682&h=247); #hea...
摘要:圣杯和雙飛翼布局介紹最近正好碰到了寫(xiě)這種布局,一直沒(méi)有總結(jié)過(guò)正好借這次機(jī)會(huì)總結(jié)一波,同時(shí)加強(qiáng)一下自己的理解。使用雙飛翼布局就可以避免這個(gè)問(wèn)題。雙飛翼布局則是中間欄不變,將內(nèi)容部分為兩邊騰開(kāi)位置參考 圣杯和雙飛翼布局介紹 showImg(http://www.xluos.com/usr/uploads/2018/02/990972879.png);最近正好碰到了寫(xiě)這種布局,一直沒(méi)有總結(jié)過(guò)...
摘要:圣杯和雙飛翼布局介紹最近正好碰到了寫(xiě)這種布局,一直沒(méi)有總結(jié)過(guò)正好借這次機(jī)會(huì)總結(jié)一波,同時(shí)加強(qiáng)一下自己的理解。使用雙飛翼布局就可以避免這個(gè)問(wèn)題。雙飛翼布局則是中間欄不變,將內(nèi)容部分為兩邊騰開(kāi)位置參考 圣杯和雙飛翼布局介紹 showImg(http://www.xluos.com/usr/uploads/2018/02/990972879.png);最近正好碰到了寫(xiě)這種布局,一直沒(méi)有總結(jié)過(guò)...
閱讀 2866·2021-09-23 11:44
閱讀 1733·2021-09-13 10:24
閱讀 2711·2021-09-08 09:36
閱讀 1294·2019-08-30 15:54
閱讀 2318·2019-08-30 13:54
閱讀 3379·2019-08-30 10:57
閱讀 1927·2019-08-29 18:43
閱讀 3721·2019-08-29 15:10