当ie7不认!important之后 [布局的解决办法]
当ie7不认!important之后 [布局的解决办法]
发布时间:2016-12-29 来源:查字典编辑
摘要:在IE7之前,我们在布局时常用!important来解决IE和FF之间的差别;但是在IE7出来之后,!important对IE7就不起作用了...

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

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

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

复制代码 代码如下:

<!DOCTYPEhtmlPUBLIC"-//W3C//DTDXHTML1.0Transitional//EN""http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

<htmlxmlns="http://www.w3.org/1999/xhtml">

<head>

<metahttp-equiv="Content-Type"content="text/html;charset=utf-8"/>

<title>zishu.cntest</title>

<style>

body{font-size:12px;line-height:1.8;font-family:Verdana,"宋体",Arial,Sans;text-align:center;background:#FFF;color:#666;margin:50px;padding:0;list-style:none;}

a:link,a:visited{color:#000099;text-decoration:underline;}

a:hover,a:active{color:#000;text-decoration:none;}

#zishu_testli{float:left;width:14%;text-align:center;margin:0auto;list-style:none}

#zishu_testlia{border-right:1pxsolid#fff;border-bottom:1pxsolid#fff;width:100px;height:110px;background:#fff;display:block;padding-top:10px;margin:auto}

#zishu_testliimg{width:75px;height:75px;display:block;text-align:center;margin:auto;background:#FFF;padding:3px;border:1pxsolid#D8A18B;}

#zishu_testlispan{display:none;}

#zishu_testlia:hoverspan{margin-top:-10px;display:block;border-bottom:1pxsolid#666;border-right:1pxsolid#666;background:#FA9000;width:100px;color:#FFF;position:absolute;}

*html#zishu_testlia:hoverspan{margin-left:-8px;}/*IE6*/

*+html#zishu_testlia:hoverspan{margin-left:-8px;}/*IE7*/

#zishu_testlia:hover{border-right:1pxsolid#D8A18B;border-bottom:1pxsolid#D8A18B;width:100px;height:110px;background:#F5F5F5;display:block;padding-top:10px;}

</style>

</head>

<body>

<divid="zishu_test">

<ul>

<li><ahref="http://yy.kijiji.cn/u/秀才"><span>64d/47hits</span><imgsrc="http://yy.kijiji.cn/img/p/10000009.jpg">pixu</a></li>

<li><ahref="http://yy.kijiji.cn/u/秀才"><span>24d/35hits</span><imgsrc="http://yy.kijiji.cn/img/p/294343.jpg">秀才</a></li>

<li><ahref="http://yy.kijiji.cn/u/秀才"><span>66d/87hits</span><imgsrc="http://yy.kijiji.cn/img/p/10000010.jpg">透露</a></li>

<li><ahref="http://yy.kijiji.cn/u/秀才"><span>40d/34hits</span><imgsrc="http://yy.kijiji.cn/img/p/11709126.jpg">LIVID</a></li>

<li><ahref="http://yy.kijiji.cn/u/秀才"><span>47d/56hits</span><imgsrc="http://yy.kijiji.cn/img/p/10000002.jpg">老孟</a></li>

<li><ahref="http://yy.kijiji.cn/u/秀才"><span>42d/36hits</span><imgsrc="http://yy.kijiji.cn/img/p/11695932.jpg">小玉</a></li>

<li><ahref="http://yy.kijiji.cn/u/秀才"><span>63d/67hits</span><imgsrc="http://yy.kijiji.cn/img/p/10000025.jpg">pixu</a></li>

</ul>

</div>

</body>

</html>

在这个例子中,如果我把

程序代码

*+html#zishu_testlia:hoverspan{margin-left:-8px;}/*IE7*/

这行删除;那么在IE7中;就会有差别了;

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

以下是代码;

程序代码

复制代码 代码如下:

*html#zishu_testlia:hoverspan{margin-left:-8px;}/*IE6*/

*+html#zishu_testlia:hoverspan{margin-left:-8px;}/*IE7*/

这是针对IE6和IE7的两种方法;

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

比如:

*+htmldiv.IE7{

width:200px;!important;

width:100px;

}

推荐文章
猜你喜欢
附近的人在看
推荐阅读
拓展阅读
相关阅读
网友关注
最新 Div+Css教程学习
热门 Div+Css教程学习
网页设计子分类