什么是DOCTYPE
,有什么作用
- doctype是HTML5中的文档声明部分,它告诉浏览器使用什么版本的HTML标准解析文档。如果不告诉浏览器文档解析标准,一般情况下浏览器会开启最大兼容模式来解析网页,这被称为怪异模式,会降低解析效率,同时在解析过程中会产生一些奇怪的bug,所以文档声明是必须的。
- < !DOCTYPE>声明叫做文件类型定义(DTD),声明的作用为了告诉浏览器该文件的类型。让浏览器解析器知道应该用哪个规范来解析文档。
- < !DOCTYPE>声明必须在 HTML 文档的第一行,这并不是一个 HTML 标签。
为什么html5文档声明只需要写<!DOCTYPE html>
,但是html4需要写<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
因为html4基于SGML,需要DTD声明来告诉浏览器该文档的解析规范,但是html5不基于SGML,所以不需要DTD声明。
SGML 、 HTML 、XML 和 XHTML 是什么?
- SGML:标准通用标记语言,是一种定义电子文档结构和描述其内容的国际标准语言,是所有电子文档标记语言的起源。
- HTML:超文本标记语言,主要是用于规定怎么显示网页。
- XML:可扩展标记语言,标签可以自己创建,数量无限多。
- XHTML:可扩展超文本标记语言,是现在基本上所有网页都在用的标记语言,和HTML没什么本质的区别,标签都一样,用法也都一样,但是比HTML更严格,比如标签必须都用小写,标签都必须有闭合标签等。
严格模式
和混杂模式
-
他们分别是什么?
- 严格模式又叫做标准模式,表示游览器使用W3C标准去解析html文档
- 混杂模式又叫做怪异模式或兼容模式,此时浏览器按照自己的方式解析代码
-
如何区分标准模式和混杂模式
- 对于html4文档
- 包含严格DTD(文档定义类型)的doctype会使页面以标准模式呈现
- 包含过渡DTD和URI(统一资源标志符,就是声明最后的地址)的doctype会使页面以标准模式呈现
- 有过渡DTD但没有URI的doctype会使页面以混杂模式呈现
- doctype不存在或形式不正确会使页面以混杂模式呈现
- 对于html5文档
- html5没有DTD,所以没有严格模式和混杂模式的区别。
</
- 对于html4文档