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下,内层的容器被外层覆盖,如图所示:
;(转载请注明出处:WEB前端开发 http://www.css88.com/)
在IE8和ff下,外层的容器被内层覆盖,如图所示:
;(转载请注明出处: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)问题》



跟margin负值有什么关系?是由于父级haslayout造成的裁切
[回复]
margin不取负值的话,是不会发生遮挡的问题,里面的div会很正常的在外面的div内部
[回复]
只适用于margin-top ,margin-left就不行了
[回复]