现在的位置: 首页 > 综合 > 正文

开发收获(5)IE兼容模式及客户端兼容模式、服务器端兼容模式设置

2014年02月10日 ⁄ 综合 ⁄ 共 2160字 ⁄ 字号 评论关闭

IE兼容模式:
为了帮助确保网页在将来的 Internet Explorer 版本中具有一致的外观,Internet Explorer 8 引入了文档兼容性。文件兼容性用于定义IE如何渲染网页。

怎么查看当前网页在IE下的兼容性模式:
在浏览器中按F12打开IE开发人员工具,在最上方的工具栏中可以看到浏览器模式和文档模式。

  • 浏览器模式影响浏览器的行为表现以及声明的版本号
  • 文档模式影响DOM的转换、渲染操作,影响的是浏览器的外观表现,决定网页显示成什么样子的。

客户端兼容性模式默认设置:

  • 外网网站以标准模式来渲染
  • 内网网站以兼容模式(IE7兼容模式)来渲染
  • 当用IP访问网站时,也是自动以标准模式来渲染,因为IE不能知道ip地址是内网或者外网的
  • 当访问本地html文件时,如‘C:\Temp\MyWebPage.htm’,IE8兼容性模式默认也是关闭的
  • 兼容性模式是针对域名设置的
  • 启用、关闭兼容性模式时,浏览器会自动重新加载(刷新)页面(不需要浏览器重启)

客户端兼容模式设置:
兼容性模式按钮

只有当切换到兼容性视图有意义的情况下(譬如当前正以标准模式查看网页),IE才会显示上述按钮。其他情况下,如正以Quick模式查看页面或者正在查看内网网页(它们自动用兼容性模式来渲染),IE会自动隐藏这个按钮。

Tools菜单下的兼容性视图以及兼容性视图设置画面
注意:默认情况下,用兼容性模式(即IE7标准模式)查看内网网站是被选中的

服务器端兼容模式设置:
即当客户端以兼容性模式视图查看网页时,可以在服务器上设置以什么标准的兼容性模式来渲染网页(IE8,IE9下默认启用的是IE7标准的兼容性模式
当客户端以标准模式(非兼容性模式)来查看网页时,服务器端的兼容性模式不会影响标准模式的渲染

若你已于网站服务器指定了一个预设的文件兼容性模式,你可以在个别页面上指定不同的文件兼容性模式来盖过它。在网页中指定的模式优先权高于服务器中(通过HTTP Header)所指定的模式
兼容性模式设置优先级:

X-UA-Compatible是自从IE8新加的一个设置,对于IE8以下的浏览器是不识别的。通过在meta中设置X-UA-Compatible的值,可以指定网页的兼容性模式设置。

例子:

Html代码  收藏代码
  1. <meta http-equiv="X-UA-Compatible" content="IE=7" />  
  2. 以上代码告诉IE浏览器,无论是否用DTD声明文档标准,IE8/9都会以IE7引擎来渲染页面。  
  3. <meta http-equiv="X-UA-Compatible" content="IE=8" />  
  4. 以上代码告诉IE浏览器,IE8/9都会以IE8引擎来渲染页面。  
  5. <meta http-equiv="X-UA-Compatible" content="IE=edge" />  
  6. 以上代码告诉IE浏览器,IE8/9及以后的版本都会以最高版本IE来渲染页面。  
  7. <meta http-equiv="X-UA-Compatible" content="IE=7,IE=9" />  
  8. <meta http-equiv="X-UA-Compatible" content="IE=7,9" />  

IE文档兼容性模式所有可能的值:

  • Emulate IE8 mode指示IE使用<!DOCTYPE>指令来决定如何编译内容。Standards mode指令会显示成IE8 Standards mode而quirks mode会显示成IE5 mode。不同于IE8 mode,Emulate IE8 mode重视<!DOCTYPE>指令
  • Emulate IE7 mode指示IE使用<!DOCTYPE>指令来决定如何编译内容。Standards mode指令会显示成IE7 Standards mode而quirks mode会显示成IE5 mode。不同于IE7 mode,Emulate IE7 mode重视<!DOCTYPE>指令。对于许多网页来说这是最推荐的兼容性模式。
  • IE5 mode 编译内容如同IE7的quirks mode之显示状况,和IE5中显示的非常类似。
  • IE7 mode编译内容如同IE7的standards mode之显示状况,无论网页是否含有<!DOCTYPE>指令。
  • IE8 mode提供对业界标准的最高支持,包含 W3C Cascading Style Sheets Level 2.1 Specification和W3C Selectors API,并有限的支持 W3C Cascading Style Sheets Level 3 Specification (Working Draft)。
  • Edge mode指示IE以目前可用的最高模式显示内容。当使用IE8时其等同于IE8 mode。若(假定)未来放出支持更高兼容性模式的IE,使用Edge mode的页面会使用该版本能支持的最高模式来显示内容。同样的那些页面在使用IE8浏览时仍会照常显示。

注意事项:

  • 1,根据官网定义X-UA-compatible 标头不区分大小写;不过,它必须显示在网页中除 title 元素和其他 meta 元素以外的所有其他元素之前。如果不是的话,它不起作用
  • 2,content的内容是IE=8,或者IE=edge等值,注意不是IE8或者直接写个edge的值,否则不起作用

抱歉!评论已关闭.