在这里能看到一行代码
<meta http-equiv="X-UA-Compatible" content="IE=EDGE" >
那么它是做什么用的呢?
答案是,告诉浏览器使用IE最新版本的Standards。
浏览器如何判断文档类型?
IE用户会在developer tools中改变文档模式,那么,如果用户自己没有选择,浏览器正在准备解析,绘制一个页面的时候,它是如何确定文档模式的呢?
实际上浏览器在渲染页面之前会检查两个内容,一个是页面是否有doctype信息,另外一个是页面是否有x-ua-Compatible信息。
x-ua-Compatible信息检测
我们知道,<!DOCTYPE html>
是告诉浏览器用标准模式去渲染页面。这叫做Doctype检测。实际上浏览器在渲染页面之前会进行x-ua-Compatible信息检测。
文档兼容模式是IE8浏览器引入的,所以我们这里的讨论是基于IE8及以上版本。
举个例子
当<meta http-equiv="X-UA-Compatible" content="IE=5" >
时
那他的文档模式就是IE7的混杂模式。
如果写成
<meta http-equiv="X-UA-Compatible" content="IE=7/8/9/10" >
那他就是IE7,8,9,10的标准模式,强制浏览器按照特定的版本标准进行渲染。
若是像之前看到的写成
<meta http-equiv="X-UA-Compatible" content="IE=EDGE" >
那他就是IE最新版本的标准模式。(即,若是IE10,那就使用IE10的标准,若是IE9那就使用IE9的标准。)这是按照最新版本,但也可能由于没有固定的版本而破坏你的布局。
若是<meta http-equiv="X-UA-Compatible" content="IE=7; IE=9" />
时
将IE8和IE7按照IE7标准渲染,但是IE9还是按照IE9的标准渲染。
接下来还有一些奇怪的
IE=EmulateIE7
采用IE7标准模式(if有效<!DOCTYPE html>
存在)
else
采用怪异模式
IE=EmulateIE8
采用IE8标准模式(if有效<!DOCTYPE html>
存在)
else
采用怪异模式
IE=EmulateIE9
采用IE9标准模式(if有效<!DOCTYPE html>
存在)
else
采用怪异模式
IE=EmulateIE10
以此类推