一个Html表格问题,困惑。高手进来。

来源:百度知道 编辑:UC知道 时间:2024/05/21 23:51:50
代码如下:
<TABLE width="100%" id=c1 >
<TR>
<TD width="60"> 姓名</TD>
<TD width="60"> 年龄</TD>
<TD width="60"> 身高</TD>
<TD> 身高</TD>
</TR>
<TR>
<TD align=right colSpan=4>vvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvv</TD>
</TR>
</TABLE>

=====================================
一共两行,第一行4格,第二行1格

第一行,前三格,宽度设置为60,最后一格宽度不计算。
这样,理论上最后一行会占用剩余宽度。

问题如下:如果第二行<td>vv</td>中的字符过多的话,第一行
的表格的宽度会改变。

以前写的同样的代码,宽度是不变的,最近不不知道怎么回事。。。

-----------------------------------------------------------
首先我不需要此回答:4格全部定义宽度

如有高手看出问题所在,请回答。。。盼回答。谢谢

给你解释:
你的表格一样是可一控制它自动换行的,不信你把你的长长的英文字母换成汉字来试,呵呵这是因为它自动换行是以单个字为分割线的,也就是够一个字了,它下一个字如果放不下了就自动换行,而你长长的英文字母是一个字,所以不能换行,将被搞宽,失去控制
这种情况下,用<TD align=right colSpan=4 style="table-layout:fixed;word-break:break-all;"> 样式来控制

<TABLE width="100%" id=c1 > 将100%改成像素的
这句代码style="table-layout:fixed;word-break:break-all;"
添加到td里,
<TD align=right colSpan=4 style="table-layout:fixed;word-break:break-all;">

因为第二行colspan=4
第二行的被看作为第一行的4个单元格的总长度的和!
如果第二行的内容太长,则整个表的宽度都以第二行为准,而第一行所指定的值就失去意思了!而被拉长到与第二行相同的宽度!