css 中可以輕松地實(shí)現(xiàn)類似報(bào)紙上的文字多列排版效果,不需要使用其它技術(shù)(如float、flex等)。如下圖:
默認(rèn)效果
多列顯示效果
在本章中,您將了解以下多列屬性:
- column-count
- column-gap
- column-rule-style
- column-rule-width
- column-rule-color
- column-rule
- column-span
- column-width
創(chuàng)建多列文本
使用column-count屬性指定一個(gè)元素應(yīng)該分成幾列,如下示例:
div {
column-count: 3;
}
效果:
3列顯示
設(shè)置列之間的間隙
使用 column-gap 屬性指定列之間的間隙,如下示例:
div {
column-gap: 50px;
}
效果:
每列間隔50px
設(shè)置列樣式
column-rule-style屬性指定列之間分割線的樣式,語(yǔ)法如下:
column-rule-style: none|hidden|dotted|dashed|solid|double|groove|ridge|inset|outset|initial|inherit;
如下示例:
div {
column-rule-style: solid;
}
效果:
列分割線樣式
column-rule-width 屬性指定列之間的分割線寬度,如下示例:
div{
column-rule-width: 10px;
}
效果:
10px寬的分割線
column-rule-color屬性指定列之間分割線的顏色,如下示例:
div {
column-rule-color: lightblue;
}
效果:
淡藍(lán)色分割線
使用column-rule屬性設(shè)置上述所有 column-rule-* 屬性的簡(jiǎn)寫,如下示例:
div {
column-rule: 10px solid lightblue;
}
指定一個(gè)元素跨越多少列
column-span屬性指定一個(gè)元素應(yīng)該跨越多少列,語(yǔ)法如下:
column-span: none|all|initial|inherit;
如下示例:
html:
<div>
<h2>標(biāo)題</h2>
文本....
</div>
css:
div{
column-count: 3;
column-gap: 40px;
column-rule: 1px solid lightblue;
}
沒有使用跨列時(shí):
如上圖中標(biāo)題部分顯示在第一列中,如果想讓標(biāo)題橫跨整行可以使用如下代碼:
h2 {
column-span: all;
}
效果:
標(biāo)題夸所有列
指定列寬
column-width屬性為列指定最佳的寬度,內(nèi)容會(huì)自動(dòng)根據(jù)頁(yè)面大小調(diào)整,語(yǔ)法如下:
column-width: auto|length|initial|inherit;
如下示例:
div{
column-width: 100px;
}
效果:
columns 屬性
columns 指定每列的最小寬度和最大列數(shù),其語(yǔ)法如下:
columns: column-width column-count;
column-width 部分將定義每列的最小寬度,而 column-count 部分將定義最大列數(shù)。通過使用此屬性,瀏覽器將自動(dòng)分解多列布局為窄寬度的單列,無需媒體查詢或其他規(guī)則。
如下示例:
div{
columns: 100px 3;
}
效果:
注意這里和column-width: 100px的區(qū)別,它不會(huì)根據(jù)寬度自動(dòng)調(diào)整列數(shù),且列最大為3列。