技术频道导航
HTML/CSS
.NET技术
IIS技术
PHP技术
Js/JQuery
Photoshop
Fireworks
服务器技术
操作系统
网站运营

赞助商

分类目录

赞助商

最新文章

搜索

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  
  • IT热文
  • 站长推荐