"X-UA 兼容" 内容="IE=9; IE=8; IE=7; IE=EDGE"
Posted
技术标签:
【中文标题】"X-UA 兼容" 内容="IE=9; IE=8; IE=7; IE=EDGE"【英文标题】:"X-UA-Compatible" content="IE=9; IE=8; IE=7; IE=EDGE" 【发布时间】:2013-01-14 16:44:14 【问题描述】:<meta http-equiv="X-UA-Compatible" content="IE=9; IE=8; IE=7; IE=EDGE" />
这句话究竟是什么意思?
一些示例使用,
来分隔IE 的版本,而一些使用;
;哪个是正确的?
IE=9; IE=8; IE=7; IE=EDGE
的顺序很重要,我想知道。
编辑:我正在使用<!DOCTYPE html>
【问题讨论】:
我认为 IE=9 不适合X-UA-Compatible
谷歌居然推荐它:developers.google.com/web-toolkit/doc/latest/DevGuideIE9
twigstechtips.blogspot.com/2010/03/…
【参考方案1】:
如果您支持 IE,对于 Internet Explorer 8 及更高版本,此:
<meta http-equiv="X-UA-Compatible" content="IE=9; IE=8; IE=7" />
强制浏览器按照特定版本的标准呈现。 IE7及以下不支持。
如果你用分号分隔,它会设置不同版本的兼容性级别。例如:
<meta http-equiv="X-UA-Compatible" content="IE=7; IE=9" />
将 IE7 和 IE8 呈现为 IE7,但将 IE9 呈现为 IE9。它允许不同级别的向后兼容性。但是,在现实生活中,您应该只选择以下选项之一:
<meta http-equiv="X-UA-Compatible" content="IE=8" />
这使得测试和维护变得更加容易。虽然通常更有用的版本是使用 Emulate:
<meta http-equiv="X-UA-Compatible" content="IE=EmulateIE8" />
为此:
<meta http-equiv="X-UA-Compatible" content="IE=Edge" />
它强制浏览器以最新版本的标准进行渲染。
欲了解更多信息,there is plenty to read about on MSDN,
【讨论】:
顺序 IE=9;即=8;即=7; IE=EDGE 有一定的重要性,我想知道 我对此的理解有些许差距。如果我的测试目标是 IE8,但我不想破坏 IE7,你会将这个元标记设置为什么?还有其他浏览器使用这个吗? IE7 不会识别这个,它首先在 IE8 中实现。上面对 IE7 的全部引用是,例如,如果您使用 IE7 作为测试的基础,并且希望所有更现代的 IE 版本都像在 IE7 标准中一样呈现。没有其他浏览器使用这个标签。 IE10 在 IE=8 (YMMV) 下可以很好地呈现旧的 Web 应用程序,但是 IE11 对 IE8 的模拟会中断。此 UA:content="IE=8; IE=11"
在 IE10 中提供浏览器模式 IE10 兼容文档模式 IE8 标准,并在 IE11 中提供文档模式边缘。 IE10 和 IE11 UA 分配的问题之一是微软删除了conditional comments。
基于该元标记,IE11 不会模拟 IE8,它会假定 IE11(如分号分隔列表中给出的那样)。该列表还将解释回退到 IE8 标准,因为 IE10 不知道 IE11 的存在,就像 IE8 无法应用 IE9 标准一样。您是否尝试过简单地使用content="IE=8"
?或者,最好是content="IE=EmulateIE8"
?【参考方案2】:
在某些情况下,可能需要将网页的显示限制为 Internet Explorer 早期版本支持的文档模式。您可以通过使用与 x-ua 兼容的标头提供页面来做到这一点。有关详细信息,请参阅指定旧文档模式。 - https://msdn.microsoft.com/library/cc288325
因此,此标签用于未来证明网页,以便使用 older / compatible 引擎以相同的方式呈现它按照创作者的意图。
确保您已检查它与您指定的 IE 版本一起正常工作。
【讨论】:
以上是关于"X-UA 兼容" 内容="IE=9; IE=8; IE=7; IE=EDGE"的主要内容,如果未能解决你的问题,请参考以下文章
在 SharePoint 2010 中覆盖 X-UA 兼容元
HTML1115:X-UA 兼容 META 标记('IE=9,IE=8,chrome=1')被忽略,因为文档模式已经完成