嵌套表的HTML5有效性

时间:2012-04-24 12:32:08

标签: html5 validation datagrid html-table w3c

我正在寻找表格方面的HTML5规格。 我正在做一个Web应用程序,有很多数据表。

这些表通常有一个数据库行映射到一个表行。一切都很好。 但是,一个特定问题的子项具有如此多的列,需要将其分布在表中的两行中。所以普通表是(伪):

<table>
<thead>
<tr>
  <th>Header</th>
</tr>
</thead>
<tbody>
<tr>
  <td>Data</td>
</tr>
</tbody>
</table>

有问题的行是这样的:

<table>
<tbody>
<tr>
  <th>Header row 1</th>
</tr>
<tr>
  <td>Data</td>
</tr>
<tr>
  <th>Header row 2</th>
</tr>
<tr>
  <td>Data</td>
</tr>
</tbody>
</table>

所以现在我的问题是:在HTML5中嵌套表是否有效? 我们很容易同意它非常难看。但我在这里只考虑有效性。

如果我可以拥有嵌套表,它将解决与这些表的排序和编辑有关的任何问题(实现半数据网格功能)。 这样,主表仍然可以只包含一行和两列。可排序的日期和带有数据的嵌入式表。

你怎么说?我一直在寻找规格,但找不到任何确定的东西。

2 个答案:

答案 0 :(得分:12)

此文档,其中只包含嵌套表:

<!DOCTYPE html>
<html>
<head>
    <meta charset="utf-8">
    <title>A nested table</title>
</head>
<body>
    <table>
        <tbody>
            <tr>
                <td>
                    <table>
                        <tbody>
                            <tr>
                                <td>Nested</td>
                                <td>Table</td>
                            </tr>
                        </tbody>
                    </table>
                </td>
            </tr>
        </tbody>
    </table>
</body>
</html>
根据{{​​3}}

...是有效的

  

文档根据指定的模式以及验证器检查的其他约束进行验证。

答案 1 :(得分:-3)

嵌套表需要实际嵌套在<td>个元素中,依次嵌套在<tr>和其他表中,而不是直接嵌套在表或行中。

MDN Reference

  

<table> 允许的内容

     
      
  • 可选的<caption>元素
  •   
  • 零个或多个<colgroup>元素,
  •   
  • 可选的<thead>元素
  •   
  • 以下任一项:
  •   
  • 零个或多个<tbody>元素
  •   
  • 一个或多个<tr>元素
  •   
  • 可选的<tfoot>元素
  •   
     

<tr> 允许的内容

     
      
  • 零个或多个<td>和/或<th>元素;支持脚本的元素(<script><template>)也是允许的
  •   
     

<td> 允许的内容

     
      
  • 流量内容。 (<table>包含在此列表中)
  •