IE的文档可兼容性

Author : luckyGirl

对于前端兼容IE是个蛮头痛的事情,本文将介绍2种方式来定义IE下网页呈现的方式。

一、文档兼容性

IE每个主版本都会添加一些新功能,尤其是IE8比之前的旧版本相比更接近行业标准,导致针对旧版本浏览器设计的站点可能不会按预期显示,因此引入了文档兼容性的概念,从而允许指定站点所支持的IE版本。可通过使用<meta>将X-UA-Compatible标头添加,从而实现这一点。

如: <meta http-equiv=”X-UA-Compatible” content=”IE=EmulateIE7″ >

IE8支持多种文档兼容性模式,启用不同功能将影响内容的显示方式:

  • “IE=EmulateIE8″:IE使用<!DOCTYPE>指令确定如何呈现内容,如标准模式将以IE8标准模式显示,而Quirks模式指令将以IE5模式显示
  • “IE=EmulateIE7″:IE使用<!DOCTYPE>指令确定如何呈现内容,如标准模式将以IE7标准模式显示,而Quirks模式则以IE5模式显示
  • “IE=IE5″:如同使用IE7的Quirks模式显示
  • “IE=IE7″:无论页面是否包含<!DOCTYPE>指令,呈现内容的方式如同使用IE7的标准模式来显示
  • “IE=IE8″:最大程度支持行业标准
  • “IE=Edge”:使用IE最高级别模式显示,仅建议将Edge模式用于测试页面和其他非生生产活动

除了通过<meta>,网站管理员可以通过定义站点的自定义标头,具体过程依不同的Web服务器而定。例如,通过以下的web.config文件让Microsoft Internet Information Services (IIS) 定义一个自定义标头,以便所有页面以IE7模式呈现

<?xml version="1.0" encoding="utf-8"?>
<configuration>
  <system.webServer>
    <httpProtocol>
      <customHeaders>
        <clear />
        <add name="X-UA-Compatible" value="IE=EmulateIE7" />
      </customHeaders>
    </httpProtocol>
  </system.webServer>
</configuration>

二、Google Chrome Frame

一款免费的IE专用插件,通过IE的用户界面,以Chrome内核的渲染方式浏览页面,Chrome Webkit会将最新版的Chrome Webkit内核和JavaScript引擎注入到IE中,目前只适用于Windows 7/Vista/XP Sp2或更高版本上的IE6、7、8、9。在运行插件后,地址栏会出现cf: 字样,IE浏览器将获得Chrome的性能和功能,另外支持IE所没有的HTML5等其他open web技术

作为网页开发者可以使用<meta>,如

<meta http-equiv=”X-UA-Compatible” content=”chrome=1″>

在IE下会启用已经安装过的Frame,而其他浏览器则会忽略此行代码。

当然用户可自行设置自己的IE浏览器,在此就不赘述了。

低版本IE(6/7/8)仍然占有不少市场份额,是多数网站开发不可避免的问题,这2种方式为前端开发们带来了福祉。

参考:

 

 

standard

Have your say