doctype是什么,它的作用?
doctype标签是一种标准通用标记语言的文档类型声明 ,目的和作用就是告诉浏览器以什么样的模式来解析文档。
doctype的模式和如何判断。
doctype一共有两个模式:1、怪异模式(quirks mode)2、标准模式(standards mode)。
标准模式是指浏览器按照W3C的标准解析执行代码,而怪异模式是按照旧的非标准的实现方式对文档进行解析。
而浏览器解析使用标准模式还是怪异模式,与doctype的声明直接相关。
触发浏览器进入怪异模式:
1.缺少文档声明。
2.错误的文档声明。如 <!DOCTYPE html PUBLIC>。
3.在ie6,7,8,9的 DocumentType 之前放注释。
怪异模式下会影响css布局:
1.在某些浏览器(列如IE)的怪异模式下,盒模型变成IE5.5的盒模型(IE5.5的盒模型的width 包括 margin 和 padding)
2.某些行内(inline)元素的垂直对齐;CSS规范要求图片对齐至盒内文本的基线。标准模式下,基于Gecko的浏览器将会对齐至基线,而怪异模式下它们会对齐至底部。并且表格不继承样式等。
判断当前浏览器使用哪种模式解析HTML文档:
在代码中可以通过 document.compatMode 的值来判断当前模式。
在怪异模式下得到的值是 BackCompat ,标准模式下得到的值是 CSS1Compat。
console.log(window.top.document.compatMode);
//css1Compat 标准模式
//BackCompat 混杂模式