1

I'm curious what the impact is of colspan in different browsers.

I have a table with a row acting as a heading which uses colspan to spread across all columns, and I might want to add columns in the future. If I simply make the colspan some really large number so that I can add columns without having to update the heading, does this have any negative impacts?

Will browsers behave badly and creating loads of dud columns, or should they be smart enough to limit this to how many columns the table actually has?

4

3 回答 3

2

使用colspan以跨越没有单元格开头的列违反了 HTML 表格模型(在 HTML5表格处理模型中被形式化)。那时所有的赌注都没有了,在所有现有的浏览器上进行测试(这实际上是不可能的)是不够的——未来的浏览器可以以不同的方式处理你的标记错误。

从理论上讲,根据 HTML 4.01,colspan=0意味着“单元格跨越从当前列到定义单元格的列组 (COLGROUP) 的最后一列的所有列”。然而,这并没有实现,它在 HTML5 中被删除(值为 0 时出错),没有任何替换。

这个想法显然是作者或生成 HTML 文档的软件负责计算列数。也就是说,如果您向表格添加列,则需要修改colspan值,如果您希望一个单元格跨越所有列。

于 2013-07-09T05:13:21.327 回答
1

MDN 说有两种行为,一种是 for <th>,一种是 for <td>

对于标题单元格( th),该值必须 >=0、<=1000。如果它是 >1000 则剪辑到 1000,如果它是 0 则跨越整个<colgroup>.

对于数据单元格( td),值 value 必须 >= 0, <= 1000。如果 >1000,则设置为 1,如果为 0,则跨越整个<colgroup>.

此外,似乎 Firefox 是唯一支持 0 = colgroup 规则的。

于 2013-07-09T00:35:31.563 回答
0

最好的方法是尝试一下。但我猜他们都会没事的。

什么是真正大的数字?50?100?10000?

这是一个有 200 列和一个 colspan 的小提琴:

<table>
    <tr>
        <th colspan="200">test</th>
    </tr>
    <tr>
        <td>test</td>
        ...
    </tr>
</table>

http://jsfiddle.net/FYKqb/

在不同的浏览器中尝试。我想他们都会没事的。

于 2013-07-09T00:25:58.857 回答