columns 字符分割
这个 属性 主要用来对字符进行横向分割排版,例如报纸的版面。
1. 官方定义
columns 属性 是 一个 简写 属性 ,用于设置列宽和列数。
2. 解释
columns 是 column-width 每列宽度, column-count 每列的列数这两个 属性 的缩写,当列宽和列数的乘积大于元素的宽度时候就不会在分开 自动 合成一列。当他们的乘积小于元素的外宽的时候,每列的实际宽度可能大于 column-width 设定的值。
3. 语法
使用 columns 时候
.demo {
columns : column-width column-count ;
}
值 描述 column-width 宽度 px|rem|em column-count 数字代表分的列数
单独使用时候:
.demo {
column-count : number ;
column-width:value
}
另外 colunms 还有其他的补充 属性 :
column-gap : <length> | nor mal
设置列与列之 间的 距离:
column-gap : <length> | nor mal
设置列与列之 间的 边线:
column-rule:[ column-rule-width ] [ column-rule-style ] [ column-rule-color ]
内部元素是否允许横跨所有的列:
column-span:none | all
值 描述 none 不允许子元素单独一行 all 指定子元素单独一行
列的高度是否统一:
column-fill : auto | balance
值 描述 auto 自适应高度也就是它们有不同的高度。 balance 以最高的子元素为统一高度
这个 属性 兼容性极差,除了火狐 支持 外其它浏览器均不在 支持 了。
4. 兼容性
IE Edge Firefox Chrome Safari Opera ios android 9+ 12+ 28+ 4+ 6.1+ 12.1+ 7+ 4.4
5. 实例
对一段文本分两列每列宽度不小于 200px。
.demo {
-webkit-columns : px ;
}
效果 图
对一段文本分两列每列宽度不小于 200px 效果 图
<!DOCTYPE html>
< html >
< head >
< style >
.demo {
-webkit-columns : px ;
}
</ style >
< div class = " demo " >
< p >
轻轻的我走了,
正如我轻轻的来;
我轻轻的招手,
作别西天的云彩。
那河畔的金柳,
是夕阳中的新娘;
波光里的艳影,
在我的心头荡漾。
软泥上的青荇,
油油的在水底招摇;
在康河的柔波里,
我甘心做一条水草!
那榆荫下的一潭,
不是清泉,
是天上虹;
揉碎在浮藻间,
沉淀着彩虹似的梦。
寻梦?
撑一支长篙,
向青草更青处漫溯;
满载一船星辉,
在星辉斑斓里放歌。
但我不能放歌,
悄悄是别离的笙箫;
夏虫也为我沉 默 ,
沉 默 是今晚的康桥!
悄悄的我走了,
正如我悄悄的来;
我挥一挥衣袖,
不带走一片云彩。
</ p >
</ div >
</ head >
< body >
对一段文本分 3 列每列宽度不小于 200px。
.demo {
-webkit-columns : px ;
}
效果 图
对一段文本分 3 列每列宽度不小于 200px 效果 图
<!DOCTYPE html>
< html >
< head >
< style >
.demo {
-webkit-columns : px ;
}
</ style >
< div class = " demo " >
< p >
轻轻的我走了,
正如我轻轻的来;
我轻轻的招手,
作别西天的云彩。
那河畔的金柳,
是夕阳中的新娘;
波光里的艳影,
在我的心头荡漾。
软泥上的青荇,
油油的在水底招摇;
在康河的柔波里,
我甘心做一条水草!
那榆荫下的一潭,
不是清泉,
是天上虹;
揉碎在浮藻间,
沉淀着彩虹似的梦。
寻梦?
撑一支长篙,
向青草更青处漫溯;
满载一船星辉,
在星辉斑斓里放歌。
但我不能放歌,
悄悄是别离的笙箫;
夏虫也为我沉 默 ,
沉 默 是今晚的康桥!
悄悄的我走了,
正如我悄悄的来;
我挥一挥衣袖,
不带走一片云彩。
</ p >
</ div >
</ head >
< body >
对两段文本分 3 列。
< div class = " demo " >
< p >
轻轻的我走了,正如我轻轻的来;
我轻轻的招手,作别西天的云彩。 那河畔的金柳, 是夕阳中的新娘; 波光里的艳影, 在我的心头荡漾。软泥上的青荇,油油的在水底招摇; 在康河的柔波里, 我甘心做一条水草! 那榆荫下的一潭,不是清泉, 是天上虹; 揉碎在浮藻间,沉淀着彩虹似的梦。 寻梦?
</ p >
< p >
撑一支长篙, 向青草更青处漫溯;满载一船星辉, 在星辉斑斓里放歌。但我不能放歌,悄悄是别离的笙箫; 夏虫也为我沉 默 ,沉 默 是今晚的康桥!悄悄的我走了,正如我悄悄的来; 我挥一挥衣袖,不带走一片云彩。
</ p >
</ div >
.demo
{
-webkit-columns : px ;
}
p {
margin : ;
}
效果 图
对两段文本分 3 列 效果 图
<!DOCTYPE html>
< html >
< head >
< style >
.demo
{
-webkit-columns : px ;
}
p {
margin : ;
}
</ style >
< div class = " demo " >
< p >
轻轻的我走了,
正如我轻轻的来;
我轻轻的招手,
作别西天的云彩。
那河畔的金柳,
是夕阳中的新娘;
波光里的艳影,
在我的心头荡漾。
软泥上的青荇,
油油的在水底招摇;
在康河的柔波里,
我甘心做一条水草!
那榆荫下的一潭,
不是清泉,
是天上虹;
揉碎在浮藻间,
沉淀着彩虹似的梦。
寻梦?
</ p >
< p >
撑一支长篙,
向青草更青处漫溯;
满载一船星辉,
在星辉斑斓里放歌。
但我不能放歌,
悄悄是别离的笙箫;
夏虫也为我沉 默 ,
沉 默 是今晚的康桥!
悄悄的我走了,
正如我悄悄的来;
我挥一挥衣袖,
不带走一片云彩。
</ p >
</ div >
</ head >
< body >
修改 两列间隔的距离。
.demo {
-webkit-columns : px ;
column-gap : px
}
效果 图
修改 两列间隔的距离 效果 图
<!DOCTYPE html>
< html >
< head >
< style >
.demo {
-webkit-columns : px ;
column-gap : px
}
</ style >
< div class = " demo " >
< p >
轻轻的我走了,
正如我轻轻的来;
我轻轻的招手,
作别西天的云彩。
那河畔的金柳,
是夕阳中的新娘;
波光里的艳影,
在我的心头荡漾。
软泥上的青荇,
油油的在水底招摇;
在康河的柔波里,
我甘心做一条水草!
那榆荫下的一潭,
不是清泉,
是天上虹;
揉碎在浮藻间,
沉淀着彩虹似的梦。
寻梦?
</ p >
< p >
撑一支长篙,
向青草更青处漫溯;
满载一船星辉,
在星辉斑斓里放歌。
但我不能放歌,
悄悄是别离的笙箫;
夏虫也为我沉 默 ,
沉 默 是今晚的康桥!
悄悄的我走了,
正如我悄悄的来;
我挥一挥衣袖,
不带走一片云彩。
</ p >
</ div >
</ head >
< body >
为每列直接 增加 边线。
.demo {
-webkit-columns : px ;
column-gap : px ;
column-rule : px solid #ccc ;
}
效果 图
为每列直接 增加 边线 效果 图
<!DOCTYPE html>
< html >
< head >
< style >
.demo {
-webkit-columns : px ;
column-gap : px ;
column-rule : px solid #ccc ;
}
</ style >
< div class = " demo " >
< p >
轻轻的我走了,
正如我轻轻的来;
我轻轻的招手,
作别西天的云彩。
那河畔的金柳,
是夕阳中的新娘;
波光里的艳影,
在我的心头荡漾。
软泥上的青荇,
油油的在水底招摇;
在康河的柔波里,
我甘心做一条水草!
那榆荫下的一潭,
不是清泉,
是天上虹;
揉碎在浮藻间,
沉淀着彩虹似的梦。
寻梦?
</ p >
< p >
撑一支长篙,
向青草更青处漫溯;
满载一船星辉,
在星辉斑斓里放歌。
但我不能放歌,
悄悄是别离的笙箫;
夏虫也为我沉 默 ,
沉 默 是今晚的康桥!
悄悄的我走了,
正如我悄悄的来;
我挥一挥衣袖,
不带走一片云彩。
</ p >
</ div >
</ head >
< body >
让其内部 class="head" 个子元素横跨所有列
< div class = " demo " >
< p class = " head " > 再别康桥 </ p >
< p >
轻轻的我走了,正如我轻轻的来;
我轻轻的招手,作别西天的云彩。 那河畔的金柳, 是夕阳中的新娘; 波光里的艳影, 在我的心头荡漾。软泥上的青荇,油油的在水底招摇; 在康河的柔波里, 我甘心做一条水草! 那榆荫下的一潭,不是清泉, 是天上虹; 揉碎在浮藻间,沉淀着彩虹似的梦。 寻梦?
</ p >
< p >
撑一支长篙, 向青草更青处漫溯;满载一船星辉, 在星辉斑斓里放歌。但我不能放歌,悄悄是别离的笙箫; 夏虫也为我沉 默 ,沉 默 是今晚的康桥!悄悄的我走了,正如我悄悄的来; 我挥一挥衣袖,不带走一片云彩。
</ p >
</ div >
.demo {
-webkit-columns : px ;
column-gap : px ;
column-rule : px solid #ccc ;
}
.head {
column-span : all ;
}
p {
margin : ;
text
}
效果 图
让其内部 `class="head"`个子元素横跨所有列 效果 图
<!DOCTYPE html>
< html >
< head >
< style >
.demo {
-webkit-columns : px ;
column-gap : px ;
column-rule : px solid #ccc ;
}
.head {
column-span : all ;
text-align : center ;
}
p {
margin : ;
background : #ccc ;
column-fill : balance ;
}
</ style >
< div class = " demo " >
< p class = " head " >
再别康桥
</ p >
< p >
轻轻的我走了,
正如我轻轻的来;
我轻轻的招手,
作别西天的云彩。
那河畔的金柳,
是夕阳中的新娘;
波光里的艳影,
在我的心头荡漾。
软泥上的青荇,
油油的在水底招摇;
在康河的柔波里,
我甘心做一条水草!
那榆荫下的一潭,
不是清泉,
是天上虹;
揉碎在浮藻间,
沉淀着彩虹似的梦。
寻梦?
</ p >
< p >
撑一支长篙,
向青草更青处漫溯;
满载一船星辉,
在星辉斑斓里放歌。
但我不能放歌,
悄悄是别离的笙箫;
夏虫也为我沉 默 ,
沉 默 是今晚的康桥!
悄悄的我走了,
正如我悄悄的来;
我挥一挥衣袖,
不带走一片云彩。
</ p >
</ div >
</ head >
< body >
6. 经验 分享
使用 columns 可以 快速 的把元素内的字符分成我们想要的列数,如果想要自适应该怎么做呢?可以只设置列数这样在一定程度上可以不考虑元素的宽度,如下:
.demo {
-webkit-columns : ;
}
这样不管窗口怎么边它都是分成两列,其实任何自适应的原理也是如此。
@H_ 403 _1702@7. 小结
它分的列和子元素的个数无关。 分的列数最好保证和内部子元素 数量 相等。
flex 弹性盒子布局 ? ?animation 动画