如果一个网页以

<!DOCTYPE html> 
<html> 
  <head> 
    <meta http-equiv="X-UA-Compatible" content="IE=edge"> 

如果页面以开头

<!DOCTYPE html> 
<html> 
  <head> 
     <!-- without X-UA-Compatible meta -->

如果没有区别,我想我可以忽略X-UA-兼容的元头,因为我只希望它在所有IE版本中以最标准的模式呈现。


当前回答

使用content=“IE=边缘,铬=1”  跳过其他X-UA-兼容模式

<meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">
                                   -------------------------- 

无兼容性图标IE9地址栏不会显示“兼容性视图”按钮,页面也不会显示杂乱的菜单、图像和文本框。功能需要此元标记才能在IE8上启用javascript::JSON.parse()(即使存在<!DOCTYPE html>)现代HTML/CSS/JavaScript的正确呈现/执行更有效(更好)。性能Trident渲染引擎在其边缘模式下应该运行得更快。


用法

在HTML中

<!DOCTYPE html> 
<html> 
  <head>
    <meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">

IE=边缘表示IE应使用其渲染引擎的最新(边缘)版本chrome=1表示IE应使用chrome渲染引擎(如果已安装)

或者在web服务器的配置中更好:(另见RiaD的回答)

pixeline提出的Apache<IfModule mod_setenvif.c><IfModule mod_headers.c>浏览器匹配MSIE ie标题集X-UA-兼容“IE=边缘,铬=1”env=IE</IfModule></IfModule><IfModule mod_headers.c>标头附加Vary用户代理</IfModule>Stef Pause提议的Nginx服务器{#...add_header X-UA-兼容“IE=边缘,铬=1”;}Lucas Riutzel提议的清漆代理子vcl交付{如果(resp.http.Content-Type~“text/html”){set resp.http.X-UA-Compatible=“IE=边缘,铬=1”;}}IIS(自v7起)<配置><system.webServer><http协议><customHeaders><add name=“X-UA-Compatible”value=“IE=边缘,铬=1”/></customHeaders></httpProtocol></system.webServer></配置>


自IE11以来,Microsoft建议使用边缘模式

Lynda注意到(见评论),IE11中的兼容性更改建议使用边缘模式:

从IE11开始,边缘模式是首选的文档模式;它代表了对浏览器可用的现代标准的最高支持。

但微软的立场并不明确。另一个MSDN页面不推荐边缘模式:

因为边缘模式强制所有页面以标准模式打开,无论Internet Explorer的版本如何,您可能会对使用Internet Explorer查看的所有页面使用此选项。不要这样做,因为X-UA-Compatible标头仅支持启动使用Windows Internet Explorer 8。

相反,Microsoft建议使用<!DOCTYPE html>:

如果要打开所有受支持的Internet Explorer版本您的页面处于标准模式,请使用HTML5文档类型声明〔…〕

正如里卡多(在下面的评论中)解释的那样,任何DOCTYPE(HTML4、XHTML1…)都可以用于触发标准模式,而不仅仅是HTML5的DOCTYPE。重要的是页面中始终有一个DOCTYPE。

Clara Onager甚至在旧版本的指定传统文档模式中注意到:

边缘模式仅用于测试目的;不要在生产环境中使用它。

令人困惑的是,乌斯曼·Y认为克拉拉·奥纳格尔所说的是:

[…]示例仅用于说明目的;不要在生产环境中使用它。<meta http equiv=“X-UA-Compatible”content=“IE=7,9,10”>

好在这个答案的其余部分,我给出了更多的解释,为什么使用content=“IE=edge,chrome=1”是一个很好的生产实践。


历史

多年来(2000年至2008年),IE市场份额超过80%。IE v6被视为事实上的标准(仅IE6在2003年、2004年、2005年和2006年的市场份额为80%至97%,所有IE版本的市场份额都更大)。

由于IE6不遵守Web标准,开发人员不得不使用IE6测试他们的网站。这种情况对微软(MS)来说很好,因为网络开发人员必须购买MS产品(例如,如果不购买Windows,就不能使用IE),而保持不合规则更有利可图(即,微软希望成为排除其他公司的标准)。

因此,许多网站仅符合IE6,并且由于IE不符合web标准,所有这些网站都没有在符合标准的浏览器上很好地呈现。更糟糕的是,许多网站只需要IE。

然而,在这个时候,Mozilla开始了Firefox开发,尽可能遵守所有的网络标准(其他浏览器被实现为呈现IE6所做的页面)。随着越来越多的web开发人员希望使用新的web标准功能,Firefox比IE更支持越来越多的网站。

当IE市场份额减少时,MS意识到保持标准不兼容不是一个好主意。因此,微软开始发布新的IE版本(IE8/IE9/IE10),并越来越多地遵守网络标准。


web不兼容问题

但问题是所有为IE6设计的网站:微软不能发布与这些旧的IE6设计网站不兼容的新IE版本。微软要求开发者在网页中添加额外的数据(X-UA-兼容),而不是推导网站设计的IE版本。

IE6仍在2016年使用

如今,IE6仍在使用(2016年为0.7%)(2014年1月为4.5%),一些互联网网站仍仅符合IE6标准。一些intranet网站/应用程序使用IE6进行测试。一些intranet网站仅在IE6上100%可用。这些公司/部门倾向于推迟迁移成本:其他优先事项,没有人再知道网站/应用程序是如何实现的,旧网站/应用的所有者破产了。。。

2013年IE6的使用量中,中国占50%,但随着中国Linux发行版的播出,未来几年可能会发生变化。

对你的网络技能充满信心

如果你(试图)尊重网络标准,你可以只使用http-equiv=“X-UA-Compatible”content=“IE=edge,chrome=1”。要保持与旧浏览器的兼容性,只需避免使用最新的web功能:使用您希望支持的最旧浏览器支持的子集。或者,如果你想更进一步,你可以采用优雅降级、渐进增强和无阻碍JavaScript等概念。(你可能也很乐意阅读web开发人员应该考虑什么?)

不要在意最好的IE版本渲染:这不是你的工作,因为浏览器必须符合web标准。如果您的网站符合标准并使用适度最新的功能,那么浏览器必须符合您的网站。

此外,由于有许多活动要杀死IE6(IE6不再是,MS活动),现在您可以避免浪费时间进行IE测试!

个人IE6经验

2009-2012年,我在一家使用IE6作为官方单一浏览器的公司工作。我只能为IE6实现一个内部网网站。我决定尊重web标准,但使用IE6功能子集(HTML/CSS/JS)。

这很难,但当公司改用IE8时,网站仍然呈现良好,因为我使用了Firefox和firebug来检查网络标准兼容性;)

其他回答

我认为这张来自微软的图表解释了一切。为了告诉IE如何呈现内容!DOCTYPE必须与X-UA-兼容的元标记一起使用!DOCTYPE本身对更改IE文档模式没有影响。

http://ie.microsoft.com/testdrive/ieblog/2010/Mar/02_HowIE8DeterminesDocumentMode_3.png

如果你在与服务器相同的网络中使用你的网站,IE喜欢切换到兼容模式,尽管DOCTYPE。添加meta-http equiv=“X-UA-Compatible”content=“IE=Edge”将禁用此不需要的行为。

这是LITERALLY 1谷歌查询,但这里是:

http://msdn.microsoft.com/en-us/library/jj676915(v=vs.85).aspx

了解传统文档模式使用以下值以边缘模式显示网页,即Internet Explorer支持的最高标准模式,来自Internet Explorer 6至IE11。<meta http equiv=“x-ua-compatible”content=“IE=边缘”注意,这在功能上等同于使用HTML5 doctype。它将Internet Explorer置于最高支持级别文档模式。Edge most对于定期维护最有用定期测试互操作性的网站多种浏览器,包括Internet Explorer。笔记从IE11开始,边缘模式被认为是首选的文档模式。(在早期版本中,它被认为是实验性的。)要了解更多信息,请参阅文档模式已弃用。从开始Windows Internet Explorer 8,一些web开发人员使用边缘模式meta元素以隐藏地址栏上的“兼容性视图”按钮。从IE11开始,这不再是必要的,因为按钮已被移除从地址栏中选择。因为它强制打开所有页面标准模式,无论Internet Explorer的版本如何可能会尝试对通过Internet查看的所有页面使用边缘模式探索者不要这样做,因为X-UA-Compatible标头仅支持从Internet Explorer 8开始。提示如果您希望所有受支持的Internet Explorer版本都以标准模式打开页面,请使用HTML5文档类型声明,如前面的示例所示。

搜索结果还包括:

<meta http-equiv=“X-UA-Compatible”content=“IE=edge”>做什么?

<meta http-equiv="X-UA-Compatible" content="IE=Edge">

要使这条线按预期工作,请确保:

它是<head>之后的第一个元素在元标记之前不使用条件注释,例如在<html>元素上

否则,某些IE版本会忽略它。

更新

这两条规则被简化了,但它们很容易记住和验证。尽管MSDN文档指出您可以将标题和其他元标记放在这个之前,但我不建议这样做。

如何使用条件注释。

关于头部元素顺序的有趣文章。(blogs.msdn.com,用于IE)

参考

从MSDN文档中:

X-UA-Compatible[…]必须出现在网页的标题中(HEAD部分)在除标题元素和其他元元素之外的所有其他元素之前。

使用此选项可强制IE在地址栏中隐藏烦人的浏览器兼容性按钮:

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