margin负值引起的层级(z-index)问题

时间:2009年05月26日作者:愚人码头查看次数:5,149 views评论次数:3

不知道是不是该取这个标题,如有不同意见请留言斧正,谢谢!

先来看这么一段代码:


<div style="height:100px;width:200px; border: solid 1px black; ">
      <div style="background-color:Red;margin-top: -5px ">
        <a href="http://www.css88.com/">愚人码头</a></div>
    </div>

在IE6和IE7下,内层的容器被外层覆盖,如图所示:

2009-05-26_004915(转载请注明出处:WEB前端开发 http://www.css88.com/)

在IE8和ff下,外层的容器被内层覆盖,如图所示:

2009-05-26_004929(转载请注明出处:WEB前端开发 http://www.css88.com/)

真是疯狂啊,如果要达到IE8的外层的容器被内层覆盖的效果,ie7可以通过触发内层的layout解决,,但是IE6却不行,只能在内层使用position:relative来解决问题,当然position:relative也解决ie7的问题,因为position:relative本身就能触发layout。(转载请注明出处:WEB前端开发 http://www.css88.com/)

看代码:


<div style="height:100px;width:200px; border: solid 1px black; ">
      <div style="background-color:Red;margin-top: -5px;position:relative">
        <a href="http://www.css88.com/">愚人码头</a>      </div>
    </div>

 

当然要IE8、FF达到IE6、IE7的效果就只要在外层加overflow:hidden 就可以了,看代码。(转载请注明出处:WEB前端开发 http://www.css88.com/)

<div style="height:100px;width:200px; border: solid 1px black; overflow:hidden ">
      <div style="background-color:Red;margin-top: -5px;">
        <a href="http://www.css88.com/">愚人码头</a>      </div>
    </div>

声明: 本文采用 BY-NC-SA 协议进行授权 | WEB前端开发
转载请注明转自《margin负值引起的层级(z-index)问题

如果你读了我的文章,觉得有帮助: 说明
标签:分类:html+css
3条评论
  1. robben留言于:2009年05月30日00:13

    跟margin负值有什么关系?是由于父级haslayout造成的裁切

    [回复]

  2. 没事看看留言于:2009年07月10日11:03

    margin不取负值的话,是不会发生遮挡的问题,里面的div会很正常的在外面的div内部

    [回复]

  3. 菲林子留言于:2010年08月04日18:18

    只适用于margin-top ,margin-left就不行了

    [回复]

发表评论

*

*