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


1436

如果一个网页以...开头有什么区别

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

并且如果页面以

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

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

Answers:


1703

2015年10月更新

这个答案是几年前发布的,现在的问题确实应该是X-UA-Compatible是否应该考虑在网站上使用标记?微软对其浏览器所做的更改(更多有关以下内容)。

根据您支持的Microsoft浏览器,您可能不需要继续使用该X-UA-Compatible标记。如果您需要支持IE9或IE8,那么我建议您使用标记。如果您仅支持最新的浏览器(IE11和/或Edge),那么我将考虑完全删除此标签。如果您使用Twitter Bootstrap并需要消除验证警告,则此标记必须以其指定顺序显示。以下附加信息:


X-UA-Compatible元标记允许网页制作者选择什么版本的Internet Explorer的页面是否应该呈现为。IE11对这些模式进行了更改;请参阅下面的IE11注释。替代IE11的浏览器Microsoft EdgeX-UA-Compatible在某些情况下使用meta标签。请参阅下面的Microsoft Edge注释。

根据Microsoft的说法,使用X-UA-Compatible标记时,标记应在文档中尽可能高head

如果您使用的是X-UA兼容的META标签,则希望将其放置在尽可能靠近页面HEAD顶部的位置。Internet Explorer开始使用最新版本解释标记。当Internet Explorer遇到X-UA兼容的META标记时,它将使用指定版本的引擎重新开始。这是性能下降的原因,因为浏览器必须停止并重新开始分析内容。

这是您的选择:

  • “ IE =边缘”
  • “ IE = 11”
  • “ IE = EmulateIE11”
  • “ IE = 10”
  • “ IE =仿真IE10”
  • “ IE = 9”
  • “ IE =仿真IE9
  • “ IE = 8”
  • “ IE = EmulateIE8”
  • “ IE = 7”
  • “ IE =仿真IE7”
  • “ IE = 5”

为了尝试理解每种含义,这里是Microsoft提供的定义:

Internet Explorer支持许多文档兼容模式,这些模式可启用不同的功能并会影响内容的显示方式:

  • 边缘模式告诉Internet Explorer以可用的最高模式显示内容。使用Internet Explorer 9,这等效于IE9模式。如果将来的Internet Explorer版本支持更高的兼容性模式,则设置为边缘模式的页面将以该版本支持的最高模式显示。当使用Internet Explorer 9查看时,这些页面仍将以IE9模式显示。InternetExplorer支持许多文档兼容模式,这些模式可启用不同的功能并可能影响内容的显示方式:

  • IE11模式为已建立和新兴的行业标准(包括HTML5,CSS3等)提供了最高的支持。

  • IE10模式为已建立和新兴的行业标准(包括HTML5,CSS3等)提供了最高的支持。

  • IE9模式为已建立的和新兴的行业标准提供了最高的支持,包括HTML5(工作草案),W3C级联样式表3级规范(工作草案),可缩放矢量图形(SVG)1.0规范等。[编者注:IE 9 支持CSS3动画]。

  • IE8模式支持许多已建立的标准,包括W3C级联样式表2.1规范和W3C选择器API。它还为W3C级联样式表3级规范(工作草案)和其他新兴标准提供了有限的支持。

  • IE7模式呈现的内容就像Internet Explorer 7在标准模式下显示的一样,无论页面是否包含指令。

  • 模拟IE9模式告诉Internet Explorer使用指令来确定如何呈现内容。标准模式指令以IE9模式显示,而怪癖模式指令以IE5模式显示。与IE9模式不同,仿真IE9模式遵循该指令。

  • 仿真IE8模式告诉Internet Explorer使用指令来确定如何呈现内容。标准模式指令以IE8模式显示,而怪癖模式指令以IE5模式显示。与IE8模式不同,仿真IE8模式遵循该指令。

  • 仿真IE7模式告诉Internet Explorer使用指令来确定如何呈现内容。标准模式指令以Internet Explorer 7标准模式显示,而怪癖模式指令以IE5模式显示。与IE7模式不同,仿真IE7模式遵循该指令。对于许多网站,这是首选的兼容模式。

  • IE5模式呈现的内容就像Internet Explorer 7以怪癖模式显示的内容一样,与Microsoft Internet Explorer 5中内容的显示方式非常相似。

IE10注:从IE10开始,怪异模式的行为与早期版本的浏览器不同。在IE9和更早版本中,怪癖模式将网页限制为IE5.5支持的功能。在IE10中,怪癖模式符合HTML5规范中指定的差异。

就个人而言,我总是选择http-equiv="X-UA-Compatible" content="IE=edge"meta标记,因为较早的版本存在很多错误,并且我不希望IE决定进入“兼容模式”并将我的网站显示为IE7 vs IE8或9。我总是更喜欢最新版本的IE浏览器

IE11

来自微软

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

使用HTML5文档类型声明来启用边缘模式:

<!doctype html>

Edge模式是Internet Explorer 8中引入的,并且在每个后续版本中都可用。请注意,边缘模式支持的功能仅限于呈现内容的浏览器特定版本支持的功能。

从IE11开始,不建议使用文档模式,除非临时使用,否则不应再使用。确保更新依赖于旧功能和文档模式的网站以反映现代标准。

如果必须以一种特定的文档模式为目标,以便您的站点在进行改版以支持现代标准和功能时可以正常运行,请注意,您正在使用的是过渡功能,该功能可能在将来的版本中不可用。

如果当前使用兼容x-ua的标头将旧文档模式作为目标,则您的网站可能无法反映IE11的最佳使用体验。

Microsoft Edge(Windows 10随附的Internet Explorer替换)

X-UA-CompatibleIE的“ Edge”版本的元标记信息。来自微软

引入“活着的”边缘文档模式

正如我们在2013年8月宣布的那样,我们将从IE11开始弃用文档模式。通过我们最新的平台更新,对旧文档模式的需求主要限于企业旧版Web应用程序。随着新的体系结构更改,这些旧文档模式将与“活动” Edge模式的更改隔离开来,这将有助于确保依赖那些模式的客户具有更高的兼容性,并帮助我们更快地改进Edge 。IE仍将支持由Intranet网站,“兼容性视图”列表上的网站以及仅与企业模式一起使用的网站提供的文档模式。

公共Internet网站将使用新的Edge模式平台呈现(忽略X-UA-Compatible)。我们的目标是,Edge从现在开始就是“活动”文档模式,以后将不再介绍其他文档模式。

大多数情况下,由于Microsoft Edge的更改不再支持文档模式,因此Microsoft提供了一种工具来扫描您的站点以检查其是否具有与Edge不兼容的代码。

Chrome = 1 IE的信息

还有chrome=1,你可以使用或与像上述选项一起使用:<meta http-equiv="X-UA-Compatible" content="IE=Edge,chrome=1">chrome=1适用于Google的Chrome框架,其定义为:

Google Chrome浏览器内嵌框架是一个开源浏览器插件。安装了该插件的用户在浏览器中打开页面时,可以访问Google Chrome的开放式网络技术和快速的JavaScript引擎。

Google Chrome浏览器内嵌框架无缝增强了您在Internet Explorer中的浏览体验。它使用Google Chrome的渲染技术显示启用了Google Chrome Frame的网站,使您可以访问最新的HTML5功能以及Google Chrome的性能和安全性功能,而不会以任何方式中断您正常的浏览器使用。

安装Google Chrome浏览器内嵌框架后,您无需考虑网络情况就会变得更好。

但是,要使该插件正常工作,您必须chrome=1X-UA-Compatiblemeta标签中使用。

有关Chrome框架的更多信息,请参见此处

注意: Google Chrome浏览器内嵌框架仅适用于IE6到IE9,并且已于2014年2月25日停用。有关更多信息,请点击此处。感谢@mck提供的链接。

验证:

HTML5

仅当使用时,页面才会使用W3验证程序进行验证<meta http-equiv="X-UA-Compatible" content="IE=Edge">。对于其他值,它将引发错误:A meta element with an http-equiv attribute whose value is X-UA-Compatible must have a content attribute with the value IE=edge.换句话说,如果您IE=edge,chrome=1将无法验证。我完全忽略了此错误,因为现代浏览器只是忽略了这一行代码。

如果必须具有完全有效的代码,请考虑通过设置HTTP标头在服务器级别执行此操作。作为注释,Microsoft说,If both of these instructions are sent (meta and HTTP), the developer's preference (meta element) takes precedence over the web server setting (HTTP header). 有关如何设置HTTP标头的更多详细信息,请参见olibre的答案bitinn的答案

XHTML

<meta http-equiv="X-UA-Compatible" content="IE=Edge" />只要正确关闭标签(即/>vs >),使用时的验证就不会有问题。

Twitter的引导

这个标签已经被强烈地引导团队至少自2014推荐,并Bootlint的棉短绒撰写的团队继续扔了拼焊板警告省略标记时。短绒棉纸区分警告和错误,因此忽略此标签的严重性可能被认为是次要的。


有关更多信息,X-UA-Compatible请参见Microsoft的网站定义文档兼容性

有关IE支持的更多信息,请参见caniuse.com

有关Twitter Bootstrap要求的更多信息,请参见bootlint项目Wiki页面


39
如果标头中没有“ X-UA兼容”,那会发生什么?
Morgan Cheng

44
基本上发生的是,当您具有X-UA兼容功能时,它会告诉IE如何根据您设置的值(IE = edge等)进行操作,如果不存在,则IE会向网站展示其认为最佳的显示方式。那可能是兼容模式,也可能是IE的最新版本。Microsoft / IE认为的最佳方法。合理?
L84

2
@TravisJ-据我了解,可用的最高模式基本上意味着IE 8最多可以支持IE8模式,IE9可以支持IE9模式等等。我为Microsoft提供的每种模式添加了一些定义。
2012年

10
@AdrienBe-我完全同意!到目前为止,IE 10对我来说一直是最好的,但我鄙视任何其他版本。有一次,我进行了页面设置,在200-300行HTML和大约20分钟的编码中产生了一些效果。要使IE正常工作,我必须再添加1000行代码(主要是第三方JavaScript)和2-3个小时的工作时间!我真的很讨厌IE =>
L84

9
Google Chrome浏览器内嵌框架将于2014年1月停用
mck 2013年

339

使用content="IE=edge,chrome=1"   跳过其他X-UA-Compatible模式

<meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">
                                   -------------------------- 
  • 没有兼容性图标
    IE9地址栏没有显示“ 兼容性视图”按钮
    ,并且页面上也没有显示混杂的菜单,图像和文本框。

  • 功能需要
    此元标记才能javascript::JSON.parse()在IE8 上启用
    (即使<!DOCTYPE html>存在)

  • 正确性
    现代HTML / CSS / JavaScript的渲染/执行更为有效(更精细)。

  • 性能
    三叉戟渲染引擎应该运行在它的速度更快边缘模式。


用法

在您的HTML中

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

或更好地配置您的Web服务器:(
另请参见RiaD的答案

  • Apache的提议 pixeline

    <IfModule mod_setenvif.c>
      <IfModule mod_headers.c>
        BrowserMatch MSIE ie
        Header set X-UA-Compatible "IE=Edge,chrome=1" env=ie
      </IfModule>
    </IfModule>
    <IfModule mod_headers.c>
      Header append Vary User-Agent
    </IfModule>
  • Steve Pause提出的 Nginx

    server {
      #...
      add_header X-UA-Compatible "IE=Edge,chrome=1";
    }
  • Lucas Riutzel提出的清漆代理

    sub vcl_deliver {
      if( resp.http.Content-Type ~ "text/html" ) {
        set resp.http.X-UA-Compatible = "IE=edge,chrome=1";
      }
    }
  • IIS(从v7开始)

    <configuration>
      <system.webServer>
         <httpProtocol>
            <customHeaders>
               <add name="X-UA-Compatible" value="IE=edge,chrome=1" />
            </customHeaders>
         </httpProtocol>
      </system.webServer>
    </configuration>

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

正如Lynda所注意到的(请参阅注释),IE11中兼容性更改建议使用Edge模式

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

但是微软的立场尚不清楚。另一个MSDN页面不建议使用Edge模式

由于边缘模式会强制以标准模式打开所有页面,而不管Internet Explorer的版本如何,您可能会想将其用于所有使用Internet Explorer查看的页面。不要这样做,因为X-UA-Compatible仅从Windows Internet Explorer 8开始才支持标头。

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

如果您希望所有受支持的Internet Explorer版本以标准模式打开页面,请使用HTML5文档类型声明[...]

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

Clara Onager甚至在旧版本的“ 指定遗留文档模式”中已经注意到:

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

令人困惑的是,Usman Y认为Clara Onager在谈论:

该示例仅出于说明目的;不要在生产环境中使用它。

<meta http-equiv="X-UA-Compatible" content="IE=7,9,10" >

好吧...在此答案的其余部分中,我将给出更多解释,说明为什么使用content="IE=edge,chrome=1"在生产中是一种好的做法。


历史

多年来(2000年至2008年),IE市场份额超过80%。而IE V6被视为事实上的(在80%至97%的市场份额标准的20032004年,2005年和2006年的IE6只,所有IE版本更多的市场份额)。

由于IE6不遵守Web标准,因此开发人员必须使用IE6测试他们的网站。这种情况对Microsoft(MS)而言非常好,因为Web开发人员必须购买 MS产品(例如,如果不购买Windows,就无法使用IE),并且保持不遵从状态会带来更多的利润(即Microsoft希望成为除其他产品之外标准)公司)。

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

但是,此时,Mozilla着眼于所有Web标准,开始了Firefox的开发(其他浏览器实现了IE6渲染页面的实现)。随着越来越多的Web开发人员希望使用新的Web标准功能,Firefox比IE支持的网站越来越多。

当IE市场份额下降时,MS意识到保持标准不兼容不是一个好主意。因此,MS开始按照越来越多的Web标准发布新的IE版本(IE8 / IE9 / IE10)。


与网络不兼容的问题

但是问题是所有针对IE6设计的网站:Microsoft无法发布与这些旧的IE6设计的网站不兼容的新IE版本。MS并未推断出已经设计了IE版本的网站,而是要求开发人员X-UA-Compatible在其页面中添加额外的数据()。

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(现在不再是IE6MS活动),所以如今您可以避免浪费时间进行IE测试!

个人IE6经验

在2009年至2012年间,我曾在一家使用IE6(允许使用单一官方浏览器)的公司工作。我只需要为IE6实现一个Intranet网站。我决定尊重网络标准,但使用支持IE6的子集(HTML / CSS / JS)。

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


2
边缘模式仅用于测试目的;不要在生产环境中使用它。” 参见msdn.microsoft.com/en-us/library/jj676915(v=vs.85).aspx
Carl Onager 2013年

5
@ClaraOnager请花一些时间来解释我的答案有什么问题(从您的角度来看)。即使MS不建议在生产环境中使用Edge模式,也有充分的理由在生产环境中使用它。从技术上阐明我们的最佳做法很重要。我喜欢分享我的知识和经验。我也希望你 我们可以一起进步;)干杯
olibre 13-4-23

2
嗨@里卡多,我同意你的看法。Microsoft 在理解旧文档模式(请参阅技巧)部分中说:“如果希望所有受支持的Internet Explorer版本以标准模式打开页面,请使用HTML5 [...]”。也许我的解释不清楚...也许我误解了某些内容...我更改了文字...您如何看待我的更改?你可以吗 您对我的答案有何建议以改变/改善?感谢您的反馈意见。干杯;-)
olibre

5
@ClaraOnager ...在您的第一个答案中,您在参考页面中的指向是错误的。MS说不要在生产环境中使用:<meta http-equiv =“ X-UA-Compatible” content =“ IE = 7, 9,10“>不是Edge的其他东西。
Usman Younas 2013年

3
关于生产环境中使用的Edge Mode。来自微软:Starting with IE11, edge mode is the preferred document mode; it represents the highest support for modern standards available to the browser.
L84

58

不同之处在于,如果仅指定DOCTYPE,则IE的“ 兼容性视图设置”优先。默认情况下,这些设置将强制所有Intranet网站进入“兼容性视图” DOCTYPE。还有一个复选框可用于所有网站的兼容性视图,而不管DOCTYPE

IE兼容性视图设置对话框

X-UA-Compatible会覆盖“兼容性视图设置”,因此无论浏览器设置如何,页面都将以标准模式呈现。这将强制执行以下标准模式:

  • 内部网页
  • 当计算机管理员选择“在兼容性视图中显示所有网站”作为默认设置时的外部网页-想想大公司,政府,大学
  • 当您无意中遇到了 Microsoft兼容性视图列表中时
  • 用户将您的网站手动添加到“兼容性视图设置”中的列表的情况

DOCTYPE一个人做不到。在这种情况下,无论哪种情况,您都将进入一种“兼容性视图”模式DOCTYPE

如果同时meta指定了标记和HTTP标头,则meta标记以优先级为准。

该答案基于检查IE8IE9IE10中确定文档模式的完整规则。请注意,查看DOCTYPE是确定文档模式的最后一个后备方法。


1
在Intranet方案中,默认情况下IE10以兼容模式呈现。参见stackoverflow.com/questions/13284083/…。对于Internet,默认情况下不需要此标记,但在使用myintenralserver / myapp时,则必需(默认)。我想添加此评论,因为仅从屏幕截图中的文本(而不是页面上任何答案的文本)中可以清楚看出Internet与Intranet的区别。
yzorg

您是对的,我应该对此更加清楚。我改写了这个帖子;让我知道我还有什么要解决的。谢谢!
andrewdotn

谢谢!这个答案比有关Intranet网站的其他答案要清晰得多。其他答案则涉及有关为何原因和方式的技术细节。我讨厌MS IE。也很不错:一段文字清楚地说明了为什么我们需要meta标签。Bravo
Aniket Inge

3
我希望我能对此答案投票一百次。救生屏幕就在那儿。当我键入此命令时,血压会降低...
EvilDr '17

太棒了太棒了!非常感谢您的回答。
Seanosapien

25

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

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

1
边缘模式仅用于测试目的;不要在生产环境中使用它。” 参见msdn.microsoft.com/en-us/library/jj676915(v=vs.85).aspx
Carl Onager 2013年

4
为了<meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">配合使用,我使用了该chrome=1指令,以便它提示IE6、7、8用户安装/使用Chrome Frame。甚至HTML5 Boilerplate也使用它。
里卡多·

10
@ClaraOnager尽管Microsoft这么说,但这并不一定意味着他们是对的。<meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">自从问世以来,我就一直使用它,没有任何问题。实际上,通过使用户的IE使用其最新引擎来渲染我们构建的页面,我已经为我的团队和我自己避免了数百个头痛。与您和Microsoft相反,我建议大家每次都使用上述meta标签。只要IE仍然存在,我们都会被“强制”使用此meta标签:p
Ricardo Zea 2013年

IE11对此进行了更改。此版本已遵循官方标准在浏览器领域取得了重大进展。它甚至没有将自己标识为Internet Explorer到了极点!现在它说它是“ Netscape”,并且没有在浏览器信息中包含任何内容以泄露其真实身份。如果从此版本开始,在IE浏览器中仍然遇到任何问题,则需要通过设置将其强制进入IE10 <meta http-equiv="X-UA-Compatible" content="IE=10">。然后,它将自己报告为Microsoft Internet Explorer。
敬畏

面临同样相关的问题,如果任何人能帮助我了:stackoverflow.com/questions/22013880/...
DSI

25

由于我无法在已标记的答案中添加评论,因此将其发布在此处。

除了正确答案之外,您实际上还可以对此进行验证。由于此元标记仅针对IE,因此您需要做的就是添加IE条件代码。

<!--[if IE]>
    <meta http-equiv="X-UA-Compatible" content="IE=Edge,chrome=1">
<![endif]-->

这样做就像添加任何其他IE条件语句一样,并且仅适用于IE,并且不会影响其他浏览器。


4
条件注释不能用于将<= IE9的HTML作为目标。(即使写了这个答案也是如此)
EKW

18

我认为Microsoft的这张图说明了一切。为了告诉IE如何呈现内容,!DOCTYPE必须与X-UA-Compatible元标记一起使用。!DOCTYPE本身对更改IE文档模式没有影响。

在此处输入图片说明

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


3
这是包含IE9的更新版本。OMG ...... ie.microsoft.com/testdrive/ieblog/2010/Jun/...
旋毛虫

3
而其中包括IE10: msdn.microsoft.com/zh-cn/library/ff406036%28v=vs.85%29.aspx 不同的章节有各自独立的流程图...
Spiralis 2012年

您误解了该流程图。在缺少X-UA兼容的情况下,浏览器将查找<!DOCTYPE>。如果找到一个,它将以标准模式(也称为“ EmulateIE8”)渲染。如果不是,它将恢复为“ Quirks Mode”。
Chuck Le Butt 2014年

感谢您将图片上传到Stackoverflow。与Microsoft的原始链接已全部消失。
Elmue

12

仅出于完整性考虑,您实际上不必将其添加到HTML(HTML5中未知的http-equiv)

这样做,永远不要回头(第一个示例是apache,第二个示例是nginx

Header set X-UA-Compatible "IE=Edge,chrome=1"

add_header X-UA-Compatible "IE=Edge,chrome=1";

2
@HueiTan-我认为发布者说的是,当您尝试使用W3验证器验证页面时,将引发错误:Bad value X-UA-Compatible for attribute http-equiv on element meta.-这并不意味着它将无法正常工作。这只是无效的代码。
L84 2014年


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

要使此行按预期工作,请确保:

  1. 这是紧随其后的第一个元素 <head>
  2. 在meta标记之前(例如在元素上)不使用任何条件注释<html>

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

更新

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

如何使其与条件注释一起使用。

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

参考

MSDN文档中

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


5

如果您在与服务器相同的网络中使用网站,则尽管DOCTYPE,IE仍希望切换到兼容模式
添加meta http-equiv="X-UA-Compatible" content="IE=Edge" 会禁用此不必要的行为。


Intranet是“与服务器相同的网络”的另一个词...因此,对于所有Intranet站点,默认情况下,基本上IE10均已损坏。请参阅@AndrewNeitsch答案中的屏幕截图。
yzorg

3

这实际上是1个Google查询,但是这里是:

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

了解旧文档模式

使用以下值从Internet Explorer 6到IE11以边缘模式显示网页,这是Internet Explorer支持的最高标准模式。

<meta http-equiv="x-ua-compatible" content="IE=edge"

请注意,这在功能上等同于使用HTML5文档类型。它将Internet Explorer置于受支持最高的文档模式。Edge最适合定期维护的网站,这些网站经过例行测试,可以在多个浏览器(包括Internet Explorer)之间进行互操作。

注意 从IE11开始,边缘模式被认为是首选的文档模式。(在早期版本中,它被认为是实验性的。)要了解更多信息,请参阅不建议使用文档模式。从Windows Internet Explorer 8开始,一些Web开发人员使用边缘模式元元素来隐藏地址栏上的“兼容性视图”按钮。从IE11开始,不再需要此按钮,因为该按钮已从地址栏中删除。因为它强制所有页面以标准模式打开,而不管Internet Explorer的版本如何,所以您可能会想对使用Internet Explorer查看的所有页面使用边缘模式。不要这样做,因为仅从Internet Explorer 8开始才支持X-UA-Compatible标头。

提示 如果希望所有受支持的Internet Explorer版本以标准模式打开页面,请使用HTML5文档类型声明,如前面的示例所示。

搜索结果中还有:


2

2.1.3.5 X-UA兼容性元标记和HTTP响应标头

在任何版本的Microsoft Edge中都不会实现此功能。

<meta http-equiv="X-UA-Compatible" content="IE=9; IE=8; IE=7; IE=EDGE" />

参见https://msdn.microsoft.com/zh-cn/library/ff955275(v=vs.85).aspx

是的,我知道我参加晚会很晚,但是我遇到了一些问题和讨论,最后我的老板让我X-UA-Compatible从正在处理的所有文档中删除了标签remove。

如果此信息已过期或不再相关,请纠正我。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.