浏览器如何在没有?<table> </table>的情况下进行分析

时间:2014-04-28 06:21:32

标签: html html-table

<table border="1">
    <tbody>
        <tr>
            <td>1</td>
            <td>2</td>
        </tr>
        <tr>
            <td>3</td>
            <td>4</td>
        </tr>
    </tbody>
</table>

如果我写这个,浏览器会正常分析。

<!-- <table border="1"> -->
    <tbody>
        <tr>
            <td>1</td>
            <td>2</td>
        </tr>
        <tr>
            <td>3</td>
            <td>4</td>
        </tr>
    </tbody>
<!-- </table> -->

但是我这样写,我发现浏览器会分析它们而没有任何像string这样的标签。

<tbody>
    <tr>
        <td>1</td>
        <td>2</td>
    </tr>
    <tr>
        <td>3</td>
        <td>4</td>
    </tr>
</tbody>

相同
1 2 3 4

1 个答案:

答案 0 :(得分:6)

浏览器会忽略<tbody><tr><td>标记以及相应的结束标记。这没有在HTML规范中指定,因为它们没有定义语法错误文档的解析。但是,在HTML5草案中,有一个描述以与浏览器实际操作相对应的方式定义浏览器行为:Tree construction

这意味着您无法编写一个HTML文档,其中包含<tr>元素之外的table元素。浏览器中的HTML解析器根本不构造这样的文档树。 (但是,您可以使用客户端编写动态构建此类文档。)