float
float浮動(dòng)劃分左中右
摘要:優(yōu)點(diǎn)相比之前布局更具有靈活性缺點(diǎn)脫離文檔流,下面的元素都受影響。
面試題目 假設(shè)高度已知,請(qǐng)寫出三欄布局,左右300px,中間自適應(yīng)
有幾種方法呢?
最容易的應(yīng)該想到利用float來寫,代碼如下
css樣式代碼,以下五種都是用一個(gè)樣式代碼
float
float浮動(dòng)劃分左中右
css代碼
.main { height: 100px; } .left { float: left; width: 300px; background-color: green; } .right { float: right; width: 300px; background-color: gray; } .center { background-color: gold; }
總結(jié) 優(yōu)缺點(diǎn),要理解優(yōu)缺點(diǎn),首先要明白什么是浮動(dòng)
浮動(dòng)布局的原理:對(duì)元素設(shè)置float:left或者right,使元素脫離文檔流,同時(shí)顯示為類似display:inline-block的形式(可以定義寬高,但是又不會(huì)換行)。
優(yōu)點(diǎn) 相比之前table布局更具有靈活性
缺點(diǎn) 脫離文檔流,下面的元素都受影響。并且要使用clear:both 清除浮動(dòng) 父類添加clearfix類。
.clearfix:after{content:"";height:0;display:block;clear:both} .clearfix{*display:inline-block} .clearfix{*display:block;}
2 . position 定位方法實(shí)現(xiàn)
代碼格式如下
.position-left { width: 300px; background-color: green; position: absolute; left: 0; } .position-right { width: 300px; background-color: gray; position: absolute; right: 0; } .position-center { background-color: gold; position: absolute; left: 300px; right: 300px; }
position 定位優(yōu)缺點(diǎn)
優(yōu)點(diǎn): 每個(gè)元素的顯示位置相對(duì)獨(dú)立,方便每個(gè)元素的控制,使用定位屬性,結(jié)合邊偏移屬性,可以將元素放置在任何需要的位置,這樣做的好處在于,無需考慮元素本身的顯示方式和頁(yè)面代碼中所處的位置,直接將元素分離出來進(jìn)行定位。
缺點(diǎn):每個(gè)元素獨(dú)立控制,很難預(yù)測(cè)元素之間的相互影響,同時(shí)也可能發(fā)生元素重疊的情況,導(dǎo)致部分內(nèi)容無法正常顯示.
3.flex布局實(shí)現(xiàn)方法代碼如下
.flex { margin-top: 160px; display: flex; } .flex-left { width: 300px; background-color: green; } .flex-right { width: 300px; background-color: gray; } .flex-center { flex: 1; background-color: gold; }
樣式有稍微的改動(dòng)代碼如下
flex
flex浮動(dòng)劃分左中右
flex 布局的優(yōu)缺點(diǎn)
優(yōu)點(diǎn):Flex 是 Flexible Box 的縮寫,意為”彈性布局”,用來為盒狀模型提供最大的靈活性。 現(xiàn)在是主流響應(yīng)式布局開發(fā)的主力,任何一個(gè)容器都可以指定為 Flex 布局。
缺點(diǎn):不支持IE8及以下的瀏覽器
4、表格布局代碼如下
.table { width: 100%; display: table; margin-top: 30px; } .table-left { display: table-cell; width: 300px; background-color: green; } .table-right { display: table-cell; width: 300px; background-color: gray; } .table-center { display: table-cell; background-color: gold; }
優(yōu)點(diǎn) 表格布局的兼容性很好,在flex布局不兼容的時(shí)候,可以嘗試表格布局
缺點(diǎn) 一個(gè)單元格高度超出的時(shí)候,兩側(cè)的單元格也是會(huì)跟著一起變高,有時(shí)候這種效果不是我們想要的
5、網(wǎng)格布局
代碼如下
.gird { display: grid; grid-template-rows: 100px; grid-template-columns: 300px auto 300px; margin-top: 30px; } .gird-left { background-color: green; } .gird-right { background-color: gray; } .gird-center { background-color: gold; }
優(yōu)點(diǎn)
1 能大大的提高網(wǎng)頁(yè)的規(guī)范性和可重用性。在柵格系統(tǒng)下,將頁(yè)面模塊的尺寸標(biāo)準(zhǔn)化,這對(duì)于大型網(wǎng)站的開發(fā)和維護(hù)來說,能節(jié)約不少成本;
2??基于柵格進(jìn)行設(shè)計(jì),可以讓整個(gè)網(wǎng)站各個(gè)頁(yè)面的布局保持一致。這能增加頁(yè)面的相似度,提升用戶體驗(yàn);
3??對(duì)于設(shè)計(jì)師們來說,靈活的運(yùn)用柵格系統(tǒng),能做出很多優(yōu)秀和獨(dú)特的設(shè)計(jì)。
缺點(diǎn) css新技術(shù)瀏覽器還沒有全面支持。
高度已知換為高度未知呢?
塊內(nèi)內(nèi)容超出會(huì)是怎樣的效果?
如果是上下高度已知,中間自適應(yīng)呢?
如果是兩欄布局呢?
如果是上下左右混合布局呢?
順便打個(gè)廣告 自學(xué)的前端快3個(gè)月了想找一份工作,地點(diǎn)北京。
文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請(qǐng)注明本文地址:http://m.hztianpu.com/yun/114279.html
摘要:為何只要寫不基于標(biāo)準(zhǔn)通用標(biāo)記語言,所以不需要引用,但需要來規(guī)范瀏覽器的行為使得瀏覽器知道應(yīng)該以何種解析方式對(duì)文檔進(jìn)行解析基于,所以要引用才能告知瀏覽器文檔所使用的文檔類型講講行內(nèi)元素塊元素空元素有哪些行內(nèi)元素,,,,,,,標(biāo)記性元素塊元素, HTML 1.HTML5為何只要寫 HTML5不基于SGML(標(biāo)準(zhǔn)通用標(biāo)記語言),所以不需要引用DTD,但需要doctype來規(guī)范瀏覽器的行為(...
摘要:為何只要寫不基于標(biāo)準(zhǔn)通用標(biāo)記語言,所以不需要引用,但需要來規(guī)范瀏覽器的行為使得瀏覽器知道應(yīng)該以何種解析方式對(duì)文檔進(jìn)行解析基于,所以要引用才能告知瀏覽器文檔所使用的文檔類型講講行內(nèi)元素塊元素空元素有哪些行內(nèi)元素,,,,,,,標(biāo)記性元素塊元素, HTML 1.HTML5為何只要寫 HTML5不基于SGML(標(biāo)準(zhǔn)通用標(biāo)記語言),所以不需要引用DTD,但需要doctype來規(guī)范瀏覽器的行為(...
摘要:清單一些說明注意文檔的書寫順序,先寫兩側(cè)欄,再寫主面板,更換后則側(cè)欄會(huì)被擠到下一列圣杯布局和雙飛翼布局都會(huì)用到。可以通過設(shè)置的屬性或使用雙飛翼布局避免問題。雙飛翼布局不用設(shè)置相對(duì)布局,以及對(duì)應(yīng)的和值。 本文首發(fā)于知乎專欄:前端指南 CSS布局 布局是CSS中一個(gè)重要部分,本文總結(jié)了CSS布局中的常用技巧,包括常用的水平居中、垂直居中方法,以及單列布局、多列布局的多種實(shí)現(xiàn)方式(包括傳統(tǒng)的...
閱讀 4068·2021-11-16 11:44
閱讀 5326·2021-10-09 09:54
閱讀 2074·2019-08-30 15:44
閱讀 1753·2019-08-29 17:22
閱讀 2827·2019-08-29 14:11
閱讀 3455·2019-08-26 13:25
閱讀 2386·2019-08-26 11:55
閱讀 1678·2019-08-26 10:37