【发布时间】:2010-09-28 12:21:59
【问题描述】:
我有这个 HTML 代码片段(在使用严格 doctype 的有效文档中):
<p>Without <br /></p>
<table border="1" width="220">
<tbody>
<tr>
<td>lorem</td>
<td>ipsum</td>
<td>lorem ipsum</td>
<td>lorem</td>
<td>ipsum</td>
</tr>
</tbody>
</table>
<p>With <br /></p>
<table border="1" width="220">
<tbody>
<tr>
<td>lorem</td>
<td>ipsum</td>
<td>lorem<br>ipsum</td>
<td>lorem</td>
<td>ipsum</td>
</tr>
</tbody>
</table>
在任何浏览器中都是这样呈现的:
请注意,第一个表中的第三个
标记。否则这两个表的代码是相同的。
我想找到一种方法让表格像第二个示例一样呈现,但不必使用
标记。
澄清
我无法指定单元格的宽度,因为它们可能包含任意数量的字符。
【问题讨论】:
-
这些可能是出了名的尴尬。即使有非常精确的样式,桌子似乎仍然经常有自己的想法。
-
当您使用默认的‘auto table layout’ algorithm 时,您完全受制于浏览器如何选择分配“备用”表格宽度。对此没有一种标准算法(CSS2 规范中的算法是“非规范的”),并且浏览器会做不同的事情; IE 尤其会做一些奇怪的事情。对不起。如果你想要真正可靠渲染,唯一的出路是
table-layout: fixed。 -
实际上
table-layout: fixed使 IE 中的一切变得更糟,即使在 IE8 中也是如此,而它在其他浏览器中有所帮助。到目前为止,似乎没有<br>标签是无法完成的。
标签: html line-breaks