我有一个包含几列和几行的 HTML 表。最后一行的 TD 元素并不总是与其他行一样多。它在我检查过的几个浏览器中正确呈现并通过了验证检查。但这似乎不正确。每一行中的 TD 元素的数量是否应该相同?
编辑:这可能发生在有或没有 colspans 和 rowspans 的情况下。
我有一个包含几列和几行的 HTML 表。最后一行的 TD 元素并不总是与其他行一样多。它在我检查过的几个浏览器中正确呈现并通过了验证检查。但这似乎不正确。每一行中的 TD 元素的数量是否应该相同?
编辑:这可能发生在有或没有 colspans 和 rowspans 的情况下。
该规范明确允许行之间的列数不一致(至少在标记中,浏览器应该生成额外的列来弥补差异)。
列数等于列数最多的行所需的列数,包括跨多列的单元格。对于少于此列数的任何行,该行的末尾应填充空单元格。
……但是,坦率地说,这样的数据结构很少有任何意义。因此,如果您的行长度不一致,那么您可能做错了什么。
“每一行的TD元素的数量应该相同吗?”
虽然不是严格要求,但我说“是的,或者你应该有 colspans 来补偿它们。”
<table>
<tr>
<td>two</td>
<td>columns</td>
</tr>
<tr>
<td colspan="2">one big column</td>
</tr>
</table>
尽管 W3C 规范没有要求,但我对此的看法是,在考虑浏览器支持任何东西的方式时,我会尽可能保持一致,使用 colspans 或空单元格,以确保它在所有浏览器上都在做我想要的。
第二个好处是任何维护您的代码的人。使意图更明显,而不是被视为可能的错误。
HTML 标准中没有要求每行定义的列数匹配。可以说,从道德或最佳实践的角度来看,您“应该”提供统一数量的列,我支持这一点,但这不是标准要求的,这就是它验证的原因。
只是一个想法:尝试使用元素创建表格;-) 渲染表格存在一些问题。