CSS边缘奇怪的行为,为什么?

时间:2009-06-01 18:55:02

标签: css margins

将HTML放在

之下
<!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">
<body>
    <div style="width:400px;height:200px;background-color:Gray;margin-bottom:10px;"></div>
    <div style="width:400px;height:200px;background-color:Green;margin-top:10px;"></div>
</body>
</html>

这两个DIV之间的空间只有10个像素。

为什么呢?请解释一下。

3 个答案:

答案 0 :(得分:6)

该行为称为collapsing margins。不添加边距值,但使用更高的值:

  

垂直边距可能会在某些框之间崩溃:

     
      
  • 正常流动中的两个或多个相邻的块箱垂直边缘坍塌。得到的边距宽度是相邻边距宽度的最大值。 [...]
  •   
  • [...]
  •   

答案 1 :(得分:1)

这是一个很好的explanation of margin collapsing。基本上,根据CSS规范和所有常识,似乎所有相邻的边距都会相互崩溃。

答案 2 :(得分:1)

如果你想获得所需的效果,你可以使用“填充”,边距总是崩溃