您的位置:首页 > Web前端 > HTML

HTML有趣的文本不自动换行问题

2008-09-04 18:12 309 查看
今天同事做一个文本自动换行的效果。比如一个字符串"12345678901234567890",由于宽度只有50px,所以想到达到以下这样的效果

123456
789012
345678
90

HTML代码如下:

<TABLE border=1>
<TR>
<TD width=50px>12345678901234567890</TD>
</TR>
</TABLE>

以前自己理解的是缺省就会自动换行,结果测试总不成功,真是郁闷,难度和字符串有关。
果然,字符串"我想回家我想回家"又可以换行成功。
于是仔细分析了一下,终于理解了,原因IE浏览器的缺省换行是不会断开单词的,"12345678901234567890"字符串中间没有任何分隔符,所以它认为是一个不可断开的单词,因此以不换行处理。字符串"我想回家我想回家"有汉字,词法解析时认为双字节字符都可以分开,所以就正确换行了。

如果在字符串中间加一个空格也行,但是逗号不行。

查了一上css参考手册,如果要强制换行的话,可以设置对象的CSS属性word-wrap="break-word",或者设置word-break="break-all"

测试代码如下所示


<HTML>

<HEAD>

</HEAD>

<BODY>

<TABLE border=1>

<TR>

<TD width=50px>12345678901234567890</TD>

</TR>

</TABLE>

<br/>

<TABLE border=1>

<TR>

<TD width=50px>我想回家我想回家</TD>

</TR>

</TABLE>

<br/>

<TABLE border=1>

<TR>

<TD width=50px>1234567890 1234567890</TD>

</TR>

</TABLE>

<br/>

<TABLE border=1>

<TR>

<TD width=50px style="word-wrap:break-word">12345678901234567890</TD>

</TR>

</TABLE>

<br/>

<TABLE border=1>

<TR>

<TD width=50px style="word-break:break-all">12345678901234567890</TD>

</TR>

</TABLE>

</BODY>

</HTML>
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: