你的位置:首页 > 网页设计

[网页设计]!DOCTYPE到底是个神马?


<!DOCTYPE>到底是个神马?

  前两天和朋友谈到<!DOCTYPE>,今天将网上学习到的资料在这里整理一下

  因为HTML5的风靡人们慢慢的弱化了对<!DOCTYPE>的理解,但是现在还是有很多的面试官在问这个问题,所以还是有必要对其了解一下,以便以后有些许谈资。

1.<!DOCTYPE>有神马作用?

  要弄清楚这个问题,我们首先来解释一下浏览器的“标准模式”和“怪异模式”。

  什么是“怪异模式”?简单说就是浏览器为了兼容很早之前针对旧版本浏览器设计、并未严格遵循W3C标准的网页而产生的一种页面渲染模式,而在这时渲染引擎也会切换到需要的版本。

  什么是“标准模式”?当用户需要显示一些新的、满足W3C规范的页面时,渲染引擎切换到一个与“怪异模式”相对的“标准模式”,在此模式下渲染引擎就是当前的最新版本。这样也就满足了更多的W3C规范。

  最后,“标准模式”和“怪异模式”合起来就称为浏览器的文档模式。

  当在IE6的时代,为了既能遵循W3C标准,又能保证旧的网页能继续浏览,这样就产生了“标准模式”和“怪异模式”。这两种渲染模式都存在一个浏览器上,但是手动切换又不切实际,微软就提出了文档类型(DOCTYPE)这个在当时非常“新颖”的概念

  <!DOCTYPE>就这样“华丽”的诞生了,先不说去谈论它的好坏,我们只说说它的作用:告知浏览器的解析器用什么文档标准去解析这个文档。

2.<!DOCTYPE>不存在或格式错误会有影响吗?

  DOCTYPE 不存在或格式不正确会导致文档以“怪异模式”呈现。

3.HTML5为什么只需要写<!DOCTYPE HTML>

  HTML5 不基于SGML,因此不需要对DTD(Document Type Definition)进行引用,但是需要doctype来规范浏览器的行为(让浏览器按照它们应有的方式来运行)。

  而HTML4.01基于SGML,所以需要对DTD(Document Type Definition)进行引用,告知浏览器文档所使用的文档类型。

  注:SGML是国际上定义电子文档和内容描述的标准,基本思想是把文档的内容与样式分开。由SGML声明(SGML Declaration)、文档类型定义(Document Type Definition,DTD)和文档实例(Document Instance)组成。

参考来源:

  http://www.cnblogs.com/zichi/p/5147159.html