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

在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="yun_qi_img/10000009.jpg">pixu</a></li>
    <li><a href="yun_qi_img/294343.jpg">秀才</a></li>
    <li><a href="yun_qi_img/10000010.jpg">透露</a></li>
    <li><a href="yun_qi_img/11709126.jpg">LIVID</a></li>
    <li><a href="yun_qi_img/10000002.jpg">老孟</a></li>
    <li><a href="yun_qi_img/11695932.jpg">小玉</a></li>
    <li><a href="yun_qi_img/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;
}

时间: 2024-10-26 23:32:31

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

标准布局常见问题及解决办法_经验交流

CSS2.0盒模型层次平面示意图和3D示意图 3像素问题及解决办法 当使用float浮动容器后,在IE6下会产生3px的空隙,有意思的是右侧容器没设置高度时3px在右侧容器内部,当设定高度后又跑到容器的左侧了,所以对布局精度要求高的话,请参考例29.31的解决方法 上边容器浮动后,下边的容器跟着浮动,造成页面错乱 如以上例子中的footer必须要单独占一行,但当sidebar浮动后,content的高度小于sidebar的高度时,footer也跟着浮动到sidebar右侧了,造成页面错乱.解决办

支持IE6 IE7 Firefox 的纯CSS的下拉菜单_经验交流

XHTML/CSS 标准 教程 技术文章 常见问题 布局教程专题 CSS菜单 浏览器兼容 滚动条相关 圆角矩形专题 CSS特效欣赏专题 AJAXAJAX教程 AJAX技术 JavascriptJSON 技术文章 DOM XML 正则表达式正则表达式简介 正则表达式之道 网站优化 电脑网络 建站技术PHP ASP ASP.NET JSP SQL Flash Dreamweaver 2007-4-16 css drop down menu

Internet Explorer 8 beta 中文版与IE7共存的解决方法_经验交流

web开发人员关心的IE7和IE8共存的问题其实可以很好的解决. 解决方案一:在浏览器右上角有一个"模仿IE7"的切换按钮,但有点麻烦,需要关闭浏览器再重新打开才可以. 解决方案二:在IE8自带的"开发人员工具"中,点击查看选择striet(Internet Explorer7),既可以不重新启动浏览器观看IE7下的效果.可以只提供IE5/7/8三种,并没有IE6模式,还好我有" href="http://tredosoft.com/Multip

ie6,ie7,ie8完美支持position:fixed的终极解决方案_经验交流

ie6对position:fixed不支持,网上有很多解决方法,有的在ie6,ie7上调试成功后,在ie8上又不好使,div层还是跟随滚动条浮 动:以下总结方法,在ie6,ie7,ie8上都调试成功,且页面滚动条滚动时,效果还挺好,div层并不会闪烁. 复制代码 代码如下: <div id="goTop_div" class="fixed ie">  </div> css: 复制代码 代码如下: .fixed{         positio

多浏览器下IE6 IE7 firefox li 间距问题第1/2页_经验交流

今天小雷提到一个ie5下li产生空白行距的问题,下面来测试一下.  新建一个简单的HTML测试文件,下面来测试ul li标签. 复制代码 代码如下: <ul>   <li><a href="#">菜单一</a></li>   <li><a href="#">菜单一</a></li>   <li><a href="#">

css布局网页水平居中常用方法_经验交流

页面水平居中一般会令人很头疼,尤其新手.浏览器之间的不兼容也会带来很大问题.下面来说一下常见的页面水平居中办法.  以下内容参见<精通CSS>.  HTML代码:  复制代码 代码如下: <body>   <div id="wrapper">   </div>   </body>   IE居中办法:   body {        text-align:center;        min-width:760px;   }  

DIV+CSS网页另类上下布局的实例代码_经验交流

上面的 下面的

CSS hack实现 CSS完美兼容IE6/IE7/FF的通用方法_经验交流

关于CSS对各个浏览器兼容已经是老生常谈的问题了, 网络上的教程遍地都是.以下内容没有太多新颖, 纯属个人总结, 希望能对初学者有一定的帮助. 一.CSS HACK 以下两种方法几乎能解决现今所有HACK. 1, !important 随着IE7对!important的支持, !important 方法现在只针对IE6的HACK.(注意写法.记得该声明位置需要提前.) <style> #wrapper { width: 100px!important; /* IE7+FF */ width: 

IE6,IE7和firefox对DIV的支持区别_经验交流

1 针对firefox ie6 ie7的css样式 现在大部分都是用!important来hack,对于ie6和firefox测试可以正常显示,但是ie7对!important可以正确解释,会导致页面没按要求显示!找到一个针对IE7不错的hack方式就是使用"*+html",现在用IE7浏览一下,应该没有问题了. 现在写一个CSS可以这样: #1 { color: #333; } /* Moz */ * html #1 { color: #666; } /* IE6 */ *+html