如果一个网页以

<!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版本中以最标准的模式呈现。


当前回答

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

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

intranet页面当计算机管理员选择“在兼容性视图中显示所有网站”作为默认设置时,请考虑大公司、政府、大学当您无意中出现在Microsoft兼容性视图列表中时用户手动将您的网站添加到“兼容性视图设置”列表中的情况

仅DOCTYPE无法做到这一点;在这些情况下,无论DOCTYPE如何,您都将进入“兼容性视图”模式之一。

如果同时指定了元标记和HTTP标头,则元标记优先。

这个答案是基于检查IE8、IE9和IE10中决定文档模式的完整规则。注意,查看DOCTYPE是决定文档模式的最后一步。

其他回答

为了完整起见,您实际上不必将其添加到HTML中(这在HTML5中是未知的http equiv)

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

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

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

2021 11月更新

因为这个答案已经有10多年的历史了,所以我的建议是完全不使用这个标签,除非您必须支持旧的旧浏览器。

2015年10月更新

这个答案是几年前发布的,现在的问题真的应该是,你是否应该考虑在你的网站上使用X-UA-兼容标签?随着微软对其浏览器所做的改变(下面将详细介绍)。

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


X-UA-Compatible元标记允许web作者选择页面应呈现为哪个版本的Internet Explorer。IE11对这些模式进行了更改;参见下面的IE11注释。取代IE11的浏览器Microsoft Edge仅在某些情况下支持X-UA-兼容的元标签。请参阅下面的Microsoft Edge说明。

根据微软的说法,当使用X-UA-Compatible标签时,它应该尽可能高地放在文档头上:

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

以下是您的选择:

“IE=边缘”“即=11”“IE=模拟IE11”“即=10”“IE=模拟IE10”“即=9”“IE=模拟IE9“即=8”“IE=模拟IE8”“即=7”“IE=模拟IE7”“即=5”

为了试图理解每一个词的含义,以下是Microsoft提供的定义:

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

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

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以标准模式显示的内容,无论页面是否包含<!DOCTYPE>指令。

仿真IE9模式告诉Internet Explorer使用<!DOCTYPE>指令,用于确定如何呈现内容。标准模式指令以IE9模式显示,怪癖模式指令以IE 5模式显示。与IE9模式不同,Emulate IE9模式尊重<!DOCTYPE>指令。

仿真IE8模式告诉Internet Explorer使用<!DOCTYPE>指令,用于确定如何呈现内容。标准模式指令以IE8模式显示,怪癖模式指令以IE 5模式显示。与IE8模式不同,Emulate IE8模式尊重<!DOCTYPE>指令。

仿真IE7模式告诉Internet Explorer使用<!DOCTYPE>指令,用于确定如何呈现内容。标准模式指令以Internet Explorer 7标准模式显示,怪癖模式指令以IE5模式显示。与IE7模式不同,Emulate IE7模式尊重<!DOCTYPE>指令。对于许多网站,这是首选的兼容性模式。

IE5模式将内容呈现为Internet Explorer 7以怪癖模式显示的内容,这与Microsoft Internet Explorer 5中显示内容的方式非常相似。

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

就我个人而言,我总是选择http equiv=“X-UA-Compatible”content=“IE=edge”元标签,因为旧版本有很多bug,我不希望IE决定进入“兼容性模式”,并将我的网站显示为IE7与IE8或9。我总是喜欢IE的最新版本。

IE11

来自Microsoft:

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

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

<!doctype html>

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

从IE11开始,文档模式已被弃用,不应再使用,除非是临时使用。确保更新依赖传统功能和文档模式的网站,以反映现代标准。

如果您必须以特定的文档模式为目标,以便在修改网站以支持现代标准和功能的同时使其正常工作,请注意您使用的是过渡功能,该功能可能在未来版本中不可用。

如果您当前使用与x-ua兼容的标头来针对传统文档模式,则您的网站可能无法反映IE11提供的最佳体验。

Microsoft Edge(Windows 10附带的Internet Explorer的替代品)

有关IE“Edge”版本X-UA-兼容元标签的信息。来自Microsoft:

引入“实时”Edge文档模式

正如我们在2013年8月宣布的那样,我们正在弃用IE11的文档模式。随着我们最新的平台更新,对传统文档模式的需求主要限于企业传统web应用程序。随着新的体系结构更改,这些传统文档模式将与“实时”Edge模式的更改隔离开来,这将有助于确保依赖这些模式的客户获得更高级别的兼容性,并帮助我们更快地改进Edge。IE仍然支持intranet站点、兼容性视图列表中的站点以及仅与企业模式一起使用时提供的文档模式。

公共互联网站点将使用新的Edge模式平台呈现(忽略X-UA-兼容)。我们的目标是Edge从现在起就是“活的”文档模式,今后将不再引入其他文档模式。

随着Microsoft Edge的更改,在大多数情况下不再支持文档模式,Microsoft有一个工具可以扫描您的网站,以检查它是否包含与Edge不兼容的代码。

Chrome=1 IE信息

还有chrome=1,您可以与上述选项之一一起使用,例如:<meta-http-equiv=“X-UA-Compatible”content=“IE=Edge,chrome=1”>。chrome=1表示谷歌的chrome框架,其定义如下:

谷歌Chrome框架是一个开源浏览器插件。安装了该插件的用户在浏览器中打开页面时,可以使用Google Chrome的开放web技术和快速的JavaScript引擎。

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

当安装了谷歌Chrome框架后,网络就变得更好了,而你不必考虑它。

但要使该插件工作,必须在X-UA-Compatible元标记中使用chrome=1。

有关Chrome框架的更多信息,请点击此处。

注意:谷歌Chrome框架仅适用于IE6至IE9,于2014年2月25日退役。更多信息可在此处找到。感谢@mck的链接。

验证:

HTML5:

仅当使用<meta-http equiv=“X-UA-Compatible”content=“IE=Edge”>时,页面才会使用W3验证器进行验证。对于其他值,它将抛出错误:具有http-equiv属性且值为X-UA-Compatible的元元素必须具有值为IE=edge的内容属性。换句话说,如果IE=edge,chrome=1,它将不会生效。我完全忽略了这个错误,因为现代浏览器只是忽略了这行代码。

如果您必须拥有完全有效的代码,那么可以考虑在服务器级别通过设置HTTP头来执行此操作。微软表示,需要注意的是,如果这两个指令都被发送(元和HTTP),那么开发者的偏好(元元素)优先于web服务器设置(HTTP头)。有关如何设置HTTP头的详细信息,请参阅olibre的答案或bitinn的答案。

XHTML语言

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

Twitter引导(V3及以下版本)

至少从2014年起,Bootstrap团队就强烈建议使用该标签,而twbs团队撰写的linter Bootlint继续在忽略该标签时发出警告。linter区分警告和错误,因此省略此标记的严重性可能被认为是次要的。


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

有关IE支持的更多信息,请访问caniuse.com。

有关Twitter Bootstrap要求的更多信息,请参阅bootlint项目wiki页面。

只需一句话,即可指导Internet Explorer使用其最新的渲染引擎

<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部分)在除标题元素和其他元元素之外的所有其他元素之前。