好得很程序员自学网

<tfoot draggable='sEl'></tfoot>

columns 字符分割

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 动画

查看更多关于columns 字符分割的详细内容...

  阅读:42次

上一篇

下一篇

第1节:CSS3简介    第2节:border 边框    第3节:borderImage 边框图片    第4节:border-radius 圆角    第5节:box-shadow 阴影    第6节:box-sizing 盒类型    第7节:gradients 渐变    第8节:text-justify 对齐    第9节:text-overflow 文字超出    第10节:text-shadow 文本阴影    第11节:word-break 文本打断    第12节:word-wrap 文本换行    第13节:letter-spacing 字间距    第14节:perspective 透视    第15节:transform 2D 空间转换    第16节:transform 3D 空间转换    第17节:transition 过渡    第18节:animation 动画    第19节:columns 字符分割    第20节:flex 弹性盒子布局    第21节:flex order 顺序    第22节:flex: grow、shrink、basis    第23节:flex-direction 排列方向    第24节:justify-content (轴内)对齐方式    第25节:flex-wrap 换行    第26节:align-items 竖直方向对齐方式    第27节:align-content    第28节:Grid 布局简介    第29节:Grid 行和列    第30节:media 媒体查询    第31节:only 元素选择    第32节:before && after 位置    第33节:nth 类型元素选择器    第34节:calc 计算属性