我可以在HTML页面中使用不同的根元素吗?

时间:2013-01-11 06:13:14

标签: html html-parsing doctype

出于好奇,当我在DOCTYPE声明中发现HTML的角色时,我正在阅读维基百科上的Document Type Declaration文章:

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">

根据维基百科,第一个属性HTML是文档的根元素,因此应首先打开。

  

...在XHTML中,根元素是<html>,是第一个打开的元素(在doctype声明之后)并且最后关闭。

所以我想知道,如果我要构建一个文档:

<!DOCTYPE burrito PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
<burrito>
    <head></head>
    <body>
    A burrito is a great way to wrap a webpage.
    </body>
</burrito>

网页浏览器会使用我的<burrito>还是将其打包在<html>代码中?

2 个答案:

答案 0 :(得分:1)

它将包含在<html>中。像这样:

<!DOCTYPE burrito PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
<html>
    <head>....</head>
    <body>
        <burrito>
            A burrito is a great way to wrap a webpage.
        </burrito>
    </body>
</html>

答案 1 :(得分:1)

标题中问题的答案是“否”,因为所有HTML规范都将html元素定义为根元素。关于处理浏览器的错误可能适用的问题以及违反此问题的原因并不是特别有趣,并且可以预期浏览器之间存在差异。

在任何情况下,虚拟doctype使浏览器进入Quirks模式,并没有任何意义,因为浏览器不关心doctype,除了关于Quirks模式,“标准模式“,或某些中间模式。他们甚至没有阅读所提到的文档类型定义,因此他们不会检测到不匹配。