HTML:表数据 (td) 元素计数的变体(无 colspan)


根据

HTML规范,生成表是否合法,这些表每行的td元素计数各不相同,而没有任何colspan属性的规范?

此表可以被视为有效的 HTML 吗?

<table>
   <tr>
      <td>a</td>
      <td>b</td>
   </tr>
   <tr>
      <td>c</td>
   </tr>
</table>
<!-- Output: -->
---------
| a | b |
---------
| c |     <-- Missing cell.
-----

我所知道的所有浏览器都会按预期呈现。但是,它们经常尝试呈现错误的语法,因此此行为不足以判断上面的代码是否实际上是有效的 HTML。

背景:我正在编写一个PHP类,它应该呈现每行具有不同计数的td-元素的表。该类需要通过查找具有最多 td -元素的行作为引用来呈现表,以便生成有效的 HTML 语法。

答案很晚,但在搜索这个问题时发现了这个问题,所以我想我会在我想通后为未来的读者发布答案。

根据 w3 表模型规范:是的,这是表的有效语法

总之,当浏览器处理组成表的每个元素时,表的xwidth会根据需要递增。规范中没有具体提及这是否合法,但是浏览器应如何形成表的定义和必需算法应该可以毫无问题地处理这种情况。

此外,将以下内容放入 W3 标记验证程序可以成功验证,没有问题,但会生成警告Line 14, Column 17: A table row was 1 columns wide, which is less than the column count established by the first row (2).

<!DOCTYPE html>
<html>
    <head>
        <title>test</title>
    </head>
    <body>
        <table>
            <tr>
                <td>a</td>
                <td>b</td>
            </tr>
            <tr>
                <td>c</td>
            </tr>
        </table>
    </body>
</html>

最新更新