这是一个普遍的问题,我的教授都不能回答这个问题:
为什么我不必关闭HTML中的<!Doctype >
- 标记?
每个其他代码都必须关闭,例如<head></head>
或<html></html>
!
那么为什么不<!Doctype>
?
答案 0 :(得分:8)
首先,它根本不是标签。在名义上基于SGML或XML的HTML版本中,它是文档类型声明,它具有在SGML和XML中定义的特定语法。作为整个文档的声明,它与HTML元素完全不同,它在元素之前。在HTML语法的HTML5中,它只是一个没有定义角色的必需字符串。 (实际上,它将浏览器置于“标准模式”与“怪癖模式”相反。浏览器实际上并没有读取声明指向的文档类型定义。验证器可能会这样做。)
相关参考文献是SGML标准(不在线提供),XML specification和HTML5 CR。
在问题中“每个其他标签必须关闭”的陈述的提法在其他方面也具有误导性。关闭标记(如<p>
)并关闭元素(如<p>foo</p>
)是两回事。 >
关闭标记。元素并不总是需要显式的结束标记,因为结尾可以通过各种规则来推断;只有XHTML需要所有元素的显式结束标记(如果我们将<br/>
这样的“自闭”标记计为开始标记和结束标记,就像它一样。但是对于这个doctype事物,除了声明的结尾>
之外,不需要指出或推断出任何结束。
答案 1 :(得分:1)
因为它是 NOT 标签,所以它是一个声明。
答案 2 :(得分:1)