IE=EmulateIE7导致hack IE8 CSS代码 \0 无效
作者:admin 时间:2015-9-3 20:15:17 浏览:今天写CSS遇到一个非常奇怪的事情,就是想hack IE8,于是在样式里加上“\0”,如下所示:
padding-top:0px\0;
但是一点效果都没有,而一直这样写都是有效的。反而,我用IE7的hack写法,成功了。写法如下:
*padding-top:0px;
检查起来是很痛苦很费时的,好在最后找到了原因,原来是html的head里使用了如下的meta,导致hack IE8无效。
<meta http-equiv="X-UA-Compatible" content="IE=EmulateIE7"/>
其实,这句话是asp.net2.0创建网页时自动添加,我一直没有过多研究,以致在新建html网页时,也把这些代码直接拷贝过去使用,导致出现了现在的问题。
理解 IE=EmulateIE7 标签
Windows Internet Explorer 8 引入了文本兼容性模式,该模式允许 Web 开发人员将浏览器设置为以与旧版本相同的方式呈现它们的页面。可以根据不同的页面或不同的站点指定兼容性模式。
通过meta标签,可实现 Windows Internet Explorer 8 支持的一种很常见的文本兼容性模式 — EmulateIE7。写法如下:
<meta http-equiv="X-UA-Compatible" content="IE=EmulateIE7"/>
EmulateIE7 是一种浏览器兼容模式,EmulateIE7 模式通知 Windows Internet Explorer 使用 <!DOCTYPE> 指令确定如何呈现内容,EmulateIE7 模式遵循 <!DOCTYPE> 指令。
要为网页指定文本模式,请使用 META 元素,以在该网页中包含 X-UA-Compatible http-equiv 标头。以下示例指定了 EmulateIE7 模式兼容性。
HTML:
<html>
<head>
<!-- Mimic Internet Explorer 7 -->
<title>我的网页</title>
<meta http-equiv="X-UA-Compatible" content="IE=EmulateIE7" />
</head>
<body>
<p>内容在此处。</p>
</body>
</html>
Content 属性指定了该页面的模式;例如,要模仿 Windows Internet Explorer 7 的行为,请指定 IE=EmulateIE7。同样,可指定 IE=5、IE=7 或 IE=8 以选择其中一种兼容性模式。您还可以指定 IE=edge 以通知 Windows Internet Explorer 8 使用最高级别的可用模式。
X-UA-compatible 标头不区分大小写;但是,它必须显示在网页中除 TITLE 和其他 META 元素以外的所有元素之前的标头(HEAD 部分)中。
IE=EmulateIE7 标签应该摒弃
现在浏览器中极少人使用IE7以下的版本了,如果html网页里还是用IE=EmulateIE7这样标签,即是IE8也以IE7的CSS标准来呈现网页,而针对IE8的CSS就不起作用了,这对CSS的编写和维护带来极大的麻烦。
因此,应该摒弃IE=EmulateIE7 标签,在html网页里删除如下mata:
<meta http-equiv="X-UA-Compatible" content="IE=EmulateIE7" />
如果你想兼容IE7浏览器,那么可以单独hack IE7,CSS的写法是在前面加一个“*”号,如下所示:
*padding-top:0px;
标签: css
- 站长推荐