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