小侃CSS3——多列布局

kinchao發表於2018-01-08

為了能在Web頁面中方便實現類似報紙、雜誌那種多列排版的佈局,W3C特意給CSS3增加了一個多列布局模組(CSS Multi Column Layout Module)。它主要應用在文字的多列布局方面,這種佈局在報紙和雜誌上使用了幾十年,但要在Web頁面上實現這樣的效果還是需要一些技巧的,慶幸的是,CSS3的時代來了~~~~多列布局可以輕鬆實現。我們來看一下具體的情況。

看看MDN的解釋

css-col-2

喔吼吼~聽到他怎麼說是不是感覺大塊人心呢~

要注意的一點是

css-col-3

上個程式碼先看看好了
大概就是這個樣子的,注意一下,如果你的寬度設定的太過於寬然後你的文字達不到一定數量級的話,你設定的欄數也會完美的呈現出來喔~只不過高度不限死的話它就會從高度上面給你做手腳給你呈現四欄。

但是!!!!

但是!!!!

但是1!!!

css-col-1

如果你文字十分稀少的話,你看看,它為了執行你的要求他也會強行四欄,我們可以看的出他的高度會讓給最高的列,然後再根據要求來進行分欄,到最後字數不夠還是會給你分出來不過是用空白來佔位。

不知道當你看到這種佈局的時候,有沒有心頭突然有種悸動的感覺。這種佈局明明以前就要寫一些其他的樣式來實現啊。可是現在,就是現在,我們已經可以簡簡單單通過CSS3的這一個屬性來實現了啊!

我們首先來看看下面這個屬性表

Properties
屬性
CSS Version
版本
Inherit From Parent
繼承性
Description
簡介
columnsCSS3設定或檢索物件的列數和每列的寬度。複合屬性
column-widthCSS3設定或檢索物件每列的寬度
column-countCSS3設定或檢索物件的列數
column-gapCSS3設定或檢索物件的列與列之間的間隙
column-ruleCSS3設定或檢索物件的列與列之間的邊框。複合屬性
column-rule-widthCSS3設定或檢索物件的列與列之間的邊框厚度。
column-rule-styleCSS3設定或檢索物件的列與列之間的邊框樣式。
column-rule-colorCSS3設定或檢索物件的列與列之間的邊框顏色。
column-spanCSS3設定或檢索物件元素是否橫跨所有列。
column-fillCSS3設定或檢索物件所有列的高度是否統一。
column-break-beforeCSS3設定或檢索物件之前是否斷行。
column-break-afterCSS3設定或檢索物件之前是否斷行。
column-break-insideCSS3設定或檢索物件內部是否斷行。

這樣 看可能會比較正式,我們換個法子來看看

  • 列數和列寬:columnscolumn-countcolumn-width
  • 列的間距和分列樣式:column-gapcolumn-rule-colorcolumn-rule-stylecolumn-rule-widthcolumn-rule
  • 跨越列:column-span
  • 填充列:column-fill
  • 分欄符:column-break-beforecolumn-break-aftercolumn-break-inside

這樣大家應該可以一目明瞭了吧~

按照步驟肯定要講下語法

columns
[v_act]columns: <column-count> <column-width>[/v_act]

這個是一個複合樣式,包含了column-count和column-width。

column-count:有多少列

column-width:每一列有多寬

看看相容性,雖然綠油油但是感覺還是不夠啊。尚且需要加油的樣子!!!

css-col-4

column-gap & column-rule

[v_act]column-gap: normal || length;[/v_act]

[v_act]column-rule: <column-rule-width> || <column-rule-style> || <column-rule-color>;[/v_act]

這兩個樣式我想一起講,因為是修飾類的。看個圖就知道是什麼了。

css-col-6

簡直一目瞭然。通過這張圖你是不是瞬間又清楚了這個屬性的使用方法和效果呢?

其實呢,這裡還有個小祕密不知道大家發現沒有。就是~~~~~~看圖~~~

css-col-5

看到了嗎~rule-width增大不會霸佔空間~

column-span

[v_act]column-span: none || all;[/v_act]

小舅子打燈籠---照舊、一圖勝千言

css-col-7

這裡給我的感覺有點像bootstrap的柵格化系統然後給了col-md-12的感覺,然後選擇還只有佔滿和不佔的選擇,目前至少來說算是一個進步吧。

還有一些選項沒有講主要是感覺用處不大,待到感覺有奇特的地方的時候再做研究吧~


我的部落格:http://zengjinchao.com/wordpress/



相關文章