大学IT网 - 最懂大学生的IT学习网站! QQ资料交流群:367606806
当前位置:大学IT网 > ASP.NET技巧 > IE兼容模式及客户端兼容模式、服务器端兼容模式设置

IE兼容模式及客户端兼容模式、服务器端兼容模式设置

关键词:IE客户端兼容模式服务器端兼容模式  阅读(3101) 赞(50)

[摘要]为了帮助确保网页在将来的 Internet Explorer 版本中具有一致的外观,Internet Explorer 8 引入了文档兼容性。文件兼容性用于定义IE如何渲染网页。 本文主要讲解IE兼容模式及客户端兼容模式、服务器端兼容模式设置。

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的值,可以指定网页的兼容性模式设置。 

例子: 

<meta http-equiv="X-UA-Compatible" content="IE=7" />
以上代码告诉IE浏览器,无论是否用DTD声明文档标准,IE8/9都会以IE7引擎来渲染页面。
<meta http-equiv="X-UA-Compatible" content="IE=8" />
以上代码告诉IE浏览器,IE8/9都会以IE8引擎来渲染页面。
<meta http-equiv="X-UA-Compatible" content="IE=edge" />
以上代码告诉IE浏览器,IE8/9及以后的版本都会以最高版本IE来渲染页面。
<meta http-equiv="X-UA-Compatible" content="IE=7,IE=9" />
<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的值,否则不起作用



相关评论