背景
基于网络社会迅速发展,HTML语言和各大厂家的浏览器版本也发生了翻天覆地的变化。
网络世界不是随时都可以推陈出新,当浏览器加入了新的技术同时,也要考虑到对之前语言环境下产生的现已过时的网站的兼容性。
基于如此背景,文档声明这一规范出现了。
位置
<!DOCTYPE html>位于文档的最前,在<html>标签之前
作用
文档声明的出现,旨在告诉浏览器在web设计中,你用的是什么版本HTML,让浏览器以何种规范检查html元素,以何种模式解析代码。
浏览器模式
现在有用于在Web浏览器中的布局引擎的两种模式:
1. 混杂模式 (quirks mode)
以下三种情况,网页会被浏览器用混杂模式进行解析渲染:
a. 当网页上没有doctype声明的;
b. 当网页上的doctype解析出错的;
c. 在doctype声明中,没有使用DTD声明或者使用HTML4以下(不包括HTML4)的DTD声明的。
2. 严格模式 (strict mode)
在现有有doctype声明的网页,绝大多数是采用strict mode进行解析渲染。
<!DOCTYPE html>的含义
告诉浏览器,本文档由html 5 编写,可用strict mode进行解析。
拓展:HTML 5 中,DOCTYPE简短的根本原因
HTML 4.01 中的 doctype 需要对 DTD 进行引用,因为 HTML 4.01 基于 SGML。而 HTML 5 不基于 SGML,因此不需要对 DTD 进行引用,但是需要 doctype 来规范浏览器的行为(让浏览器按照它们应该的方式来运行。)。