定义和用法
white-space 属性设置如何处理元素内的空白。
这个属性声明建立布局过程中如何处理元素中的空白符。值 pre-wrap 和 pre-line 是 CSS 2.1 中新增的。
说明 | 值 |
---|---|
默认值 | normal |
继承性 | yes |
版本 | CSS1 |
JavaScript 语法 | object.style.whiteSpace=”pre” |
浏览器支持 | 所有浏览器都支持 white-space 属性,任何的版本的 Internet Explorer (包括 IE8)都不支持属性值 “inherit” |
可能的值
值 | 含义 |
---|---|
normal | 默认。空白会被浏览器忽略 |
pre | 空白会被浏览器保留。其行为方式类似 HTML 中的 <pre> 标签 |
nowrap | 文本不会换行,文本会在在同一行上继续,直到遇到<br> 标签为止 |
pre-wrap | 保留空白符序列,但是正常地进行换行 |
pre-line | 合并空白符序列,但是保留换行符 |
inherit | 规定应该从父元素继承 white-space 属性的值 |
可能使用场景
单行省略号,使用其不换行属性值
使用text-overflow:ellipsis对溢出文本显示省略号有两个好处,一是不用通过程序限定字数;二是有利于SEO。需要使用对对溢出文本显示省略号的通常是文章标题列表,这样处理对搜索引擎更友好,因为标题实际上并未被截字,而是局限于宽度而未被显示而已。
通常的做法是这样的:
.text-overflow{
overflow:hidden;
text-overflow:ellipsis;
-o-text-overflow:ellipsis;
white-space:nowrap;
width:100%;
}
其中,overflow: hidden和white-space: nowrap都是必须的否则不会显示省略号;-o-text-overflow: ellipsis针对Opera;而宽度的设定主要是针对IE6;
该方法支持Internet Explorer, Safari, Chrome 和 Opera,但FF并不支持,不过可以通过Jquery来实现类似的效果。
-moz-box-flex:2.0; /* Firefox */
-webkit-box-flex:2.0; /* Safari 和 Chrome */ 浏览器支持的可伸缩元素
保留空白以及换行
white-space:break-spaces
**
在我们编辑富文本时,经常会用到复合文本编辑器,但有些情况下,我们不想编辑太复杂,或者说要保证其显示效果的相对简单,便会使用textarea多行文本框处理这个需求,然后在以前的方案中会使用正则将其进行符号替换,但这样的正则方案多少也是有匹配问题的,使用这个样式方案就不会有类似的问题。使用textarea保存的内容,用普通的div也能合理的显示出。
小结:带换行和空格格式的文本可以考虑使用css white-space:break-spaces 来保留原来的基本排版。