html - 为什么 <!Doctype ... >-标签没有关闭

标签 html

这是一个普遍的问题,我的教授都无法回答: 为什么我不必关闭 <!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 - 为什么 &lt;!Doctype ... >-标签没有关闭,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23005510/

相关文章:

javascript - 使用 Material Design Lite 错误确认密码验证

html - 非常简单的 CSS 站点

javascript - 使用 jQuery .hide/.show 仅显示和隐藏一个 <div>

html - 具有两个 div 的 UI/UX 每个包含菜单

html - 打印分页符问题 - 在浏览器中打印预览

javascript - JS - 窗口宽度功能不起作用

html - 相邻列中的骨架图像和文本

html - 使两个共享插件(facebook 和 twitter)在同一行对齐(垂直对齐)

html - 传单 map 未填满整个包装器 div

android - webview 中的 html select 标签似乎有问题