天天看点

css控制强制换行

一、发现问题

一般情况下,元素拥有默认的white-space:normal(自动换行,不换行是white-space:nowrap),当录入的文字超过定义的宽度后会自动换行,但当录入的数据是一堆没有空格的字符或字母或数字(常规数据应该不会有吧,但有些测试人员是会这样子做的),超过容器宽度时就会把容器撑大,不换行。

二、解决方法

以div为例

div{

word-break:break-all; /* 支持ie和chrome,ff不支持*/

word-wrap:break-word; /* 以上三个浏览器均支持 */

}

三、区别说明

① 对于截断的理解

word-break:break-all 

div宽200px,它的内容就会到200px自动换行,如果该行末端有个英文congratulation单词很长,会把单词截断,变成该行末端为conra,下一行为tulation。

word-wrap:break-word

例子与上面一样,但区别就是它会把congratulation整个单词看成一个整体,如果该行末端宽度不够显示整个单词,它会自动把整个单词放到下一行,而不会把单词截断掉的。

② 支持版本

word-break;break-all 支持版本:ie5以上 该行为与亚洲语言的normal相同。也允许非亚洲语言文本行的任意字内断开。该值适合包含一些非亚洲文本的亚洲文本。

word-wrap:break-word 支持版本:ie5.5以上 内容将在边界内换行。如果需要,词内换行(word-break)也将发生。表格自动换行,避免撑开。

③ 语法

word-break : normal | break-all | keep-all

normal : 依照亚洲语言和非亚洲语言的文本规则,允许在字内换行

break-all : 该行为与亚洲语言的normal相同。也允许非亚洲语言文本行的任意字内断开。该值适合包含一些非亚洲文本的亚洲文本

keep-all : 与所有非亚洲语言的normal相同。对于中文,韩文,日文,不允许字断开。适合包含少量亚洲文本的非亚洲文本

word-wrap : normal | break-word

normal : 允许内容顶开指定的容器边界

break-word : 内容将在边界内换行。如果需要,词内换行(word-break)也行发生说明:设置或检索当当前行超过指定容器的边界时是否断开转行。

四、注意点

①如果发现些其中一个来控制换行无效,就写上两个。如td{ word-break:break-all;word-wrap:break-word }

②word-break 用3c检测会显示问题的,导致百度快照也会出问题,这个属性opera firefox浏览器也不支持word-break属性可以用white-space:normal来代替,这样在firefox和ie下就都能正确换行,而且要注意,单词间的空格不能用来代替,不然不能正确换行。

原帖地址:http://www.cnblogs.com/mofish/archive/2011/02/16/1956263.html

继续阅读