【第一列或某兩列固定寬度,最后一列占據(jù)頁面剩余寬度(即寬度自適應(yīng))】
寫這篇文章主要是為了解決一個(gè)實(shí)際遇到的問題:
左右兩列布局,左側(cè)寬度固定,右側(cè)寬度自適應(yīng)(或左中右三列布局,左側(cè)和中間寬度固定,右側(cè)寬度自適應(yīng)),當(dāng)頁面寬度變化時(shí),怎樣使右側(cè)元素中的內(nèi)容始終在頁面剩余寬度中居中顯示,將右側(cè)元素設(shè)置了text-align: center;之后,問題其實(shí)也就是怎樣讓右側(cè)元素的寬度占據(jù)頁面剩余所有寬度。
1.原本為inline或原本為block的元素,設(shè)置了float: left 或 float: right之后,會(huì)變得具有inline-block元素的特性,即:不獨(dú)占一行,且可以設(shè)置寬和高。
2.與position:absolute;的脫離文檔流不同的是:float的幾個(gè)元素,它們?cè)谕粋€(gè)文檔流中。
3.float半脫離文檔流:兩個(gè)元素中的前一個(gè)設(shè)置了float:left;,對(duì)于后續(xù)元素的元素來說,前一個(gè)元素是脫離文檔流的,也就是會(huì)占據(jù)元素的位置;對(duì)于后續(xù)元素的內(nèi)容來說,前一個(gè)元素又是占據(jù)文檔流的,也就是不會(huì)覆蓋前一個(gè)元素的內(nèi)容。如圖所示:
//html//css .wrap { width: 500px; background: yellow; overflow: hidden; } .left { float:left; width: 100px; background: blue; } .right{ float:left; background: red; text-align:center; }left我要居中
center
如果我們僅僅這樣寫,那么效果會(huì)像下圖這樣:
可以看到右側(cè)元素的寬度并不是頁面剩余寬度。原因是:右側(cè)元素float之后具有了行內(nèi)塊級(jí)元素的特性,即寬度為auto。所以無法占滿剩余寬度。
這不是我們想要的結(jié)果,所以我們要自己設(shè)置右側(cè)元素的寬度:
.right { width: calc(100% - 100px); }
就符合我們的要求了:
方法二:position / float + margin-left//html部分同上 //css .wrap { position: relative; width: 500px; background: yellow; } .left { position:absolute; left: 0; /*或 float:left; */ width: 100px; background: blue; } .right{ margin-left: 100px; background: red; text-align:center; }
原理是:左側(cè)元素float: left或者設(shè)置position: absolute 之后脫離了文檔流,右側(cè)其實(shí)依然是一個(gè)霸道的獨(dú)占一行的塊級(jí)元素(block),設(shè)置margin-left為左側(cè)元素寬度之后,看起來就像是兩個(gè)元素在同一行,且右側(cè)元素寬度自適應(yīng)啦:
方法三:及其方便的flex.content { width: 500px; background: blue; display: flex; } .left { background: pink; width: 100px; } .right { background: yellow; text-align: center; flex: auto; }
參考資料:
http://www.imooc.com/video/774/0
文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請(qǐng)注明本文地址:http://m.specialneedsforspecialkids.com/yun/50644.html
【第一列或某兩列固定寬度,最后一列占據(jù)頁面剩余寬度(即寬度自適應(yīng))】 寫這篇文章主要是為了解決一個(gè)實(shí)際遇到的問題:左右兩列布局,左側(cè)寬度固定,右側(cè)寬度自適應(yīng)(或左中右三列布局,左側(cè)和中間寬度固定,右側(cè)寬度自適應(yīng)),當(dāng)頁面寬度變化時(shí),怎樣使右側(cè)元素中的內(nèi)容始終在頁面剩余寬度中居中顯示,將右側(cè)元素設(shè)置了text-align: center;之后,問題其實(shí)也就是怎樣讓右側(cè)元素的寬度占據(jù)頁面剩余所有寬度。...
摘要:張鑫旭老師的博客是左邊流式布局,右邊固定寬度左浮動(dòng)因?yàn)楦?dòng)會(huì)導(dǎo)致元素脫離文檔流,所以下面的元素會(huì)占據(jù)浮動(dòng)元素原來的位置。代碼左浮動(dòng)實(shí)現(xiàn)兩列布局絕對(duì)定位實(shí)現(xiàn)兩列布局這個(gè)原理類似浮動(dòng),因?yàn)榻^對(duì)定位會(huì)脫離文檔流,只需要設(shè)置右的就能實(shí)現(xiàn)布局。 因?yàn)樽罱难獊沓保涂偨Y(jié)了一下css中的幾種常見的多列布局。 兩列自適應(yīng)布局 兩列自適應(yīng)布局算是css布局里面最基礎(chǔ)的一種布局了,不少網(wǎng)站在使用。 這...
摘要:張鑫旭老師的博客是左邊流式布局,右邊固定寬度左浮動(dòng)因?yàn)楦?dòng)會(huì)導(dǎo)致元素脫離文檔流,所以下面的元素會(huì)占據(jù)浮動(dòng)元素原來的位置。代碼左浮動(dòng)實(shí)現(xiàn)兩列布局絕對(duì)定位實(shí)現(xiàn)兩列布局這個(gè)原理類似浮動(dòng),因?yàn)榻^對(duì)定位會(huì)脫離文檔流,只需要設(shè)置右的就能實(shí)現(xiàn)布局。 因?yàn)樽罱难獊沓保涂偨Y(jié)了一下css中的幾種常見的多列布局。 兩列自適應(yīng)布局 兩列自適應(yīng)布局算是css布局里面最基礎(chǔ)的一種布局了,不少網(wǎng)站在使用。 這...
摘要:不做過多解釋主要是記錄一個(gè)完整的布局樣式,實(shí)現(xiàn)頁面大致三列其中左右兩列是自適應(yīng)寬度,中間固定寬度效果。不做過多解釋:主要是記錄一個(gè)完整的布局樣式,實(shí)現(xiàn)頁面大致三列其中左右兩列是自適應(yīng)寬度,中間固定寬度效果。 不多少代碼奉上: CSS樣式代碼: /******************** *公共標(biāo)簽樣式 ********************/ /********************...
摘要:本文概要本文將介紹如下幾種常見的布局其中實(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...
閱讀 3664·2021-10-12 10:11
閱讀 1028·2021-09-22 15:42
閱讀 3477·2019-08-30 13:06
閱讀 915·2019-08-29 17:05
閱讀 1661·2019-08-29 12:21
閱讀 2388·2019-08-29 11:31
閱讀 1146·2019-08-23 18:37
閱讀 1268·2019-08-23 14:58