有效的HTML和TD元素的数量

时间:2009-07-14 14:41:22

标签: html validation markup

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

编辑:无论是否有colspans和rowpans都可能发生这种情况。

4 个答案:

答案 0 :(得分:7)

规范明确允许inconsistent numbers of columns between rows(至少在标记中,预期浏览器会产生额外的值以弥补差异)。

  

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

......但是,坦率地说,这种数据结构根本没有任何意义。因此,如果您的行长度不一致,那么您可能做错了。

答案 1 :(得分:6)

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

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

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

尽管W3C规范没有要求,我对此的看法是,在考虑浏览器对于支持任何内容的方式时,我会尽可能地使用colspans或空单元格,确保它在所有浏览器上完全符合我的要求。

第二个好处是维护代码的任何人。使其更明显的是什么,而不是将其视为可能的错误。

答案 2 :(得分:3)

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

答案 3 :(得分:0)

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