设置<table>的固定长度,若<td>中含有<pre>标签且<pre style="word-wrap:break-word; 800px">时
<table width="100%" style="table-layout:fixed">
引用:-===============
有时候将内容读取至table中时,会发生字符串将表格样式顶开,这样样式也就over了。
那么,我也很苦恼,所以找了一些,我里总结一下前人的劳动果实,希望能帮助更多的人解惑。
**为什么会没有换行,只是一行输出呢? :因为在输入时没有空格或者回车,在保存时没有将相应的软/t,/n等转化为相应的<br>,table键等硬标签。所以输出时也就只能一行输出了。
method1:在保存内容时转换标签:
Content=Regex.Replace(Content,"\r","<BR>"); //回车
Content=Regex.Replace(Content," "," "); //空格
Content=Regex.Replace(Content,"\t"," ");
**主要是将软回车换成<br>
method2:样式设置
例子:
<table width="100%"style="table-layout:fixed">
<tr>
<td style="word-wrap:break-word" width="30%">ssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssss</td>
<td>bbbbbbbbbbbbbbbbbbbbbbbbbb</td>
</tr>
</table>
以上两种方法本人试过,对ff和msie都有效果。
下面再说下别的有争议的换行方法:
nowrap:可以对msie起换行作用,对ff好像只能截取字符串而已
<table border="1" width="100px">
<tr>
<td width="50px" nowrap>++++aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa</td>
<td width="50px">this is the no</td>
</tr>
</table>
还有在输入内容时用pre限定格式(没试过,只是理论上觉得有可能行),还有就是在<td></td>中的内容用div包起来(也没有亲自试过)。有兴趣的朋友有时间可以自己试一下。
pre:
div:
这里再有就是一个内容省略的样式:
<table border=1 width=80 style="table-layout:fixed" >
<tr>
<td style="text-overflow:ellipsis; overflow: hidden;">ssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssss</td>
</tr>
</table>
输出样式:ssssssssssss...