浏览器如何在没有<table>的情况下分析<tr> <td>?

qiu*_*tao 2 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>
Run Code Online (Sandbox Code Playgroud)

如果我写这个,浏览器将正常分析.

<!-- <table border="1"> -->
    <tbody>
        <tr>
            <td>1</td>
            <td>2</td>
        </tr>
        <tr>
            <td>3</td>
            <td>4</td>
        </tr>
    </tbody>
<!-- </table> -->
Run Code Online (Sandbox Code Playgroud)

但是我这样写,我发现浏览器会分析它们而没有像字符串这样的标签.

<tbody>
    <tr>
        <td>1</td>
        <td>2</td>
    </tr>
    <tr>
        <td>3</td>
        <td>4</td>
    </tr>
</tbody>
Run Code Online (Sandbox Code Playgroud)

是一样的

1 2 3 4
Run Code Online (Sandbox Code Playgroud)

Juk*_*ela 6

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

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