今天看到这个标签感到很困惑,按捺不住好奇心去查了下,总结了几篇讲的比较好的文章,写下一些感悟。
百度经验:https://jingyan.baidu.com/article/bea41d43a40910b4c51be60a.html ;
长江之友博客文:https://blog.csdn.net/changjiangbuxi/article/details/26054755
首先我们解释一下这条语句:
http-equiv = "X-UA-Compatible":
这个是针对ie8以上浏览器的一个属性,ie8一下无法识别。就是说ie8以上浏览器遇到这个属性会执行content的描述,大小写不敏感。
ie=edge:
ie浏览器将执行当前支持的最高版本,大小写不敏感,例如:
所有版本都使用ie5的文档模式(ie5/ie6 使用的是quirks mode,译作“怪异模式”)
无论页面是否包含 指令,均使用 Windows Internet Explorer 7 的标准渲染模式
由于本身 X-UA-Compatible 文件头只有IE8 以上版本才能识别,因此等同于冗余代码
以最高级别的可用模式显示内容,ie7支持最高ie7,ie8支持最高ie8,它也支持8以下的,但以最高支持的模式使用,往上类似。
还有一些特殊写法:
如果安装了 Google Chrome Frame (谷歌浏览器內嵌框架)则使用谷歌浏览器内核模式,否则使用最新的IE模式。
针对IE 6,7,8等版本的浏览器插件Google Chrome Frame,可以让用户的浏览器外观依然是IE的菜单和界面,但用户在浏览网页时,实际上使用的是Google Chrome浏览器内核。
如果不指定ie=edge时,当用户浏览器没有chrome内核时,会弹出提示框,提醒用户安装该内核。
首先我们认识一个单词(我不认识……),emulate : 模拟,模仿。
如果不使用emulate,不论是否有!DOCTYPE,都将以标准模式ie8渲染,如果时ie5/ie6的话则不生效,因为无法模拟高版本的模式。
如果你的网页开头带有 标记,则模拟 IE8, 等同于:
如果你的网页开头没有 标记,则模拟 IE6, 等同于:
版本升级提示:
实际上,由于 IE11 以下版本都已经停止更新,绝大部分前端开源项目都已经不再兼容 IE11 以下的旧版IE。往下兼容到 IE8 版本的网站已经寥寥无几,兼容 IE7/IE6 更是近乎绝迹。
但是,即使每天只有稀稀拉拉几个旧版IE用户访问网站,我们也不应该让他看到一屏乱码。面对依然使用旧版IE的用户,我们可以友好地提示其升级浏览器后再访问。
通过以下代码,当用户使用已经停止更新的IE10或旧版IE访问网站将会自动跳转到浏览器升级页:
@cc_on 是 IE10 及更旧版IE特有的条件编译语句,因此可以用来判断是否除 IE11 的其他IE版本 ,
[if ie8]:只有ie8能识别,例如:
;
[if ite ie8]:ie8及其以下,例如:
;
但是ie10及以上版本不再支持if ie判断,所以对于想要更新到ie11的提示判断都可以用 @cc_on。
双核浏览器的兼容:
国产浏览器大多带有 Chromium 内核和 IE 内核,在用户访问网页时双核浏览器根据网页内容自动选择内核。不过,双核浏览器也提供了类似 X-UA-Compatible 特性的 meta 标记,允许网页开发者通过标记选择内核。
一、使用 Chromium 内核(极速模式)
二、使用 IE 8/9/10/10 内核(IE标准模式,部分支持 HTML5)
三、使用 IE 6/7 内核(IE兼容模式,不支持 HTML5)
如果网站采用最新CSS3/HTML5编写,那么,我们应该令其使用 Chromium 内核(也就是 Webkit 内核)渲染。
代码如下:
第一行作用于360浏览器、QQ浏览器等国产双核浏览器,第二行作用于其他双核浏览器。
如果网站在 IE 浏览器效果更好,那么,我们可以要求其使用IE标准内核渲染。
代码如下:
如有错误的地方欢迎指出,共同分享。