这是一个普遍的问题,我的教授都无法回答:为什么我不必关闭HTML中的<!Doctype >
-标记?每隔一个标签都必须关闭,比如<head></head>
或<html></html>
!那么为什么不<!Doctype>
呢?
首先,它根本不是一个标签。在名义上基于SGML或XML的HTML版本中,它是一个文档类型声明,在SGML和XML中定义了特定的语法。作为一个关于整个文档的声明,它与HTML元素完全不同,而且它位于元素之前。在HTML语法中的HTML5中,它只是一个没有定义角色的必需字符串。(在实践中,它将浏览器置于"标准模式",与"怪癖模式"相反。浏览器实际上不会读取声明所指向的文档类型定义。验证器可能会这样做。)
相关参考文献包括SGML标准(在线不可用)、XML规范和HTML5CR
问题中"必须关闭所有其他标签"的表述在其他方面也具有误导性。关闭标签(如<p>
)和关闭元素(如<p>foo</p>
)是两回事。>
关闭一个标记。元素并不总是需要显式的结束标记,因为结束可以通过各种规则推断;只有XHTML需要所有元素都有明确的结束标记(如果我们将<br/>
这样的"自关闭"标记同时作为开始标记和结束标记,那么它就是这样)。但是对于这个doctype的东西,除了声明的结束>
之外,不需要指示或推断结束。
因为它是NOT标记,所以它是一个声明。
http://www.w3schools.com/tags/tag_doctype.asp
声明不是HTML标记;它是对网络浏览器的一条指令,说明页面是用什么版本的HTML编写的。
来源:http://www.w3schools.com/tags/tag_doctype.asp
这是你的答案吗?