css连续字符自动换行(word-wrap和word-break)的解决方案
发布时间:2023-09-11 编辑:jiaochengji.com
教程集为您提供css连续字符自动换行(word-wrap和word-break)的解决方案等资源,欢迎您收藏本站,我们将为您提供最新的css连续字符自动换行(word-wrap和word-break)的解决方案资源
1.{word-break:break-all;} :依照亚洲语言和非亚洲语言的文本规则,允许在字内换行,且允许非亚洲语言文本行的任意字内断开 2.{word-wrap:break-word;}: 内容将在边界内换行,如需要则词内换行(word-break)也行发生
下面是常见浏览器的支持情况:
面是常见浏览器的支持情况:
IE6/7/8[1] | Firefox2/3[2] | Firefox3.5 | Opera9 | Safari9.5 /Chrome | |
---|---|---|---|---|---|
{word-wrap:break-word;} | td元素需设置其宽度 见例4和例5 | 不支持 | 不支持td元素 见例4和例5 | 不支持 | 不支持td元素 见例4和例5 |
{word-break:break-all;} | 不支持连续的符号 见例3 | 不支持 | 不支持连续的符号 见例3 | 不支持 | 支持 |
由于{word-break:break-all;}导致英文和数字可读性严重下降且无法使连续符号换行,所以{word-wrap:break-word;}是一个相对较好的选择。需要注意的是各个浏览器中word-wrap在td上实现不一致,所以避免直接在td上使用。
但面对浏览器的如此糟糕支持,所以不能不借助JavaScript来解决这个问题,即当浏览器不支持CSS解决方案时,在连续字符串的适当位置插入​字符(当然还可以用<wbr />和­,这三个字符在浏览器中的支持情况请看ppk的《The wbr tag》),这些字符写在浏览器中不会显示,却使长字符串换行。​和­都会导致复制用其处理过的文本时有大量不可打印的字符,导致字符数急剧增大,更严重的是导致复制的链接字符串不可用,所以用<wbr />是比较好的方案,虽然<wbr />在IE8中不被支持且在Safari中有bug,但这些浏览器可以直接用CSS{word-wrap:break-word}来实现无需用<wbr />处理。Opera下要兼容<wbr />,需要设置CSS:wbr:after { content: "