CSS3 column多列布局介紹

CSS3提供了個(gè)新屬性columns用于多列布局敞掘。在這之前折柠,有些大家習(xí)以為常的排版章办,要用CSS動(dòng)態(tài)實(shí)現(xiàn)其實(shí)是比較困難的芒炼。如豎版報(bào)紙

在我不知columns這屬性之前瘫怜,第一反應(yīng)是:這有何難,多弄幾個(gè)并列的div不就行了本刽?但仔細(xì)想想確實(shí)很難實(shí)現(xiàn)鲸湃,因?yàn)閮?nèi)容是動(dòng)態(tài)的。搞幾個(gè)div容易子寓,但每個(gè)div內(nèi)放多少文字呢暗挑?一篇文章該在哪行哪段剪切進(jìn)不同的div內(nèi)呢?你肯定不愿意為每一段文字斜友,都在特定的地方插入div標(biāo)簽窿祥,那代碼重用性太低了。而column屬性完美的解決了這個(gè)問(wèn)題蝙寨,讓瀏覽器來(lái)決定在文字該在哪里換列晒衩。你所做的只需指定每列的寬度和列數(shù)即可。

先來(lái)看看columns和它的子屬性:

  • column-width
  • column-count
  • column-gap
  • column-rule
  • column-span
  • column-fill

column-width給列定義個(gè)最小的寬度墙歪。默認(rèn)值為auto表示將根據(jù)column-count列的數(shù)量自動(dòng)調(diào)整列寬听系。

column-count最大列數(shù),不贅述虹菲。

通常上面兩個(gè)參數(shù)都合并在columns中一起指定靠胜。例如columns: auto 4;就是上圖的效果,會(huì)將div分成4列,并根據(jù)div的寬度640px浪漠,均分列寬為160px(其實(shí)不到160px陕习,因?yàn)檫€有列間距)。代碼如下:

.wrapper {
    -moz-columns: auto 4;
    -webkit-columns: auto 4;
    columns: auto 4;
}
<div class="wrapper">...大段文字…</div>

上述實(shí)現(xiàn)簡(jiǎn)單到有的過(guò)分址愿,現(xiàn)在看看更靈活的用法该镣。上例中外層div是定寬640px,因此通過(guò)計(jì)算后得到的列寬也是固定的响谓。無(wú)論你如何縮放瀏覽器窗口大小损合,都固定4列。這樣顯得不夠靈活娘纷。

如果想要根據(jù)窗口尺寸自適應(yīng)嫁审,隨著窗口拉窄,從4列逐漸變?yōu)?列赖晶,隨著窗口拉寬律适,再?gòu)?列逐漸變?yōu)?列。首先你需要將外層div從定寬width: 640px;改成動(dòng)態(tài)寬度width: 50%;遏插。其次columns-width不能同時(shí)為auto擦耀,否則會(huì)根據(jù)div動(dòng)態(tài)寬度得到列寬,仍舊固定為4列涩堤。所以columns-width需要為定值眷蜓。效果可以點(diǎn)這里,并且拉伸瀏覽器窗口試試胎围。

column-gap是列間距吁系,默認(rèn)值normal,相當(dāng)于1em白魂。需要注意的是汽纤,如果column-gap與column-width加起來(lái)大于總寬度的話(huà),就無(wú)法顯示column-count指定的列數(shù)福荸,會(huì)被瀏覽器自動(dòng)調(diào)整列數(shù)和列寬

column-rule用于設(shè)置列的邊框蕴坪,類(lèi)似于border,區(qū)別是不占用任何空間敬锐,因此設(shè)了column-rule不會(huì)導(dǎo)致列寬的變化背传。另外如果邊框?qū)挾却笥赾olumn-gap列間距,將不會(huì)顯示邊框台夺。語(yǔ)法和border類(lèi)似径玖,例如column-rule: 1px solid #000;。效果見(jiàn)例子頁(yè)面颤介。

column-span用于跨列梳星,默認(rèn)值none表示不跨列赞赖,all表示跨越所有列。例如文章標(biāo)題可以設(shè)成all來(lái)跨列冤灾。效果見(jiàn)例子頁(yè)面

column-fill用于統(tǒng)一列高前域。默認(rèn)值auto各列的高度隨內(nèi)容自動(dòng)調(diào)整,balance所有列高都設(shè)為最高的列高

總結(jié)

columns屬性最大的問(wèn)題還是瀏覽器兼容性問(wèn)題韵吨,參見(jiàn)Can I Use匿垄。而且豎版排列暫時(shí)用的地方不多,這個(gè)屬性是否能流行閃光尚存疑問(wèn)学赛。如果內(nèi)網(wǎng)有這方面的需求年堆,用用還是極好的吞杭。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末盏浇,一起剝皮案震驚了整個(gè)濱河市,隨后出現(xiàn)的幾起案子芽狗,更是在濱河造成了極大的恐慌绢掰,老刑警劉巖,帶你破解...
    沈念sama閱讀 216,372評(píng)論 6 498
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件童擎,死亡現(xiàn)場(chǎng)離奇詭異滴劲,居然都是意外死亡,警方通過(guò)查閱死者的電腦和手機(jī)顾复,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,368評(píng)論 3 392
  • 文/潘曉璐 我一進(jìn)店門(mén)班挖,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái),“玉大人芯砸,你說(shuō)我怎么就攤上這事萧芙。” “怎么了假丧?”我有些...
    開(kāi)封第一講書(shū)人閱讀 162,415評(píng)論 0 353
  • 文/不壞的土叔 我叫張陵双揪,是天一觀的道長(zhǎng)。 經(jīng)常有香客問(wèn)我包帚,道長(zhǎng)渔期,這世上最難降的妖魔是什么? 我笑而不...
    開(kāi)封第一講書(shū)人閱讀 58,157評(píng)論 1 292
  • 正文 為了忘掉前任渴邦,我火速辦了婚禮疯趟,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘谋梭。我一直安慰自己迅办,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,171評(píng)論 6 388
  • 文/花漫 我一把揭開(kāi)白布章蚣。 她就那樣靜靜地躺著站欺,像睡著了一般姨夹。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上矾策,一...
    開(kāi)封第一講書(shū)人閱讀 51,125評(píng)論 1 297
  • 那天磷账,我揣著相機(jī)與錄音,去河邊找鬼贾虽。 笑死逃糟,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的蓬豁。 我是一名探鬼主播绰咽,決...
    沈念sama閱讀 40,028評(píng)論 3 417
  • 文/蒼蘭香墨 我猛地睜開(kāi)眼,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼地粪!你這毒婦竟也來(lái)了取募?” 一聲冷哼從身側(cè)響起,我...
    開(kāi)封第一講書(shū)人閱讀 38,887評(píng)論 0 274
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤蟆技,失蹤者是張志新(化名)和其女友劉穎玩敏,沒(méi)想到半個(gè)月后,有當(dāng)?shù)厝嗽跇?shù)林里發(fā)現(xiàn)了一具尸體质礼,經(jīng)...
    沈念sama閱讀 45,310評(píng)論 1 310
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡旺聚,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,533評(píng)論 2 332
  • 正文 我和宋清朗相戀三年,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了眶蕉。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片砰粹。...
    茶點(diǎn)故事閱讀 39,690評(píng)論 1 348
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡,死狀恐怖造挽,靈堂內(nèi)的尸體忽然破棺而出碱璃,到底是詐尸還是另有隱情,我是刑警寧澤刽宪,帶...
    沈念sama閱讀 35,411評(píng)論 5 343
  • 正文 年R本政府宣布厘贼,位于F島的核電站,受9級(jí)特大地震影響圣拄,放射性物質(zhì)發(fā)生泄漏嘴秸。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,004評(píng)論 3 325
  • 文/蒙蒙 一庇谆、第九天 我趴在偏房一處隱蔽的房頂上張望岳掐。 院中可真熱鬧,春花似錦饭耳、人聲如沸串述。這莊子的主人今日做“春日...
    開(kāi)封第一講書(shū)人閱讀 31,659評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)纲酗。三九已至衰腌,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間觅赊,已是汗流浹背右蕊。 一陣腳步聲響...
    開(kāi)封第一講書(shū)人閱讀 32,812評(píng)論 1 268
  • 我被黑心中介騙來(lái)泰國(guó)打工, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留吮螺,地道東北人饶囚。 一個(gè)月前我還...
    沈念sama閱讀 47,693評(píng)論 2 368
  • 正文 我出身青樓,卻偏偏與公主長(zhǎng)得像鸠补,于是被迫代替她去往敵國(guó)和親萝风。 傳聞我的和親對(duì)象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,577評(píng)論 2 353

推薦閱讀更多精彩內(nèi)容

  • 淺談CSS3多列布局 相信大家都看過(guò)報(bào)紙紫岩,報(bào)紙上的內(nèi)容大多數(shù)都是分欄顯示的规惰,如下圖所示: 現(xiàn)在,強(qiáng)大的CSS3為我...
    haileym閱讀 2,273評(píng)論 0 0
  • 選擇qi:是表達(dá)式 標(biāo)簽選擇器 類(lèi)選擇器 屬性選擇器 繼承屬性: color被因,font卿拴,text-align衫仑,li...
    love2013閱讀 2,314評(píng)論 0 11
  • 選擇qi:是表達(dá)式 標(biāo)簽選擇器 類(lèi)選擇器 屬性選擇器 繼承屬性: color梨与,font,text-align文狱,li...
    wzhiq896閱讀 1,747評(píng)論 0 2
  • CSS3中提供的新屬性columns粥鞋,是用于多列布局的。 在這之前瞄崇,有些大家習(xí)以為常的排版呻粹,要用CSS動(dòng)態(tài)實(shí)現(xiàn)其實(shí)...
    LiLi原上草閱讀 2,525評(píng)論 1 10
  • Multiple columns 在線(xiàn)示例 Column layout methods 由于很長(zhǎng)的文字會(huì)造成閱讀上...
    ilaoke閱讀 581評(píng)論 1 1