【问题标题】:How do browsers analyze <tr> <td> without <table>?浏览器如何分析没有 <table> 的 <tr> <td>?
【发布时间】:2019-01-29 05:35:54
【问题描述】:
<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> -->

但是我这样写,我发现浏览器会分析它们而不需要任何像字符串这样的标签。

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

相同
1 2 3 4

【问题讨论】:

  • 浏览器会尝试分析和呈现 html,即使它并不总是有效的。你的问题到底是什么?
  • @Esa:在标题中:“如何”。

标签: html html-table


【解决方案1】:

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

这意味着您不能编写包含&lt;tr&gt; 元素之外的table 元素的HTML 文档。浏览器中的 HTML 解析器根本不构造这样的文档树。 (但是,您可以使用客户端脚本动态构建这样的文档。)

【讨论】:

    猜你喜欢
    • 2019-05-27
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-06-29
    • 2021-01-27
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多