Web前端技术 · 第3课 20 / 25 | 编码:L03-13
HTML5中的表格

源码没写 tbody,浏览器里为什么有?

同一个网页,“查看源代码”和“元素”面板看到的是同一份结构吗?

学习通作答

删除HTML文件中的 tbody 开始与结束标签,保留其中的 tr,保存并重新打开页面。Elements面板中仍然出现 tbody,能否仅凭这一现象认定“删除没有生效”?请说明理由。

作答后展开:代码对比与原因

观察差异:多出的标签出现在哪里?

原始HTML源码

<table>
  <tr>
    <td>课程</td>
  </tr>
</table>

解析后的DOM(用HTML表示)

<table>
  <tbody>
    <tr>
      <td>课程</td>
    </tr>
  </tbody>
</table>

解释过程:源码 → 解析 → DOM

  1. 浏览器不是逐字显示源码,而是按HTML解析规则建立DOM。
  2. 在这个以 text/html 解析的例子中,解析器遇到直接位于 table 下的 tr,会先创建隐含的 tbody 元素,再把行放入其中。
  3. Elements面板显示的是解析后的DOM,因此能看到 tbody;原始HTML文件没有因此被改写。

回答问题:不能认定删除没有生效。文件中可以没有 tbody 标签,而解析后的DOM中仍有 tbody 元素;需要区分源码中写了什么与浏览器建立了什么结构。

本例边界:HTML在相应条件下允许省略 tbody 标签,这不意味着所有结构错误都会被正确修复。本课仍显式书写 tbody,让行分组更清楚。