摘要:方案一方案二和方案的有點(diǎn)是兼容性好因?yàn)槎际潜容^老的解決方案了缺點(diǎn)是之后需要清除浮動(dòng)造成的影響定位的話就是絕對(duì)定位之后脫離文檔流了你要注意用包裹一下方案三是目前移動(dòng)端主流的方案的語(yǔ)法缺點(diǎn)就是以下不支持。
頁(yè)面布局
注意方案多樣性、各自原理、各自優(yōu)缺點(diǎn)、如果不定高呢、兼容性如何
三欄自適應(yīng)布局,左右兩側(cè)300px,中間寬度自適應(yīng)(1) 給出5種方案
方案一: float (左右浮動(dòng),中間不用給寬,設(shè)置margin左右留出位置)
html部分,center放到后面
leftrightcontent
css部分
.wrapper { height: 100px; } .left { float: left; width: 300px; height: 100%; background: red; } .right { float: right; width: 300px; height: 100%; background: yellow; } .content { background: skyblue; height: 100%; margin: 0 300px; }
方案二: position定位 (中間設(shè)置left 300 right 300 ,寬度就自適應(yīng)了)
html不變
leftrightcontent
css部分
.wrapper { position: relative; height: 100px; } .left { position: absolute; left: 0; width: 300px; height: 100%; background: red; } .right { position: absolute; right: 0; width: 300px; height: 100%; background: yellow; } .content { position: absolute; left: 300px; right: 300px; background: skyblue; height: 100%; }
方案三: flex伸縮布局
html不變
leftrightcontent
css部分
.wrapper { display: flex; height: 100px; } .left { width: 300px; height: 100%; background: red; } .right { width: 300px; height: 100%; background: yellow; } .content { flex: 1; background: skyblue; height: 100%; }
方案四: 表格布局 (設(shè)置父元素為display:table,子元素都是display:table-cell;然后給兩邊設(shè)置width,中間不設(shè)置就自動(dòng)了,記得父元素給width:100%)
html部分,將center改到中間位置
leftcontentright
css部分
.wrapper { display: table; width: 100%; height: 100px; } .left { display: table-cell; width: 300px; height: 100%; background: red; } .right { display: table-cell; width: 300px; height: 100%; background: yellow; } .content { display: table-cell; background: skyblue; height: 100%; }
方案五: 網(wǎng)格布局 Grid第一個(gè)專門為解決布局問(wèn)題而創(chuàng)建的CSS模塊 (設(shè)置容器類型,然后設(shè)置列寬和行高)
html部分不變,center居中
leftcontentright
css部分十分簡(jiǎn)潔
.wrapper { display: grid; width: 100%; grid-template-rows: 200px 100px 10px; grid-template-columns: 300px auto 300px; } .left { background: red; } .right { background: yellow; } .content { background: skyblue; }
(2) 各自的優(yōu)缺點(diǎn)。
方案一、方案二:
float和position方案的有點(diǎn)是兼容性好,因?yàn)槎际潜容^老的解決方案了,
缺點(diǎn)是float之后需要清除浮動(dòng)造成的影響,
定位的話就是絕對(duì)定位之后脫離文檔流了,你要注意用position:relative包裹一下
方案三:
flex是目前移動(dòng)端主流的方案,css的語(yǔ)法,缺點(diǎn)就是IE8以下不支持。
方案四:
語(yǔ)義化不太好,
方案五:
有嚴(yán)重的兼容性問(wèn)題
(3) 如果不定高,哪些方案會(huì)有問(wèn)題
如果不定高float / 定位的方案會(huì)有問(wèn)題
三欄自適應(yīng)布局,上下固定,中間高度自適應(yīng) (自適應(yīng)的地方設(shè)置top300 bottom300,高度就自適應(yīng)了)方案一: 定位
html
topcontentbottom
css
.wrapper { height: 800px; position: relative; } .top { position: absolute; top: 0; height: 100px; width: 100%; background: red; } .bottom { position: absolute; bottom: 0 ; height: 100px; width: 100%; background: blue; } .content { position: absolute; top: 100px; bottom: 100px; width: 100%; background: skyblue; }
方案二: flex布局
html
topcontentbottom
css
.wrapper { display: flex; height: 700px; flex-direction: column; } .top { height: 100px; background: red; } .bottom { height: 100px; background: blue; } .content { flex: 1; background: skyblue; }
方案三: 網(wǎng)格布局grid (設(shè)置grid-template-rows: 300px auto 300px)
html不變
topcontentbottom
css
.wrapper { display: grid; height: 700px; grid-template-rows: 100px auto 100px; } .top { background: red; } .bottom { background: blue; } .content { background: skyblue; }兩欄自適應(yīng),右側(cè)固定,左側(cè)自適應(yīng)
方案一: 利用BFC的渲染規(guī)則,BFC不會(huì)和浮動(dòng)的元素互相重疊
html
rightleft
css 避免左側(cè)侵入到右側(cè),給左側(cè)div創(chuàng)建一個(gè)BFC,因?yàn)锽FC的渲染機(jī)制就是獨(dú)立的容器,不會(huì)和浮動(dòng)的元素重疊
.left { height: 200px; background: red; overflow: hidden; } .right { float: right; width: 300px; background: blue; }
方案二: 定位
html
leftright
css
.wrapper { position: relative; } .left { position: absolute; left: 0; right: 300px; background: red; } .right { position: absolute; width: 300px; right: 0; background: blue; }
方案三: flex
html
leftright
css
.wrapper { display: flex; } .left { flex: 1; background: red; } .right { width: 300px; background: blue; }
方案四: 表格布局,注意給父元素表格要設(shè)置width:100%
html
leftright
css
.wrapper { display: table; width: 100%; } .left { display: table-cell; background: red; } .right { display: table-cell; width: 300px; background: blue; }
方案五: grid網(wǎng)格布局
css
.wrapper { display: grid; grid-template-columns: auto 300px; } .left { background: red; } .right { background: blue; }
html
兩欄自適應(yīng),上側(cè)固定,下側(cè)自適應(yīng) leftright
方案一: 定位
設(shè)置content部分的top: 100px botton: 0
html
topcontent
css
.wrapper { position: relative; height: 100%; width: 100%; } .top { position: absolute; top: 0; height: 100px; background: red; width: 100%; } .content { position: absolute; width: 100%; top: 100px; bottom: 0; background: skyblue; }
方案二: flex
top高度100px,然后content設(shè)置flex: 1
html
topcontent
css
display: flex; height: 800px; } .top { height: 100px; background: red; } .content { flex: 1; background: skyblue; }
方案三: grid網(wǎng)格布局
思路,就是設(shè)置display:grid后 設(shè)置列寬或者行高,有多少列就設(shè)置多少個(gè)參數(shù),多少行就設(shè)多少參數(shù)。
html
topcontent
css
.wrapper { display: grid; height: 800px; grid-template-rows: 100px auto; } .top { background: red; } .content { background: skyblue; }
文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請(qǐng)注明本文地址:http://systransis.cn/yun/113067.html
摘要:方案一方案二和方案的有點(diǎn)是兼容性好因?yàn)槎际潜容^老的解決方案了缺點(diǎn)是之后需要清除浮動(dòng)造成的影響定位的話就是絕對(duì)定位之后脫離文檔流了你要注意用包裹一下方案三是目前移動(dòng)端主流的方案的語(yǔ)法缺點(diǎn)就是以下不支持。 頁(yè)面布局 注意方案多樣性、各自原理、各自優(yōu)缺點(diǎn)、如果不定高呢、兼容性如何 三欄自適應(yīng)布局,左右兩側(cè)300px,中間寬度自適應(yīng) (1) 給出5種方案 方案一: float (左右浮動(dòng),中間...
摘要:經(jīng)典方法三欄布局的方法有很多種,其中最經(jīng)典的方法莫過(guò)于圣杯布局和雙飛翼布局。而雙飛翼布局方法無(wú)需相對(duì)位置屬性,而是采用為中欄內(nèi)容創(chuàng)建的方式,通過(guò)來(lái)實(shí)現(xiàn)布局。文章第二部分闡述了流行的圣杯布局方法和雙飛翼布局方法的細(xì)節(jié)和異同。 三欄是CSS布局中常見(jiàn)的一種布局模式,顧名思義,就是將網(wǎng)頁(yè)內(nèi)容以三列的形式呈現(xiàn)。通常,三欄布局中的左欄和右欄是固定寬度的,中欄隨著窗口寬度的變化而變化。本文探討欄三...
摘要:經(jīng)典方法三欄布局的方法有很多種,其中最經(jīng)典的方法莫過(guò)于圣杯布局和雙飛翼布局。而雙飛翼布局方法無(wú)需相對(duì)位置屬性,而是采用為中欄內(nèi)容創(chuàng)建的方式,通過(guò)來(lái)實(shí)現(xiàn)布局。文章第二部分闡述了流行的圣杯布局方法和雙飛翼布局方法的細(xì)節(jié)和異同。 三欄是CSS布局中常見(jiàn)的一種布局模式,顧名思義,就是將網(wǎng)頁(yè)內(nèi)容以三列的形式呈現(xiàn)。通常,三欄布局中的左欄和右欄是固定寬度的,中欄隨著窗口寬度的變化而變化。本文探討欄三...
摘要:雙飛翼布局,就是兩端固定寬高,中間自適應(yīng)的三欄布局先來(lái)張圖,左邊和右邊的灰色塊是固定寬高的,中間綠色的區(qū)域是寬高自適應(yīng)方式一通過(guò)彈性布局來(lái)實(shí)現(xiàn)看代碼結(jié)構(gòu),是中間的自適應(yīng)區(qū)域先簡(jiǎn)單粗暴的解決一下瀏覽器的默認(rèn)樣式使用,盒模型好計(jì)算,媽媽再 雙飛翼布局,就是兩端固定寬高,中間自適應(yīng)的三欄布局 先來(lái)張圖,左邊和右邊的灰色塊是固定寬高的,中間綠色的區(qū)域是寬高自適應(yīng) showImg(https:/...
摘要:屬性是中最重要的用于控制布局的屬性。布局的高度多數(shù)情況下,布局中結(jié)構(gòu)化元素乃至任何元素的高度是不必設(shè)定的。更新效果如圖以上措施使布局有了明顯改觀。 這是《CSS設(shè)計(jì)指南》的讀書(shū)筆記,用于加深學(xué)習(xí)效果。 display 屬性 display是 CSS 中最重要的用于控制布局的屬性。每個(gè)元素都有一個(gè)默認(rèn)的 display 值。對(duì)于大多數(shù)元素它們的默認(rèn)值通常是 block 或 inline ...
閱讀 1173·2021-11-22 15:22
閱讀 3847·2021-10-19 13:13
閱讀 3594·2021-10-08 10:05
閱讀 3305·2021-09-26 10:20
閱讀 2992·2019-08-29 14:21
閱讀 2202·2019-08-27 10:55
閱讀 1879·2019-08-26 10:31
閱讀 2588·2019-08-23 16:47