HTML:表数据的变化(td)元素计数(没有colspan)

时间:2014-08-23 16:59:52

标签: html html-table

根据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语法。

1 个答案:

答案 0 :(得分:1)

迟到的答案,但是在搜索时发现了这个问题,所以我想在找到答案之后我会为未来的读者发布答案。

根据w3 table model specification是,这是表的有效语法

总之,当浏览器处理构成表的每个元素时,表的xwidth会根据需要递增。规范中没有特别提及这是否合法,但是定义的和必需的算法应该如何形成表格应该处理这种情况。

此外,将以下内容放入W3 Markup validator 成功验证且没有任何问题,但会产生警告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>