首先,解释一下HTML5中的DOCTYPE
doctype是一种标准通用标记语言的文档类型声明,目的是告诉标准通用标记语言解析器要使用什么样的文档类型定义(DTD)来解析文档。
其次,要向大家介绍一下 浏览器的三种模式
1.怪异模式(quirks mode),即混杂模式
2.准标准模式(almost standards mode)
3.标准模式(standards mode)
针对不同的浏览器内核以及不同的doctype,会有不同模式。
可以进行最简单的实验:
在浏览器打开这段html代码
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>hello world!</title>
</head>
<body>
<p>hello world!</p>
</body>
</html>
并在控制台输入 document.compatMode ,结果为 'CSS1Compat' ,此时即为标准模式
<!DOCTYPE html>
将其中的html进行任意更改,譬如 htmlxxx
并在控制台输入 document.compatMode ,结果为 'BackCompat' ,此时即为混杂模式
两者的最大区别
标准模式是以W3C的标准来解析和渲染页面
混杂模式以自己方式怪异解析和渲染页面
结语
现在浏览器厂商的不断自我更新,标准模式与怪异模式在很多以前会产生歧义的地方都已经没有了大区别,但细微之处还是需要在实际应用时慢慢发现。