我有这个<head>
:
<meta http-equiv="X-UA-Compatible" content="IE=Edge" />
它将强制 IE 使用最新的渲染模式,但兼容模式是否被认为是最后一种?
我的意思是,例如:将此代码与 IE8 一起使用,它会强制它使用 IE8 或 IE8 兼容模式?
我有这个<head>
:
<meta http-equiv="X-UA-Compatible" content="IE=Edge" />
它将强制 IE 使用最新的渲染模式,但兼容模式是否被认为是最后一种?
我的意思是,例如:将此代码与 IE8 一起使用,它会强制它使用 IE8 或 IE8 兼容模式?
该标签将尝试强制浏览器使用浏览器支持的最新呈现模式。它不会触发兼容模式。
请注意,标签必须是头部的第一个标签,否则它将不起作用。如果可能,这一事实有利于使用 HTTP 标头,因为 HTTP 标头中的顺序无关紧要。
如果在您使用标头或元标记时浏览器仍然处于兼容模式,则可能是以下原因之一:
更改浏览器兼容性视图设置
Microsoft 认为至少 192.168.xx 位于“Intranet 站点”上。IE8/IE9 中的 Intranet 站点默认使用兼容模式。这对于许多业务应用程序来说是一个大问题,因为即使使用此元标记,程序员也无法覆盖此选项。(“在兼容性视图中显示 Intranet 站点”不能被元标记或 http 标头覆盖 - 在这种情况下,浏览器完全控制兼容性视图)
总是添加此元标记或 http 标头?
使用此元标记的另一个好处是“兼容性视图”图标已从浏览器的地址栏中删除。至少您的用户无法使用该按钮决定渲染模式。
即使您已取消选中“在兼容性视图中显示 Intranet 站点”选项,并且在响应标头中包含 X-UA-Compatible,您的浏览器仍可能默认为“兼容性视图”的另一个原因 - 您的组策略。查看您的控制台以获取以下消息:
HTML1203:xxx.xxx 已通过组策略配置为在兼容性视图中运行。
其中 xxx.xxx 是您网站的域(即 test.com)。如果您看到这一点,则您的域的组策略已设置,因此任何以 test.com 结尾的站点都将自动以兼容模式呈现,而不管文档类型、标题等如何。
有关详细信息,请参阅以下链接(解释 html 代码): http: //msdn.microsoft.com/en-us/library/ie/hh180764 (v=vs.85).aspx
我不是专家,但通过反复试验:
<meta http-equiv="X-UA-Compatible" content="IE=8, IE=9, IE=edge"/>
为我解决了这个问题。我在网站和 webapps 上使用了它,它阻止了 IE8 进入兼容模式,并在 IE10 和 IE11 中显示为“标准”。
Edge
单独使用关键字有什么意义?我的意思是,如果您希望 IE 使用最新的渲染引擎,那么只需删除整个元标记。
否则,它应该看起来像这样(这将使 IE8 的行为类似于 IE7 和 IE9,并且更新版本将照常工作):
<meta http-equiv="X-UA-Compatible" content="IE=EmulateIE7, IE=Edge" />