HTML5 为什么只需要写 <!DOCTYPE HTML>

179 阅读2分钟

HTML4.01中的doctype需要对DTD进行引用,因为HTML4.01基于SGML。而HTML5不基于SGML,因此不需要对DTD进行引用,但是需要doctype来规范浏览器的行为。其中,SGML是标准通用标记语言,简单的说,就是比XML,HTML更老的标准,这两者都是由SGML发展而来的。

但是,HTML5不是的。

声明位于HTML文档中的第一行,处于标签之前。

主要作用是:告知浏览器的解析器用什么标准解析这个文档。DOCTYPE不存在或者格式不正确都会导致文档以怪异模式呈现。

什么是SGML

GML (Standard Generalized Markup Language)

标准通用标记语言
SGML是一种指示文档标准语言或标记集的标准。这种说明本身就是一种文档标准定义。SGML本身并不是一个文档语言,但它描述了一种文档语言,因此它是一种元语言。SGML的思想是基于文档应该有结构和语义结构而设计的。它不关心这些语义元素如何显示,而只关心如何组织它。因此显示的方式可能有所不同。基于SGML的文档有以下优点:

它们是基于文档内部结构而不是显示而设计的;因此不用反复进行修改;
它的可移植性更好,只要SGML的解释器存在,就可以对相应的文档进行解释;
原来用于打印的一些文档可以轻易地被用于显示;\

SGML是基于一种IBM早先创建出的通用标记语言的,这种标记语言包括GML和ISIL。一个SGML语言程序,要由三部分组成,即语法定义、文件类型定义(简称DTD--Definition Type Document)和文件实例。语法定义,定义了文件类型定义和文件实例的语法结构;文件类型定义,定义了文件实例的结构和组成结构的元素类型。文件实例是SGML语言程序的主体部分。SGML的实际使用中,每一个特定的DTD都定义了一类文件。例如,所有的新闻稿件都可以使用同一个DTD。因此,人们习惯上把具有某一特定DTD的SGML语言,称为某某置标语言。例如用于国际互联网的HTML语言。这样SGML就成为那些派生语言的元语言。