为什么<!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>
posted on 2016-07-05 16:27  Befacebook  阅读(104)  评论(0)    收藏  举报