当前位置: 首页 > 图文教程 > 网页制作 > CSS样式表 > 当ie7不认!important之后 [布局的解决办法]

CSS样式表
DIV和CSS排版中制作细线条的方法小结
在解决ul居中问题时想到的几点
网页编辑中CSS样式表技巧总结
一个老外弄的Clearing floats(清除浮动的方法)
常用的DIV+CSS的基本框架结构但不推荐都放一个div里
无js5款纯div+css制作的弹出菜单标准
超强推荐CSS打造经典鼠标触发显示选项
CSS网页布局入门教程5:二列宽度自适应
CSS网页布局入门教程6:左列固定,右列宽度自适应
CSS网页布局入门教程7:二列固定宽度居中
CSS网页布局入门教程9:用CSS设计网站导航——横向导航
CSS网页布局入门教程10:带当前标识的标签式横向导航
CSS网页布局入门教程11:带当前标识的标签式横向导航图片美化版
CSS网页布局入门教程12:纵向导航菜单
CSS网页布局入门教程13:下拉及多级弹出式菜单
CSS网页布局入门教程14:纵向下拉及多级弹出式菜单
解读css发展历史
让用户自己控制网页字体的大小的css书写方法
CSS注释、命名、继承性、样式排序等CSS技巧的小结
CSS标签切换代码实例教程 比较漂亮

CSS样式表 中的 当ie7不认!important之后 [布局的解决办法]


出处:互联网   整理: 软晨网(RuanChen.com)   发布: 2009-09-12   浏览: 86 ::
收藏到网摘: n/a

在IE7之前,我们在布局时常用!important来解决IE和FF之间的差别; 但是在IE7出来之后,!important对IE7就不起作用了,而有些时候IE7的解释方法又与FF和IE6不同;这时新的问题就出现了;用!important可以解决IE6但是解决不了IE7; 这样在不同的浏览器中看到的同一个网页的效果就不同了;
这是前天作布局时的一个问题;可以先看一下效果;http://www.zishu.cn/blogview.asp?logID=553
或者运行一下下边的代码也可以同样看到效果:
复制代码 代码如下:

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>zishu.cn test</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_test li{ float:left; width:14%;text-align:center; margin:0 auto; list-style:none }
#zishu_test li a{border-right:1px solid #fff;border-bottom:1px solid #fff; width:100px; height:110px; background:#fff;display:block; padding-top:10px; margin:auto}
#zishu_test li img{ width:75px; height:75px; display:block; text-align:center; margin:auto; background:#FFF; padding:3px; border:1px solid #D8A18B;}
#zishu_test li span{display:none;}
#zishu_test li a:hover span{ margin-top:-10px;display:block; border-bottom:1px solid #666; border-right:1px solid #666; background:#FA9000; width:100px; color:#FFF; position:absolute; }
* 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; width:100px; height:110px; background:#F5F5F5;display:block; padding-top:10px;}
</style>
</head>
<body>
<div id="zishu_test">
<ul>
<li><a href="http://yy.kijiji.cn/u/秀才"><span>64d / 47 hits</span><img src="http://yy.kijiji.cn/img/p/10000009.jpg">pixu</a></li>
<li><a href="http://yy.kijiji.cn/u/秀才"><span>24d / 35 hits</span><img src="http://yy.kijiji.cn/img/p/294343.jpg">秀才</a></li>
<li><a href="http://yy.kijiji.cn/u/秀才"><span>66d / 87 hits</span><img src="http://yy.kijiji.cn/img/p/10000010.jpg">透露</a></li>
<li><a href="http://yy.kijiji.cn/u/秀才"><span>40d / 34 hits</span><img src="http://yy.kijiji.cn/img/p/11709126.jpg">LIVID</a></li>
<li><a href="http://yy.kijiji.cn/u/秀才"><span>47d / 56 hits</span><img src="http://yy.kijiji.cn/img/p/10000002.jpg">老孟</a></li>
<li><a href="http://yy.kijiji.cn/u/秀才"><span>42d / 36hits</span><img src="http://yy.kijiji.cn/img/p/11695932.jpg">小玉</a></li>
<li><a href="http://yy.kijiji.cn/u/秀才"><span>63d / 67 hits</span><img src="http://yy.kijiji.cn/img/p/10000025.jpg">pixu</a></li>
</ul>
</div>
</body>
</html>

在这个例子中,如果我把
程序代码
*+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;
}