无意打开IETester在IE8下测试了一个页面,突然发现一个父级position:relative;子级position:absolute;的样式焦点轮播的时候在IE8下居然是错位的。仔细看了一下,发现IE8居然不认父级的相对定位,直接就是在屏幕上显示绝对定位。初步判断是IE8对JS的解释变化了。但是我之前在各个浏览器都测试过了,没问题。
本着学习的态度,我开始查看一些知名站点在IE8下的显示情况,当然过程是疑惑+漫无目的的。直接奉上我最后得到的结果吧。在HEAD里面多了一些代码。很疑惑,搜索一下,找到了微软的MSDN,在IE8的问题下面有一条“如何立即修复我的站点?”,看完了文章,恍然大悟,原来代码是强制将IE8以类似IE7的方式来呈现页面。
Code
<meta http-equiv="X-UA-Compatible" c />
原文:
快速短期修复措施
您维护的现有网页可以在 Windows Internet Explorer 7 中正常显示,但您希望通过极少的修改进行更新后,它能够在 Windows Internet Explorer 8 中正常显示。有两种方法。您可以在每个页面中添加兼容性模式 META 标记,强制 Windows Internet Explorer 8 以类似 Windows Internet Explorer 7 呈现页面的方式来呈现页面。如果您控制 Web 服务器,还可以将服务器配置为发送与每个网页的 META 标记等效的自定义 HTTP 响应标头,以使服务器自动添加兼容性。
如何修改每个页面
将以下 HTML META 标记放置到每个网页的 HEAD 元素中(在除 TITLE 或 META 外的标记之前):
<meta http-equiv="X-UA-Compatible" c/>
通过以上方式修复您的网站后,将强制 Windows Internet Explorer 8 以类似 Windows Internet Explorer 7 呈现页面的方式来呈现页面。
如何将服务器配置为自动修改每个页面
若要在每个页面中自动添加等效于 HTML META 标记的兼容性,请将服务器配置为发送以下标头:
X-UA-Compatible:IE=EmulateIE7
若要配置 Microsoft Internet Information Services (IIS) 7.0,请按以下方式配置 Web.config 文件:
Code
<?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>
http://spacexp.blog.163.com/blog/static/13000386201153011154463/