首页  >  文章  >  web前端  >  当ie7不认!important之后 [布局的解决办法]_经验交流

当ie7不认!important之后 [布局的解决办法]_经验交流

WBOY
WBOY原创
2016-05-16 12:09:211671浏览

在IE7之前,我们在布局时常用!important来解决IE和FF之间的差别; 但是在IE7出来之后,!important对IE7就不起作用了,而有些时候IE7的解释方法又与FF和IE6不同;这时新的问题就出现了;用!important可以解决IE6但是解决不了IE7; 这样在不同的浏览器中看到的同一个网页的效果就不同了;

这是前天作布局时的一个问题;可以先看一下效果;http://www.zishu.cn/blogview.asp?logID=553 

或者运行一下下边的代码也可以同样看到效果:

复制代码 代码如下:



<头>
;
zishu.cn 测试
<风格>
正文{ 字体大小:12px; 行高:1.8; 字体系列:Verdana、“宋体”、Arial、Sans; 文本对齐:居中; 背景:#FFF; 颜色:#666; 边距:50px; 填充:0; 列表样式:无; }
a:链接,a:访问过{颜色:#000099; 文字装饰:下划线;}
a:hover,a:active{color:#000;文字装饰:无;}
#zishu_test li{ float:left; 宽度:14%;文本对齐:居中; 保证金:0 自动; list-style:none}
#zishu_test li a{border-right:1px solid #fff;border-bottom:1px solid #fff; 宽度:100px; 高度:110px; 背景:#fff;显示:块; 顶部填充:10px; 边距:自动}
#zishu_test li img{ width:75px; 高度:75px; 显示:块; 文本对齐:居中; 边距:自动; 背景:#FFF; 内边距:3px; 边框:1px Solid #D8A18B;}
#zishu_test li span{display:none;}
#zishu_test li a:hover span{ margin-top:-10px;display:block; 边框底部:1px 实心#666; 右边框:1px 实心#666; 背景:#FA9000; 宽度:100px; 颜色:#FFF; 位置:绝对; } 
* html #zishu_test li a:hover span {margin-left:-8px; } /* IE6 */ 
*+html #zishu_test li a:hover span {margin-left:-8px; }/* IE7*/ 
#zishu_test li a:hover{ border-right:1px solid #D8A18B;border-bottom:1px solid #D8A18B; 宽度:100px; 高度:110px; 背景:#F5F5F5;显示:块; padding-top:10px;} 


<身体>

  
    ;
        
  • 64d / 47 点击率pixu

  •     
  • 24d / 35 点击率秀才

  •     
  • 66d / 87 点击率明确

  •     
  • 40d / 34 点击率LIVID

  •     
  • 47d / 56 点击率老孟

  •     
  • 42d / 36hits小玉

  •     
  • 63d / 67 点击率pixu

  •   





在这个例子中,如果我把
 程序代码
*+html #zishu_test li a:hover span {margin-left:-8px; }/* IE7*/ 
这行删除;那么在IE7中;就会有差别了;

为了解决这个问题,我看了;http://www.blueidea.com/tech/site/2006/3626.asp 里边的一种方法; 但是如果程序员和布局人不是同一个人的话;这样的方法很不好控制; 于是才有了下边的方法;

以下是代码; 
 程序代码
复制代码 代码如下:

* html #zishu_test li a:hover span {margin-left:-8px; } /* IE6 */  
*+html #zishu_test li a:hover span {margin-left:-8px; }/* IE7*/  

这是针对IE6和IE7的两种方法;
“*+html”被ie7与ie5.01所使用,而区分ie7与ie5.01又有很简单的方法,便是important,把important写在前面,这样才能形成了单独针对ie7 hack的方法了。

比如:

*+html div.IE7 { 
width:200px; !important; 
width:100px;
}
声明:
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
上一篇:解决IE升级后Flash线框问题_经验交流下一篇:解决IE7以下版本不支持无A状态伪类的几种方法_经验交流

相关文章

查看更多