指定IE的文档兼容模式 meta X-UA-Compatible EmulateIE7

分类:Html_Css| 发布:camnprbubuol| 查看: | 发表时间:2013/4/10

先来看一下朋友网是怎么指定IE的文档模式的:

<!DOCTYPE html>
<html>
<head>

<meta charset="utf-8">
<meta http-equiv="X-UA-Compatible" content="IE=7, IE=9">
<meta name="Copyright" content="Tencent" />
<link rel="shortcut icon" href="http://cnc.qzonestyle.gtimg.cn/py-v4/img/favicon.ico" type="image/x-icon" />
<link rel="icon" href="http://cnc.qzonestyle.gtimg.cn/py-v4/img/favicon.ico" type="image/x-icon" />
<link rel="bookmark" href="http://cnc.qzonestyle.gtimg.cn/py-v4/img/favicon.ico" type="image/x-icon" />
<title>朋友网(腾讯朋友) - 首页</title>

文档模式

下边来说说为什么这么做?

之前的版本朋友网都是把文档模式指定为IE7,地球人都知道的语法:

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

这次改版kairee同学想跳过IE8,指定IE7和IE9,使用了MSDN文档推荐的语法:

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

该文档还提供了一些信息:

The X-UA-Compatible header is not case sensitive; however, it must appear in the header of the webpage (the HEAD section) before all other elements except for the title element and other meta elements.

Because edge mode documents display webpages using the highest mode available to the version of Internet Explorer used to view them, it is recommended that you use this document mode for testing purposes only. Do not use it for production uses.

测试阶段,测试人员发现了一些IE8下的bug,发现在IE8下并没有以IE7的文档模式渲染页面,google之,很多人都遇到过这个情况,已有人做了书写方式测试(备用地址:http://camnpr.com/downloadCamnpr/ie-x-ua-compatible/index.html 请在IE下测试效果),眼见为实,找来装有原生IE8的机器测试了一下,测试结果如下:

1.定义多种文档模式时,使用逗号(,),而非文档中提到的分号(;)

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

2.或者以逗号升序连写的方式

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









测试图片打包下载

文档模式(document mode)是IE8引入的一个新概念。页面的文档模式决定了你可以使用哪个级别的CSS,可以使用JavaScript的哪些API,以及如何对待文档类型(doctype)。

从上面的例子可以看出“X-UA-Compatible”的值有两种方式:Emulate+IE版本号,单纯版本号。这两种有何区别呢?

  • Edge:始终以最新的文档模式来渲染页面。忽略文档类型声明。对于IE8,始终以IE8标准模式渲染页面。IE9亦如此。
  • EmulateIE9:如果声明了文档类型,则以IE9标准模式渲染页面,否则将文档模式设置为IE5。 EmulateIE8:如果声明了文档类型,则以IE8标准模式渲染页面,否则将文档模式设置为IE5。 EmulateIE7:如果声明了文档类型,则以IE7标准模式渲染页面,否则将文档模式设置为IE5。
  • 9:强制以IE9标准模式渲染页面,忽略文档类型声明。
  • 8:强制以IE8标准模式渲染页面,忽略文档类型声明。
  • 7:强制以IE7标准模式渲染页面,忽略文档类型声明。
  • 5:强制以IE5标准模式渲染页面,忽略文档类型声明。

也许你在实际使用 X-UA-Compatible 的时候,可能会出现不管用的情况,其实,不能单单的只是加:meta,还需要,把DOCTYPE的定义去掉,其实这样就可以了:<!DOCTYPE html>  。快检查一下,你的代码中是不是还是这个:<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> 改掉试试。 如下图:

文档模式

文章转自:http://www.topcss.org/?p=451 

参考地址:定义文档兼容性

365据说看到好文章不转的人,服务器容易宕机
原创文章如转载,请注明:转载自郑州网建-前端开发 http://camnpr.com/
本文链接:http://camnpr.com/archives/specify-IE-document-compatibility-mode.html