兼容性对于网页设计师来说非常重要。虽然最好是建立一个完全不需依赖任何网页浏览器特性或功能的网站,但是有时候这是不可能实现的。而文件兼容模式能将网页限制在某个特定版本的IE中。
可以使用 X-UA-Compatible 标头来指定网页支持的IE版本,可以使用 document.documentMode 来判定网页的兼容性模式。
通过选择支持某个特定版本的IE,你可以确保你的网页在未来的浏览器版本中也能显示一致。
指定网页兼容性模式
要为网页指定兼容模式,需要在网页中使用 meta 元素放入 X-UA-Compatible  http-equiv 标头。以下范例是指定网页为 IE7 兼容模式。

  1. <meta http-equiv="X-UA-Compatible" content="IE=EmulateIE7" >

复制代码

不过前两天给一个网站调试的时候发现他连续加了两个版本的兼容,结果没有任何变化,结果查了下资料原来是IE浏览器只能读第一个兼容的代码后面的都不认!
:IE只会执行网页中第一个 X-UA-Compatible 标头。
可以使用多个属性值来指定网页兼容模式,这能使网页在将来的浏览器版本中保持显示一致。如果需要设置多个兼容模式,使用分号分开各个模式。
如果一个特定版本的 IE 支持的可用兼容模式多于一种,则将采用列于标头属性中最高的可用模式。尽管不推荐这样做,但是可以使用这个特性来排除特定的兼容模式。下面的例子将会排除 IE7 模式。

  1. <meta http-equiv="X-UA-Compatible" content="IE=5; IE=8" >

复制代码

常用兼容标头如下:
各种兼容模式代码范例

  1. <meta http-equiv="X-UA-Compatible" content="IE=5" />

复制代码

像是使用了 Windows Internet Explorer 7 的 Quirks 模式,这与 Windows Internet Explorer 5 显示内容的方式很相似。

  1. <meta http-equiv="X-UA-Compatible" content="IE=7" />

复制代码

无论页面是否包含 <!DOCTYPE> 指令,均使用 Windows Internet Explorer 7 的标准渲染模式。

  1. <meta http-equiv="X-UA-Compatible" content="IE=8" />

复制代码

开启 IE8 的标准渲染模式,但由于本身 X-UA-Compatible 文件头仅支持 IE8 以上版本,因此等同于冗余代码。

  1. <meta http-equiv="X-UA-Compatible" content="edge" />

复制代码

Edge 模式通知 Windows Internet Explorer 以最高级别的可用模式显示内容,这实际上破坏了“锁定”模式。

  1. <meta http-equiv="X-UA-Compatible" content="IE=EmulateIE7" />

复制代码

EmulateIE7 模式通知 Windows Internet Explorer 使用 <!DOCTYPE> 指令确定如何呈现内容。标准模式指令以Windows Internet Explorer 7 标准模式显示,而 Quirks 模式指令以 IE5 模式显示。与 IE7 模式不同,EmulateIE7 模式遵循 <!DOCTYPE> 指令。

IE浏览器的兼容模式代码细节解读的更多相关文章

  1. 强制浏览器使用兼容模式,Web.config,httpProtocol

    对于一些政府类的网站,很多支持IE6~8,而不支持使用更高版本浏览器浏览.虽然有些浏览器会自动使用兼容模式,或有些人会手动调整浏览器的兼容模式,但不是每一个人.每一款浏览器都可以做到用兼容模式.所以, ...

  2. QQ浏览器、搜狗浏览器等兼容模式下,Asp.NetCore下,Cookie、Session失效问题

    原文:QQ浏览器.搜狗浏览器等兼容模式下,Asp.NetCore下,Cookie.Session失效问题 这些狗日的浏览器在兼容模式下,保存Cookie会失败,是因为SameSiteMode默认为La ...

  3. js判断360浏览器 兼容模式IE版本

    var ms_ie = false; var ua = window.navigator.userAgent.toLowerCase(); var old_ie = ua.indexOf('MSIE' ...

  4. vue项目在ie浏览器和360浏览器的兼容模式下不显示,出现promise未定义问题

    出现“promise未定义”问题,因为对es6不兼容 在项目中安装 babel-polyfill 依赖包 ① npm install babel-polyfill --save-dev ② 在main ...

  5. 浏览器的兼容模式下的button中文字垂直方向不居中显示

    <button style="cursor:pointer;vertical-align: middle;" >删除</button> 这时候垂直不居中. ...

  6. QQ浏览器兼容模式问题

    今天客户反馈有个问题,他说用360浏览器的兼容模式无法登陆系统,我试了可以,接着试了IE11,也可以,然后跟经理汇报,他说他用qq浏览器兼容模式就不可以,于是我试了,果然不可以... 问题是酱紫的:输 ...

  7. ASP.NET服务器控件在IE10浏览器(非兼容模式)下报脚本错误的可能解决办法

    关于IE10出现LinkButton点击无效的情况:        一般高配置的系统如Win7旗舰版SP1系统不会出现这种情况,针对家庭普通版和专业版的用户通过测试都有这种情况,对于开发人员要解决不同 ...

  8. 浏览器 CSS 兼容写法的测试总结

    做前端最讨厌的就是 IE6,7,8,虽然被淘汰的浏览器,但是在中国用户仍然很多,不可能像国外网站一样直接就不管它了,这样会流失很多流量啊. 现在有了IE9,IE10还好些,几乎和 Chrome,Fir ...

  9. 在360的兼容模式下关于innerHTML=“”,引发的问题

    innerHTML属性,可以动态设置和修改dom,但是在360的兼容模式下回存在一些问题...... var dBody = document.body; var fatherDom = docume ...

随机推荐

  1. Linux源代码编译安装tree命令

    wget ftp://mama.indstate.edu/linux/tree/tree-1.6.0.tgz .tgz cd tree- make && make install

  2. ion-nav-view的学习 和理解

    当用户在你的app中浏览时,Ionic能够保持检测他们的浏览历史.通过了解他们的浏览历史,向左或向右滑动时可以正确的在视图间转换,或不转换.一个额外的好处是Ionic的导航系统具有可以管理多个历史记录 ...

  3. 运动历史图(MHI)——Motion History Image

    MHI最初是由Bobick 和 Davis提出的,在此之前,Bobick 和 Davis 首先提出了二值的运动能量图(Motion Energy Image,MEI),通过描述物体如何移动和运动在空间 ...

  4. JQuery onload、ready概念介绍及使用方法

    页面加载完成有两种事件,一是ready,表示文档结构已经加载完成,onload,ready概念容易混淆,下面为大家详细介绍下   页面加载完成有两种事件,一是ready,表示文档结构已经加载完成(不包 ...

  5. 推荐一些android开发学习的资料

    网址: 1:http://v.youku.com/v_show/id_XMTgwMTQ1MTgw.html 2:http://mars.apkbus.com/ 3:http://wenku.baidu ...

  6. WindowsServer问题总结

    1.System.Security.SecurityException: 未找到源,但未能搜索某些或全部事件日志.不可访问的日志: Security.在安装的“回滚”阶段发生异常.将忽略该异常并继续回 ...

  7. 字符串p型编码

    总时间限制:  1000ms 内存限制:  65536kB 描述 给定一个完全由数字字符('0','1','2',-,'9')构成的字符串str,请写出str的p型编码串.例如:字符串12234411 ...

  8. Integer相加产生的类型转换问题

    做项目时犯二没有搞清楚优先级的问题从而暴露出一个Integer相加而产生的类型转换的问题 Integer a; Integer b; Integer c; c=  a+b==null?a:b; jav ...

  9. HDU-5785 Interesting(Manacher算法+区间处理)

    题目大意:给一个字符串,求所有相邻两回文子串的外侧下标之积的和 题目分析:另L[i]为所有以 i 为右端点的回文字串的左端点之和,同理,另R[i]表示所有以 i 为左端点的回文子串的右端点之和.显然, ...

  10. rectangle类。java

    import java.util.Scanner; class rectangle{    int l,w;    rectangle(int lon,int wid){    l=lon;    w ...