X-UA兼容有什么意义?

时间:2011-09-04 18:35:54

标签: html x-ua-compatible

我完全不理解 <meta http-equiv="X-UA-Compatible" content="..." />是什么......

有人可以解释......

  • 它为content的不同值做了什么?
  • 对于不同的浏览器省略了什么?
  • 它的动机是什么?
  • 为什么会存在?

2 个答案:

答案 0 :(得分:21)

此元标记(或http标头)仅对IE8及以上具有意义。这是一种强制IE以旧版本的形式呈现页面的方法。省略它没有效果,只有在使用时才有效。

可能的值为“IE =”,后跟以下任何一项:

  • Edge - 呈现为IE的最新版本
  • IE9 - 在标准模式下呈现为IE9
  • 模拟IE9 - 呈现为IE9,但使用<!DOCTYPE>确定模式
  • IE8 - 以标准模式呈现为IE8
  • 模拟IE8 - 呈现为IE8,但使用<!DOCTYPE>确定模式
  • IE7 - 在标准模式下呈现为IE7
  • 模拟IE7 - 渲染为IE7,但使用<!DOCTYPE>确定模式
  • IE5 - 渲染为 IE7处于怪癖模式

此外,您可以添加逗号,然后添加Chrome = 1,以告知IE使用Google Chrome Frame渲染页面(如果已安装)。所以你可能有一个看起来像这样的标签:

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

或者,除此之外,您还可以指定将GCF用于特定版本的IE及以下版本,如下所示:

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

如果安装了GCF并且IE版本为8或更低版本,则表示使用GCF,否则,将其渲染为最新安装的IE版本。

因此,显而易见的是,能够使旧版本的IE使用GCF是有用的,但这可能不是微软在实现它时的意图。它可以用于与仅在旧版IE中工作的旧站点的兼容性,并且不能轻易修复,但这有点愚蠢。就个人而言,我发现它对测试很有用。由于从单个开发机器测试多个版本的IE通常不那么简单,因此这提供了一个不错的解决方案。

答案 1 :(得分:14)

在各种版本的Internet Explorer浏览器中,应对不同的错误或不完整的实现是一个可怕的黑客。例如,这个:

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

将指示IE9假装它真的是IE7,以避免如果您的网站在IE7中工作而不是IE9,可能会出现任何问题。