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

时间:2011-07-21 04:29:43

标签: html5 internet-explorer browser x-ua-compatible

如果一个网页以

开头,有什么区别
<!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版本中以大多数标准模式呈现它。

11 个答案:

答案 0 :(得分:1572)

答案 1 :(得分:57)

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

IE Compatibility View Settings dialog

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

  • 内联网页
  • 外部网页,当计算机管理员选择“在兼容性视图中显示所有网站”作为默认 - 认为大公司,政府,大学
  • 当您无意中结束Microsoft Compatibility View List
  • 用户已将您的网站手动添加到兼容性视图设置
  • 列表中的情况
仅仅{p> DOCTYPE不能这样做;无论DOCTYPE如何,您都将在这些情况下以兼容性视图模式之一结束。

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

此答案基于检查IE8IE9IE10中决定文档模式的完整规则。请注意,查看DOCTYPE是决定文档模式的最后一个回退。

答案 2 :(得分:24)

使用此命令强制IE隐藏地址栏中恼人的浏览器兼容性按钮:

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

答案 3 :(得分:22)

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

除了正确的答案,您确实可以通过验证。由于此元标记仅针对IE,因此您需要做的是添加IE条件。

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

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

答案 4 :(得分:13)

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

enter image description here

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

答案 5 :(得分:11)

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

执行此操作,永不回头( apache 的第一个示例, nginx 的第二个示例)

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

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

答案 6 :(得分:7)

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

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

  1. 这是<head>
  2. 之后的第一个元素
  3. 在元标记之前使用conditional comments,例如: G。在<html>元素
  4. 否则某些IE版本会忽略它。

    <强>更新

    这两条规则已经过简化,但很容易记住和验证。尽管MSDN文档声明您可以在此之前添加标题和其他元标记,但我不建议这样做。

    How make it work with conditional comments.

    Interesting article about the order of elements in the head.(blogs.msdn.com,IE)

    <强>参考

    来自MSDN documentation

      

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

答案 7 :(得分:6)

只需一句话就可以说指示Internet Explorer使用其最新的渲染引擎

{{1}}

答案 8 :(得分:4)

如果您在与IE服务器相同的网络中使用您的网站,那么尽管有DOCTYPE,IE仍然会切换到兼容模式
添加meta http-equiv="X-UA-Compatible" content="IE=Edge" 会停用这种不受欢迎的行为。

答案 9 :(得分:3)

这是LITERALLY 1 google query away,但这里是:

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=edge"
     

注意这在功能上等同于使用HTML5 doctype。它将Internet Explorer置于支持的最高级别   文件模式。 Edge最常用于定期维护   经常测试互操作性的网站   多个浏览器,包括Internet Explorer。

     

注意        从IE11开始,边缘模式被认为是首选的文档模式。 (在早期版本中,它被认为是实验性的。)   要了解更多信息,请参阅不建议使用文档模式。从...开始   Windows Internet Explorer 8,一些Web开发人员使用边缘模式   meta元素隐藏地址栏上的兼容性视图按钮。   从IE11开始,由于删除了按钮,因此不再需要这样做   从地址栏。因为它强制打开所有页面   标准模式,无论您使用的是Internet Explorer的版本   可能很想对使用Internet查看的所有页面使用边缘模式   资源管理器。不要这样做,因为只有X-UA兼容的标题   从Internet Explorer 8开始支持。

     

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

搜索结果中还包括:

答案 10 :(得分:1)

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/en-us/library/ff955275(v=vs.85).aspx

是的,我知道我迟到了,但我刚刚遇到了一些问题和讨论,最后我的老板让我删除X-UA-Compatible标签删除所有我工作过的文件上。

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