如下图所示,当一个定义了宽度的DIV或者其他元素中填充的全部为纯英文或者纯数字的时候,在IE和火狐中都会被撑大,而不会自动换行
并且当数字或者英文中带有汉字时,会从汉字处换行,而纯汉字却可以自动换行。这个问题如何解决?先来认识一下两位主角word-wrap和word-break
两种取值:
(1)normal
(2)break-word(此值用来强制换行,内容将在边界内换行,中文没有任何问题,英文语句也没问题。但是对于长串的英文,就不起作用。)
word-break
用来控制断词
三种取值:
(1)normal
(2)break-all(是断开单词。在单词到边界时,下个字母自动到下一行。主要解决了长串英文的问题。)
(3)keep-all(是指Chinese, Japanese, and Korean不断词,一句话一行,可以用来排列古诗哟~)
【解决方法】
可以在CSS中加入:
word-break:break-all;
由于项目的需要,其中一个属性的值不能超过50个字符限制,在测试的时候发现table中只能显示大概20多个字符,其余的都被遮盖掉了,故搜寻了一下解决方案,以备下次再用。
我的测试程序如下:
<html> <head> <title> 测试英文和数字表格换行 </title> </head> <body> <table style="table-layout:fixed;word-break:break-all" width="100%" border="0" cellspacing="0" cellpadding="5" > <tr> <th>值</th> <th>含义</th> <th>更新时间</th> <th>操作人</th> <th>操作</th> </tr> <tr> <td>测试</td> <td>ABCDGFHGJYABCDGFHGJYABCDGFHGJYABCDGFHGJYABCDGFHGJY</td> <td>2009-09-18 15:43:24</td> <td>某人</td> <td>换行<td> </tr> </table> </body> </html>
这里说明一下其中style属性中的语法:
Html代码
table-layout :auto | fixed
参数:
Html代码
auto : 缺省设置. 列宽将设置为不可分割的最大的内容的宽度。
fixed : 表的宽度和列的宽度固定,不随单元格中内容而改变
1、设置了各个列的宽,没有设表的宽:表的宽度等于各个列的宽度和
2、设置了表的宽度,没有设各个列的宽度:各个列的宽度平均分配
3、要是都没设置宽度:表的宽度为100%,各个列的宽度平均分配
Html代码
word-break : normal | break-all | keep-all
参数:
Html代码
normal : 依照亚洲语言和非亚洲语言的文本规则,允许在字内换行
break-all : 该行为与亚洲语言的normal相同。也允许非亚洲语言文本行的任 意字内断开。该值适合包含一些非亚洲文本的亚洲文本
keep-all : 与所有非亚洲语言的normal相同。对于中文,韩文,日文,不允许字断开。适合包含少量亚洲文本的非亚洲文本
注意:该语法仅适用于IE内核,对火狐不兼容!