css中保证内容遇到空格或其他标点符号不换行

时间:2022-12-02 19:15:41

原文地址:  http://www.ossi.cn/2011-11/css-white-space/


项目中遇到这么一个情况:一个规定宽度的DIV里面需要横向排列一span来放置数据,每个span的内容长短不一,设置为DISPLAY:block,并且Float:left,这样每个Span都能根据里面内容自适应宽度,并且一个个挨着靠左浮动。

现在要达到的效果是一行中当某个span挤不进去的时候,就自动换行,而不是把它的父容器撑宽度或者把它自己撑高(它的内容出现换行)。

经过测试在大部分浏览器下都没问题,但是在IEE6下它不会换行,也没有把父容器撑宽,而是硬生生挤进去,把自己变窄并撑高了,里面的文字换行了。

为了解决这个问题找了word-break这个属性来解决,发现IE6不支持。

重新经过百度娘的指导,使用white-space: nowrap;问题得到解决。

语法:
white-space : normal | pre | nowrap
取值:
normal : 默认值。默认处理方式。文本自动处理换行。假如抵达容器边界内容会转到下一行
pre : 换行和其他空白字符都将受到保护。这个值需要IE6+或者 !DOCTYPE 声明为 standards-compliant mode 支持。如果 !DOCTYPE 声明没有指定为 standards-compliant mode ,此属性可以使用,但是不会发生作用。结果等同于 normal 。参阅 pre 对象
nowrap : 强制在同一行内显示所有文本,直到文本结束或者遭遇 br 对象。参阅 noWrap 属性

说明:
设置或检索对象内空格字符的处理方式。
空格字符,像换行,空格,TAB,在HTML文档中默认的是被忽略的。当此属性设置为 normal 或者 nowrap 时,你可以使用不换行空格的命名实体来添加空格,用 br 元素来添加换行。此属性对你使用文档对象模型(DOM)操作的内容的影响与其对IE显示内容的影响一样。
此属性作用于块对象。
此属性对于 currentStyle 对象而言是只读的。对于其他对象而言是可读写的。
对应的脚本特性为 whiteSpace 。