css white-space属性详解

white-space空格处理

css white-space这个css样式,用来设置element元素对内容中的空格的处理方式,有着几个可选值:normal,nowrap,pre,pre-wrap,pre-line。没有设置white-space属性,则默认为white-space:normal。

normal表示合并空格,多个相邻空格合并成一个空格,在源码中的换行作为空格处理,只会根据容器的大小进行自动换行。

这里的空白是值空白字符,包括空格,制表符等空白字符,下面为了行文方便,统一用“空格”代表。


white-space:nowrap不换行

white-space:nowrap和normal一样,也合并空格,但是不会根据容器大小换行,表示不换行。

.wscont{
     margin:12px;
     padding:12px;
     width:300px;
     background: #f1f1f1;
     border:1px solid  #bababa;
     line-height:32px;
     font-size: 15px;
     font-family:  "微软雅黑" ;
     white-space:nowrap;
}
 
"wscont" >
     妹纸前端测试white-space属性,
     white-space属性的keywrod值。

效果如下:

css white-space属性详解_第1张图片

white-space:nowrap会导致文本不换行,经常和overflow,text-overflow一起使用,如下:

.wscont{
     margin:12px;
     padding:12px;
     width:300px;
     background: #f1f1f1;
     border:1px solid  #bababa;
     line-height:32px;
     font-size: 15px;
     font-family:  "微软雅黑" ;
     white-space:nowrap;
     overflow:hidden;
     text-overflow: ellipsis;
}
 
"wscont" >
     妹纸前端测试white-space属性,
     white-space属性的keywrod值。

效果如下:

css white-space属性详解_第2张图片

这个效果在页面布局中使用很频繁,尤其在移动端布局中。

white-space:pre保留空格不换行

white-space:pre的作用是保持源码中的空格,有几个空格算几个空格显示,同时换行只认源码中的换行和
标签。

.wscont{
     margin:12px;
     padding:12px;
     background: #f1f1f1;
     border:1px solid  #bababa;
     line-height:32px;
     font-size: 15px;
     font-family:  "微软雅黑" ;
     white-space:pre;
}
 
"wscont" >
         妹纸前端测试white-space属性,我们都是好朋友,春天到了,交配的季节又到了。
     white-space属性的keywrod值。
妹纸的学习园地,妹纸的前端乐园。

效果如下:

css white-space属性详解_第3张图片

效果很明显,源码中的换行在显示中也换行了,源码中的多个空格也保留了。并且pre在没有碰到源码换行和
的时候是不换行了,不会去自适应容器换行。

white-space:pre-wrap保留空格换行

white-space:pre-wrap的作用是保留空格,并且除了碰到源码中的换行和
会换行外,还会自适应容器的边界进行换行。

.wscont{
     margin:12px;
     padding:12px;
     width:400px;
     background: #f1f1f1;
     border:1px solid  #bababa;
     line-height:32px;
     font-size: 15px;
     font-family:  "微软雅黑" ;
     white-space:pre-wrap;
}
 
"wscont" >
         妹纸前端测试white-space属性,我们都是好朋友,春天到了,交配的季节又到了。
     white-space属性的keywrod值。
妹纸的学习园地,妹纸的前端乐园。

效果如下:

css white-space属性详解_第4张图片

white-space:pre-wrap和white-space:pre的区别就是会自适应容器的边界进行换行。

white-space:pre-line合并空格换行

white-space:pre-line的作用是合并空格,换行和white-space:pre-wrap一样,遇到源码中的换行和
会换行,碰到容器的边界也会换行。

.wscont{
     margin:12px;
     padding:12px;
     width:400px;
     background: #f1f1f1;
     border:1px solid  #bababa;
     line-height:32px;
     font-size: 15px;
     font-family:  "微软雅黑" ;
     white-space:pre-line;
}
 
"wscont" >
         妹纸前端测试white-space属性,我们都是好朋友,春天到了,交配的季节又到了。
     white-space属性的keywrod值。
妹纸的学习园地,妹纸的前端乐园。

效果如下:

css white-space属性详解_第5张图片

white-space:pre-line会保留源码中的换行,但是不会保留源码中的空格。

white-space属性表

white-space属性 源码空格 源码换行
换行
容器边界换行
normal 合并 忽略 换行 换行
nowrap 合并 忽略 换行 不换行
pre 保留 换行 换行 不换行
pre-wrap 保留 换行 换行 换行
pre-line 合并 换行 换行 换行


white-space兼容性

css white-space属性详解_第6张图片

我们现在写前端页面大部分只用考虑兼容到IE8就可以,所以从这里说,pre-wrap,pre-line都是可以使用的。兼容性的最后一行表示这些css属性同样可以用到textarea元素中,当然要去除
标签的作用,textarea会把它原样显示的。

原创文章,转载请注明来自:妹纸前端-www.webfront-js.com.

你可能感兴趣的:(css)