2

我有一个包含几列和几行的 HTML 表。最后一行的 TD 元素并不总是与其他行一样多。它在我检查过的几个浏览器中正确呈现并通过了验证检查。但这似乎不正确。每一行中的 TD 元素的数量是否应该相同?

编辑:这可能发生在有或没有 colspans 和 rowspans 的情况下。

4

4 回答 4

7

该规范明确允许行之间的列数不一致(至少在标记中,浏览器应该生成额外的列来弥补差异)。

列数等于列数最多的行所需的列数,包括跨多列的单元格。对于少于此列数的任何行,该行的末尾应填充空单元格。

……但是,坦率地说,这样的数据结构很少有任何意义。因此,如果您的行长度不一致,那么您可能做错了什么。

于 2009-07-14T14:47:38.297 回答
6

“每一行的TD元素的数量应该相同吗?”

虽然不是严格要求,但我说“是的,或者你应该有 colspans 来补偿它们。”

<table>
    <tr>
        <td>two</td>
        <td>columns</td>
    </tr>
    <tr>
        <td colspan="2">one big column</td>
    </tr>
</table>

尽管 W3C 规范没有要求,但我对此的看法是,在考虑浏览器支持任何东西的方式时,我会尽可能保持一致,使用 colspans 或空单元格,以确保它在所有浏览器上都在做我想要的。

第二个好处是任何维护您的代码的人。使意图更明显,而不是被视为可能的错误。

于 2009-07-14T14:43:39.333 回答
3

HTML 标准中没有要求每行定义的列数匹配。可以说,从道德或最佳实践的角度来看,您“应该”提供统一数量的列,我支持这一点,但这不是标准要求的,这就是它验证的原因。

于 2009-07-14T14:47:57.890 回答
0

只是一个想法:尝试使用元素创建表格;-) 渲染表格存在一些问题。

于 2009-07-14T21:10:57.863 回答