只有IE8 FF 才会上下边距重叠,IE6 IE7 则不会,是吗??
<!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>
<style>
#my {width:400px; height:400px; border:1px solid #000;}
#my1{width:200px; height:200px; margin:20px;background-color:#eee}
#my2{width:100px; height:100px; margin:10px;background-color:red}
</style>
</head>
<body>
<div id="my">
<div id="my1">
<div id="my2"> </div>
</div>
</div>
</body>
</html>
[解决办法]
今天才看到这个问题,这是个比较典型的边界叠加兼容性的例子,也是因为盒模型解析差异造成的。
IE8我没有测试,但是在FF下,当给外层DIV设置1px以上的border后,一切问题将不复存在。
<style>
#my {width:400px; height:400px; border:1px solid #000;}
#my1{width:200px; height:200px; margin:20px; border:1px solid #000; background-color:#eee}
#my2{width:100px; height:100px; margin:10px; border:1px solid #000; background-color:red}
</style>
此外,还有一种有趣的现象,也是解决FF下边界叠加问题的办法,即设置内外层DIV的border为0的同时,给外层DIV加上overflow:hidden,如下:
<style>
#my {width:400px; height:400px; border:1px solid #000;}
#my1{width:200px; height:200px; margin:20px; border:0; background-color:#eee; overflow:hidden}
#my2{width:100px; height:100px; margin:10px; border:0; background-color:red}
</style>