前段时间调整UI、UE的时候遇到一个问题,打开IE的时候数据显示不全并且页面也相当的混乱,这种情况只有在IE7下才会出现,系统兼容IE8、IE9和火狐,在IE上狠狠的按一下F12 发现IE的文档模式果然变为IE7了。找找一些资料终于给弄明白怎么回事情了。
IE兼容模式:
为了帮助确保网页在将来的 Internet Explorer 版本中具有一致的外观,Internet Explorer 8 引入了文档兼容性。文件兼容性用于定义IE如何渲染网页。
怎么查看当前网页在IE下的兼容性模式:
在浏览器中按F12打开IE开发人员工具,在最上方的工具栏中可以看到浏览器模式和文档模式。
- 浏览器模式(browser model)影响浏览器的行为表现以及声明的版本号。
- 文档模式(document model)影响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的值,可以指定网页的兼容性模式设置。