http://www.css88.com/archives/1318
先来看这么一段代码:
<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>


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