为什么<!DOCTYPE> 不可或缺
1.When question comes
你一定在 HTML 页面最前面看到过这样一行代码(比如 百度):
<!DOCTYPE html>
或者说类似这样的(比如 博客园-韩子迟 PS:博客园首页 文档类型声明同百度):
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
那么问题来了。
-
这行代码有什么用?
-
去掉它会有什么影响?
2.Standards Mode VS Quirks Mode
先来解释一下浏览器的 “标准模式”(Standards Mode, 也称 strict mode)和 “怪异模式”(Quirks Mode,有时又称 “混杂模式”、”兼容模式 Compatibility Mode”)这两个名词。
简单来说,Quirks Mode 就是浏览器为了兼容很早之前针对旧版本浏览器设计、并未严格遵循 W3C 标准的网页而产生的一种页面渲染模式
3.doctype
<!DOCTYPE html>
经过调研,BAT 以及 GOOGLE 等大公司用的都是它,能很好地向后兼容。所以,放心大胆地用它吧!
其他各种文档类型声明以及差异可以参考 HTML 标签
声明必须是 HTML 文档的第一行,位于 <html> 标签之前。
声明不是 HTML 标签,它是指示 web 浏览器关于页面使用哪个 HTML 版本进行编写的指令。
在 HTML 4.01 中, 声明引用 DTD,因为 HTML 4.01 基于 SGML。DTD 规定了标记语言的规则,这样浏览器才能正确地呈现内容。HTML5 不基于 SGML,所以不需要引用 DTD。
SCML : 标准通用标记语言(以下简称“通用标言”),是一种定义电子文档结构和描述其内容的国际标准语言
4.Back to the querstion
我们再回到这个问题,浏览器从服务端获取网页后会根据文档的 DOCTYPE 定义显示网页,如果文档正确定义了 DOCTYPE 浏览器则会进入标准模式(Standards Mode),否则浏览器会认为你的网页是旧的网页(需要用旧的渲染引擎去解析),从而进入怪异模式(Quirks mode)进行解析。为了避免浏览器进入怪异模式(事实上,现实中已经几乎没有网页需要用浏览器的怪异模式去解析,浏览器的 Quirks Mode 仅仅是为了向后兼容),所以,请确保在 HTML 页面的首行写上:
<!DOCTYPE html>
浙公网安备 33010602011771号