建站教学网,让你建站更便捷和轻松!QQ交流群:78085540
您当前的位置:首页 > 网页制作 > CSS教程

css ie6、ie7、ie8中overflow:hidden无效解决办法

来源:建站教学网  时间:2012-03-07 15:22:18

今天我们做一个商城实现时利用了overflow:hidden但是怎么也达不到我们想的我效果,网上查了一下原来这是ie bug哦,下面我们来看处理办法吧。
-
产生原因:

当父元素的直接子元素或者下级子元素的样式拥有position:relative属性时,父元素的overflow:hidden属性就会失效。

解决办法:

我们在IE 6内发现子元素会超出父元素设定的高度,即使父元素设置了overflow:hidden。
解决这个bug很简单,在父元素中使用position:relative;即可解决该bug


ie7和ie6

发现在ie6和ie7里面overflow:hidden无效,还是会超出外层div

后来在外层div上面加上position:relative就解决了

暂时加*号hack掉吧,有时间再研究一下到底是什么原因导致的问题

好了,问题都说了,下面来看我解决我的实例吧。

ie6 ie7 ie8都有问题的解决办法。

 

是不是发现了问题,下面看看我的代码

 代码如下 复制代码
<div class="product-pic album">
 <div class="thumb">
  <ul>
  <li>
   <div class="shop-detail-img-outer">
    <div class="shop-detail-img">
     <p>
      <a title="" rel="{gallery:'gal1', smallimage: '312x312_39956512.jpg', largeimage : '39956512.jpg' }" href="javascript: void(0)">
       <img alt=" " src="45x45_39956512.jpg">
      </a>
     </p>
    </div>
   </div>
  </li>
  .........
  </ul>
 </div>
</div>

css 代码如下

 代码如下 复制代码
.album { display: block; }
.album .thumb { width: 100%; overflow: hidden; height: 62px;}
.album .thumb ul {margin: 0; padding: 0; width: 310px; height: 62px; overflow: hidden; display: block; }
.album .thumb ul li { float: left; margin: 5px 5px 5px 0px; list-style: none; }
 


一开始单独拿出这段代码发现没有问题,认为是上下影响导致的,但不是,几经波折,发现是设定overflow:hidden层里有定位标签的问题。最后终于搞定。

解决方案:只需要在设定overflow:hidden层加入定位即可。如在 .album .thumb ul中加入

 代码如下 复制代码
{position:relative;left:0px;top:0px;}

即可


哈哈,终于搞定了,不过我们以前还真没仔细看这个问题,保留希望有需要的朋友可以参考一下。
 

责任编辑:风中的自由

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表
CopyRight 2008-2009, JZREAD.COM, Inc. All Rights Reserved 联系QQ:568245346
皖ICP备09015033号