换行word-wrap与word-break兼容IE和FF
word-wrap是控制换行的。
使用break-word时,是将强制换行。中文没有任何问题,英文语句也没问题。但是对于长串的英文,就不起作用。
word-break是控制是否断词的。
normal是默认情况,英文单词不被拆开。
break-all,是断开单词。在单词到边界时,下个字母自动到下一行。主要解决了长串英文的问题。
keep-all,是指Chinese, Japanese, and Korean不断词。即只用此时,不用word-wrap,中文就不会换行了。(英文语句正常。)
兼容 IE 和 FF 的换行 CSS 推荐样式
最好的方式是
word-wrap:break-word; overflow:hidden;
而不是
word-wrap:break-word; word-break:break-all;
也不是
word-wrap:break-word; overflow:auto;
在 IE 下没有任何问题,在 FF 下,长串英文会被遮住超出的内容。
<span style="font-family: 宋体;"><!DOCTYPE HTML> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=gbk" /> <title>字符换行</title> <style> .c1{ width:300px; border:1px solid red} .c2{ width:300px;word-wrap:break-word; border:1px solid yellow} .c3{ width:300px;word-wrap:break-word;word-break:break-all; border:1px solid green} .c4{ width:300px;word-wrap:break-word;word-break:keep-all; border:1px solid blue} .c5{ width:300px;word-break:break-all; border:1px solid black} .c6{ width:300px;word-break:keep-all; border:1px solid red} .c7{ width:300px;word-wrap:break-word;overflow:auto; border:1px solid yellow}</style> .c1{ width:300px; border:1px solid red} <div class="c1"> safjaskflasjfklsajfklasjflksajflksjflkasjfksafj </div> <div class=c1> This is all English. This is all English. This is all English. </div> <div class=c1> 全是中文的情况。全是中文的情况。全是中文的情况。 </div> <div class=c1> 中英文混排的情况。Chinese and English. 中英文混排的情况。Chinese and English. </div> <br> .c2{ width:300px;word-wrap:break-word; border:1px solid yellow} <div class="c2"> safjaskflasjfklsajfklasjflksajflksjflkasjfksafj </div> <div class=c2> This is all English. This is all English. This is all English. </div> <div class=c2> 全是中文的情况。全是中文的情况。全是中文的情况。 </div> <div class=c2> 中英文混排的情况。Chinese and English. 中英文混排的情况。Chinese and English. </div> <br> .c3{ width:300px;word-wrap:break-word;word-break:break-all; border:1px solid green} <div class="c3"> safjaskflasjfklsajfklasjflksajflksjflkasjfksafj </div> <div class=c3> This is all English. This is all English. This is all English. </div> <div class=c3> 全是中文的情况。全是中文的情况。全是中文的情况。 </div> <div class=c3> 中英文混排的情况。Chinese and English. 中英文混排的情况。Chinese and English. </div> <br> .c4{ width:300px;word-wrap:break-word;word-break:keep-all; border:1px solid blue} <div class="c4"> safjaskflasjfklsajfklasjflksajflksjflkasjfksafj </div> <div class=c4> This is all English. This is all English. This is all English. </div> <div class=c4> 全是中文的情况。全是中文的情况。全是中文的情况。 </div> <div class=c4> 中英文混排的情况。Chinese and English. 中英文混排的情况。Chinese and English. </div> <br> .c5{ width:300px;word-break:break-all; border:1px solid black} <div class="c5"> safjaskflasjfklsajfklasjflksajflksjflkasjfksafj </div> <div class=c5> This is all English. This is all English. This is all English. </div> <div class=c5> 全是中文的情况。全是中文的情况。全是中文的情况。 </div> <div class=c5> 中英文混排的情况。Chinese and English. 中英文混排的情况。Chinese and English. </div> <br> .c6{ width:300px;word-break:keep-all; border:1px solid red} <div class="c6"> safjaskflasjfklsajfklasjflksajflksjflkasjfksafj </div> <div class=c6> This is all English. This is all English. This is all English. </div> <div class=c6> 全是中文的情况。全是中文的情况。全是中文的情况。 </div> <div class=c6> 中英文混排的情况。Chinese and English. 中英文混排的情况。Chinese and English. </div> <br> .c7{ width:300px;word-wrap:break-word;overflow:auto; border:1px solid yellow} <div class="c7"> safjaskflasjfklsajfklasjflksajflksjflkasjfksafj </div> <div class=c7> This is all English. This is all English. This is all English. </div> <div class=c7> 全是中文的情况。全是中文的情况。全是中文的情况。 </div> <div class=c7> 中英文混排的情况。Chinese and English. 中英文混排的情况。Chinese and English. </div> </body> </html> </span>
word-break:break-all和word-wrap:break-word都是能使其容器如DIV的内容自动换行。
它们的区别就在于:
1,word-break:break-all 例如div宽200px,它的内容就会到200px自动换行,如果该行末端有个英文单词很长(congratulation等),它会把单词截断,变成该行末端为conra(congratulation的前端部分),下一行为tulation(conguatulation)的后端部分了。
2,word-wrap:break-word 例子与上面一样,但区别就是它会把congratulation整个单词看成一个整体,如果该行末端宽度不够显示整个单词,它会自动把整个单词放到下一行,而不会把单词截断掉的。
word-break;break-all 支持版本:IE5以上 该行为与亚洲语言的 normal 相同。也允许非亚洲语言文本行的任意字内断开。该值适合包含一些非亚洲文本的亚洲文本。
WORD-WRAP:break-word 支持版本:IE5.5以上 内容将在边界内换行。如果需要,词内换行( word-break )也将发生。
以下引用word-break的说明, 注意word-break 是IE5+专有属性
语法:
word-break : normal | break-all | keep-all
参数:
normal : 依照亚洲语言和非亚洲语言的文本规则,允许在字内换行
break-all : 该行为与亚洲语言的normal相同。也允许非亚洲语言文本行的任意字内断开。该值适合包含一些非亚洲文本的亚洲文本
keep-all : 与所有非亚洲语言的normal相同。对于中文,韩文,日文,不允许字断开。适合包含少量亚洲文本的非亚洲文本
示例:
div {word-break : break-all; }
* {word-break : break-all; }