html - 浏览器如何分析没有<table>的<tr> <td>?

标签 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> -->

但我这样写,我发现浏览器会在没有任何标签(如字符串)的情况下分析它们。

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

相同
1 2 3 4

最佳答案

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

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

关于html - 浏览器如何分析没有<table>的<tr> <td>?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23333870/

相关文章:

html - CSS Flexbox 水平居中问题

html - 影响布局的未知表格/单元格填充/边距

javascript - 无法在 Firefox 中调用 Form 元素

html - 如何在 Bootstrap 的页面中心对齐文本和矩形(带有一些文本)?

javascript - jQuery .replaceWith 在循环中卡住

jquery - Bootstrap下拉菜单显示错误

javascript - 悬停时显示和隐藏表格行,最初隐藏,如果输入则不隐藏

html - 表内逻辑。对于格式化的每个循环

html - 在不增加宽度或列的情况下旋转表头内的图像

javascript - 查询。面对点击事件的问题