我有一个包含多列和多行的HTML表。最后一行并不总是具有与其他行一样多的TD元素。它在我检查过的几个浏览器中正确呈现并通过验证检查。但似乎不正确。 TD元素的数量是否应该在每一行中相同?
编辑:无论是否有colspans和rowpans都可能发生这种情况。
答案 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)
只是一个想法:尝试使用元素创建表;-)渲染表中存在一些问题。