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