自IE8开始,IE引入了一个“文档模式”的概念。页面的文档模式决定了可以使用什么功能,即决定了你可以使用哪个级别的CSS,可以在js中使用那些API以及如何对待文档类型(!DOCTYPE)。
到了IE9,共用以下几种文档模式:
IE5:以混杂模式(Quirks Mode)渲染页面,IE5的默认模式就是混杂模式,IE8以及更到版本中的新功能都无法使用;
IE7:以IE7标准模式渲染页面。IE8以及更到版本中的新功能都无法使用;
IE8:以IE8标准模式渲染页面。IE8中的新功能都可以使用,如Selectors API,更多的CSS2级选择符和某些CSS3功能,还有一些HTML5功能。IE9中的新功能无法使用。
IE9:以IE9标准模式渲染页面。IE9中的新功能都可以使用,如ECMAScript5,完整的CSS3以及更多的HTML5功能。
默认情况下,浏览器会通过文档类型声明来确定是使用最佳的可用文档模式还是使用混杂模式。
要强制浏览器以某种模式渲染页面,可以使用Http头部信息 X-UA-Compatible 或通过同等的<meta>标签来设置:
<meta http-equiv="X-UA-Compatible" content="IE=IE版本" />
这里的IE版本有以下一些不同的值,而且这些值并不一定与以上4中文档模式对应:
Edge:始终以最新的文档模式渲染页面。忽略文档类型声明。对于IE9,始终以IE9标准模式渲染页面。
EmulateIE9:如果有文档类型声明,则以 IE9标准模式渲染页面,否则将文档模式设置为IE5。
EmulateIE8:如果有文档类型声明,则以 IE8标准模式渲染页面,否则将文档模式设置为IE5。
EmulateIE7:如果有文档类型声明,则以 IE7标准模式渲染页面,否则将文档模式设置为IE5。
9:强制以IE9标准模式渲染页面,忽略文档类型声明。
8:强制以IE8标准模式渲染页面,忽略文档类型声明。
7:强制以IE7标准模式渲染页面,忽略文档类型声明。
5:强制将文档模式设置为IE5,忽略文档类型声明。