SGML引入了文档类型的概念,并由此引入了文档类型定义(Document Type Definition: DTD)。文档类型定义 (DTD) 实际上就是一套关于标记符的语法规则,它包含了对元素的定义,指出能够在文档中使用哪些标记符, 它们应该按什么次序出现, 哪些标记符能够出现于其它标记符中, 哪些标记符有属性, 等等。属于某种类型的文档,能够经过一个应用程序来解析,检查是否全部的元素都被定义以及元素出现的次序是否正确。属于同一种类别的文档能够按照一致的方式来处理。html
document type文档类型的缩写,用来指定XHTML和HTML版本,告知浏览器用什么标准解析这个文档。
DOCTYPE不存在或格式不正确会致使文档以兼容模式呈现html5
<!DOCTYPE 顶级元素 可用性 "注册//组织//类型 标签 版本 类型定义//语言" "url">
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> //doctype首先根据-//W3C//DTD HTML 4.01 Transitional//EN查找相应引用对象,找不到则使用后面的url(这是永久存在的)
HTML5 不基于 SGML,所以不须要对DTD进行引用,可是须要doctype来规范浏览器的行为(让浏览器按照它们应该的方式来运行);而HTML4.01基于SGML,因此须要对DTD进行引用,才能告知浏览器文档所使用的文档类型。浏览器
模式能够经过document.compatMode得到(CSS1Compat标准模式,BackCompat怪异、兼容模式)框架
让IE的行为与(包含非标准特性的)IE5相同。这是一种比较宽松的向后兼容的模式。混杂模式一般模拟老式浏览器的行为,以防止老站点没法工做。PS:浏览器按照本身的方式解析代码ui
标准模式的排版和JS运做模式都是以该浏览器支持的最高标准运行 PS:浏览器按照 W3C 标准解析代码编码
这种模式下的浏览器特性有不少都是符合标准的,不标准的地方主要体如今处理图片间隙的时候(在表格中使用图片时问题最明显)。url
IE8引入的一种新的文档模式,超级文档模式可让IE以其全部版本中最符合标准的方式来解释网页内容。
如何触发以上模式详见https://hsivonen.fi/doctype/#handlingcode