X-UA-Compatible 兼容模式详解
为了将这个风险降到最低,IE6允许网页开发人员选择IE编译和显示他们网页的方式。"Quirks mode"为预设,这会使页
面以旧版本浏览器的视点显示,"Standards mode"(也称为"strict mode")特点是支持业界标准最为完善。然而要利用
这个增强的支持功能,网页必须包含恰当的<!DOCTYPE>指令。
若一个网页没有包含<!DOCTYPE>指令,IE6会将它以quirks mode显示。若网页包含有效的<!DOCTYPE>指令但浏览器
无法辨识,IE6会将它以IE6 standards mode显示。因为少数网站已经包含<!DOCTYPE>指令,兼容性模式的切换相当成
功。
认识文件兼容性模式
IE8支持几种文件兼容性模式,它们具有不同的特性并影响内容显示的方式。
?Emulate IE8 mode指示IE使用<!DOCTYPE>指令来决定如何编译内容。Standards mode指令会显示成IE8 Standards
mode而quirks mode会显示成IE5 mode。不同于IE8 mode,Emulate IE8 mode重视<!DOCTYPE>指令。
?Emulate IE7 mode指示IE使用<!DOCTYPE>指令来决定如何编译内容。Standards mode指令会显示成IE7 Standards
mode而quirks mode会显示成IE5 mode。不同于IE7 mode,Emulate IE7 mode重视<!DOCTYPE>指令。对于许多网页来说
这是最推荐的兼容性模式。
?IE5 mode 编译内容如同IE7的quirks mode之显示状况,和IE5中显示的非常类似。
?IE7 mode编译内容如同IE7的standards mode之显示状况,无论网页是否含有<!DOCTYPE>指令。
Emulate IE7 mode 兼容性之范例。
代码如下 | 复制代码 |
<html> |
其内容随著指定的页面模式而更改,当要模拟IE7时,指定IE=EmulateIE7,指定IE=5, IE=7, 或IE=8来选择其中一种兼
容性模式。你也可以指定IE=edge来指示IE8使用它支持的最高模式。
X-UA-compatible标头没有大小写之分。然而除了title元素及其他的meta元素之外,它必须出现在网页header节其它元
素之前的位置,
其它兼容参考
代码如下 | 复制代码 |
<meta http-equiv="X-UA-Compatible" content="IE=9"> |
IE8 模式支持许多既定行业标准,W3C CSS Level 2.1 规范和
W3C Selectors API,有限支持 W3C CSS Level 3 规范(草案)和其他行业标准
代码如下 | 复制代码 |
<meta http-equiv="X-UA-Compatible" content="IE=8"> |
IE7 模式强制浏览器按照 IE 7 标准模式渲染文档,忽略是否
定义指令
代码如下 | 复制代码 |
<meta http-equiv="X-UA-Compatible" content="IE=7"> |
Emulate IE9 模式告诉 IE 使用指令来决定如果渲染文档。标
准模式下以 IE9 渲染,怪癖模式下以 IE5 渲染。和 IE9 模式不同的是,Emulate IE9 模式会考虑指令
代码如下 | 复制代码 |
<meta http-equiv="X-UA-Compatible" content="IE=EmulateIE9"> |
Emulate IE8 模式告诉 IE 使用指令来决定如果渲
染文档。标准模式下以 IE8 渲染,怪癖模式下以 IE5 渲染。和 IE8 模式不同的是,Emulate IE8 模式会考虑指令
代码如下 | 复制代码 |
<meta http-equiv="X-UA-Compatible" content="IE=EmulateIE8"> |
Emulate IE7 模式告诉 IE 使用指令来决定如果渲
染文档。标准模式下以 IE7 渲染,怪癖模式下以 IE5 渲染。和 IE7 模式不同的是,Emulate IE7 模式会考虑指令。
对于大多数站点而言,这是首选的兼容模式
代码如下 | 复制代码 |
<meta http-equiv="X-UA-Compatible" content="IE=EmulateIE7"> |
IE5 模式告诉 IE7 是否以怪癖模式渲染文档
代码如下 | 复制代码 |
<meta http-equiv="X-UA-Compatible" content="IE=5"> |
Edge
模式告诉 IE 以最高级模式渲染文档,也就是任何 IE 版本都以当前版本所支持的最高级标准模式渲染,避免版本升级
造成的影响。简单的说,就是什么版本 IE 就用什么版本的标准模式渲染
代码如下 | 复制代码 |
<meta http-equiv="X-UA-Compatible" content="IE=edge"> |
使用以下代码强制 IE 使用 Chrome Frame 渲染
代码如下 | 复制代码 |
<meta http-equiv="X-UA-Compatible" content="chrome=1"> |
提示 IE 用户安装 Google Frame
Google 官方提供了对 Google Frame 插件安装情况的检测,这里直接调用方法即可,如果检测到 IE 并未安装 Google
Frame,则弹出对话框提示安装。
代码如下 | 复制代码 |
<script src="http://ajax.googleapis.com/ajax/libs/chrome- frame/1/CFInstall.min.js"></script><script>CFInstall.check();</script> |
最佳的兼容模式方案,结合考虑以上两
种:
代码如下 | 复制代码 |
<meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1"> |
补充:网页制作,设计基础