X-UA-Compatible 是什么(详解)

是什么

简而言之,它是一个指定IE8以上版本浏览器采用何种文档兼容模式来渲染页面的指令。

在哪里用

有两个地方使用:

  • 客户端——HTML 文档中 <meta>标签里,使用http-equiv属性指定
  • 服务端—— HTTP响应头中设置

如果客户端与服务端都设置了,采用客户端的设置。

什么是文档兼容模式

文档兼容模式是IE8浏览器引入的,它允许开发人员告诉IE浏览器采用与旧版本IE相同的方式来渲染页面,从而允许由开发人员选择何时对页面进行更新。
通过实施适当的兼容模式,站点可以确保与 Internet Explorer 8 及更高版本的兼容性。

比如,如果设置兼容模式为IE=5,则即使使用IE8打开页面,其渲染效果也将和在IE7的怪异模式下的渲染效果一样,而如果设置兼容模式为IE=7,则在IE8中打开页面时渲染讲过将和IE7标准模式下渲染效果一样。

根据概念,只能指定高版本IE浏览器使用低版本IE浏览器的渲染机制,而无法指定低版本浏览器采用高版本浏览器的渲染机制

有哪些值

  • IE=5 : 将采用IE7的怪异模式渲染页面
  • IE=7:将采用IE7标准模式渲染页面
  • IE=8:将采用IE8标准模式渲染页面
  • IE=9:将采用IE9标准模式渲染页面
  • IE=10:将采用IE10标准模式渲染页面
  • IE=11:将采用IE11标准模式渲染页面
  • IE=edge:将采用浏览器支持的最高文档模式渲染页面
  • IE=EmulateIE7
    • 采用IE7标准模式(如果有效<!DOCTYPE>声明存在)
    • 采用怪异模式(否则)
  • IE=EmulateIE8
    • 采用IE8标准模式(如果有效<!DOCTYPE>声明存在)
    • 采用怪异模式(否则)
  • IE=EmulateIE9
    • 采用IE9标准模式(如果有效<!DOCTYPE>声明存在)
    • 采用怪异模式(否则)
  • IE=EmulateIE10
    • 采用IE10标准模式(如果有效<!DOCTYPE>声明存在)
    • 采用怪异模式(否则)
  • IE=EmulateIE11
    • 采用IE11标准模式(如果有效<!DOCTYPE>声明存在)
    • 采用怪异模式(否则)

怎么用

客户端


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

服务端

Apache为例


<IfModulemod_setenvif.c>
<IfModulemod_headers.c>
BrowserMatch MSIE ie
    Header set X-UA-Compatible "IE=Edge" env=ie
BrowserMatchchromeframegcf
    Header append X-UA-Compatible "chrome=1" env=gcf
</IfModule>
</IfModule>

nginx 为例

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

多个并列值

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

以上就表明,将IE8和IE7按照IE7标准渲染,但是IE9还是按照IE9的标准渲染。它允许有不同的向后兼容水平。

兼容谷歌内嵌

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

添加”chrome=1“将允许站点在使用了谷歌浏览器内嵌框架(Chrome Frame)的客户端渲染,对于没有使用的,则没有任何影响。【大多数国产浏览器都是有谷歌内嵌的,所以建议默认加上】

  • 8
    点赞
  • 36
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: http-equiv="x-ua-compatible"是HTML中的一个元标记,用于指定浏览器的文档模式。它告诉浏览器使用哪个版本的HTML解析器来渲染页面,以确保页面在不同的浏览器中具有一致的外观和行为。 ### 回答2: http-equiv="x-ua-compatible" 是一种 HTML 元素属性,它被用于设定当前网页在某个特定的浏览器或浏览器模式下的渲染方式。通常这个属性是用在 HTML 的 head 标签里面,例如:<head><meta http-equiv="x-ua-compatible" content="ie=edge"></head>。 该属性的主要作用是让网页能兼容旧版的 Internet Explorer 浏览器。由于 IE 浏览器在不同版本之间存在差异,很多网页在新版浏览器下展示正常,但在 IE 旧版浏览器下则存在显示问题或兼容性问题。为了解决这些问题,就需要用到该属性。 该属性通常指定的值为"ie=edge"表示让浏览器使用最新版本的 IE 渲染网页,也可以指定特定版本的 IE。例如:<meta http-equiv="x-ua-compatible" content="ie=9"> 意味着让 IE 9 版本渲染网页。 需要注意的是,使用该属性并不能保证完全解决兼容性问题,有时需要通过修改网页代码来达到最佳效果。此外,Chrome 和 Firefox 等现代浏览器对该属性的支持已经相对较弱,可能会导致不可预测的结果,建议谨慎使用。 总之,http-equiv="x-ua-compatible" 属性是一种让网页在特定浏览器或浏览器模式下的渲染方式,主要是用来解决旧版 IE 下的兼容性问题,但并不是万能的解决方案。 ### 回答3: http-equiv="x-ua-compatible"是一种用于在网页中声明文档渲染模式的HTML元素。它可以指定浏览器使用哪个版本的HTML解释器来渲染网页并确保网页呈现出预期的效果。 这个元素在当今的Web开发中非常重要,因为不同版本的浏览器使用不同的HTML解释器,导致同一网页在不同浏览器中呈现的效果可能会有所不同。此时,我们可以通过设置http-equiv="x-ua-compatible"元素,告诉浏览器使用特定的HTML版本,以确保网页以最佳的方式呈现。 在设置http-equiv="x-ua-compatible"元素时,可以使用不同的属性值。比如,设置为IE=edge表示要在IE最新的文档模式下渲染网页。而设置为IE=EmulateIE9表示要模拟IE9的行为方式,即使用IE9文档模式来渲染网页。 总之,使用http-equiv="x-ua-compatible"元素可以帮助我们避免浏览器兼容性问题,并且确保网页在不同浏览器中呈现一致的效果。因此,在Web开发中,我们务必要重视这个元素的作用,以确保网页的质量和用户体验。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值