这是一个普遍的问题,我的教授都无法回答:
为什么我不必关闭 <!Doctype >
-HTML 中的标签?
所有其他标签都必须关闭,例如 <head></head>
或 <html></html>
!
那为什么不 <!Doctype>
?
最佳答案
首先,它根本不是标签。在名义上基于 SGML 或 XML 的 HTML 版本中,它是一个文档类型声明,它具有在 SGML 和 XML 中定义的特定语法。作为对整个文档的声明,它与 HTML 元素完全不同,它位于元素之前。在 HTML5 的 HTML 语法中,它只是一个必需的字符串,没有定义的作用。 (在实践中,它将浏览器置于“标准模式”而不是“怪癖模式”。浏览器实际上并不读取声明指向的文档类型定义。验证器可能会这样做。)
相关引用资料是 SGML 标准(网上没有),XML specification , 和 HTML5 CR .
问题中“所有其他标签都必须关闭”的表述在其他方面也具有误导性。关闭标签(如 <p>
)和关闭元素(如 <p>foo</p>
)是两件不同的事情。 >
关闭标签。元素并不总是需要明确的结束标签,因为可以通过各种规则推断结束;只有 XHTML 要求所有元素都有明确的结束标签(如果我们将像 <br/>
这样的“自闭合”标签算作开始标签和结束标签,就这样)。但是对于这个文档类型的东西,除了结尾 >
之外,不需要指明或推断任何结尾。声明。
关于html - 为什么 <!Doctype ... >-标签没有关闭,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23005510/