为什么firebug会添加到?<table> </table>

时间:2009-11-05 05:15:59

标签: html dom firebug

我查看了html源代码,没有<tbody>,但是当在HTML标签中通过firebug查看时,会出现<tbody>。知道为什么吗?

5 个答案:

答案 0 :(得分:19)

总结bobince,Kieron,Alohci等人的答案和评论中的优秀解释:

  1. Firebug只显示已解析页面的DOM。由于复杂的HTML解析规则,DOM将与源HTML“不同”(在某种意义上)。
  2. 在这种情况下,DOM解析器添加了DOM中的TBODY元素。请注意,这种奇怪的解析仅限于text / html文档,而在XHTML中,DOM与源XML紧密对应。
    • 此行为在HTML 4中指定。 table的内容模型(允许的孩子)为(CAPTION?, (COL*|COLGROUP*), THEAD?, TFOOT?, TBODY+) - tr s仅允许tbody!规范说tbody的开始标记是可选的,这应该意味着如果HTML解析器直接在tr内遇到table,它会插入tbody开始标记作者省略。
    • 为了使问题更加明确,HTML 5定义了very detailed parsing rules, in particular for this case:“当插入模式为”表格中“时,必须按如下方式处理令牌:[...]标签名称为以下之一的开始标记: “td”,“th”,“tr” - &gt;表现为好像已经看到标签名为“tbody”的开始标记令牌,然后重新处理当前令牌。“

答案 1 :(得分:6)

它不是萤火虫,而是火狐这样做。这就是表格应该与<TBODY>一起编写的方式,与<COLGROUP>之类的元数据分开。当Firefox找到它们时,只需插入<TBODY>标记。

答案 2 :(得分:3)

Firefox添加了它们,因为standard这样说。

TABLE实际上不允许直接包含TR个元素,它们必须包含在THEADTFOOTTBODY中。但是为了简单和向后兼容,当表只包含一个表体而没有表头或脚部时,可以省略TBODY的开始标记“;在这种情况下,元素由浏览器推断。

答案 3 :(得分:1)

它不是由firebug添加的,它是由Firefox添加的。 Firebug为您提供实际dom的样子。如果你浏览各种dom元素,你会发现Firefox也添加了一些自己的样式元素。

答案 4 :(得分:0)

A.19。明确的元素

在表格中使用显式的tbody元素。

基本原理:虽然table元素的内容模型允许跳过tbody元素,但在HTML 4中,此元素是隐式的。 HTML 4用户代理将静默添加此元素,因此可能会混淆脚本或样式表。

来源:http://www.w3.org/TR/2009/NOTE-xhtml-media-types-20090116/#compatGuidelines