2010-06-30 49 views

回答

4

这不是问题,这是一个设计决定。这意味着:当相邻元素具有“接触”的边距时,这两个边距将折叠到相同的空间中。例如:

_____ 
| A | Element A has 20-px bottom margin 
|___| 

     <-- space between elements is 20, not 40 
_____ 
| B | Element B has 20-px top margin 
|___| 

边距“折叠”在一起。 CSS规范要求浏览器按照这种方式进行设计。一旦你了解何时以及如何发生,它实际上是一件好事并且很有帮助。

+0

为什么这是件好事?我认为这就是最初的问题得到.. – Magne 2012-01-04 14:34:41

+0

@Magne的原因是设计的可扩展性。当我们使用它来编写通用规则时,CSS的真正力量开始显示,这些通用规则应该如何显示某些*种*元素,而不知道这些元素将如何排列在特定页面上。边距的目的是在元素之间创建一个**装订线**。在设计规范中,通常情况下,排水沟应该精确(x)个像素 - 因此折叠可确保在不可预测的元素排列上设计合理的边距不会超过所需的排水沟尺寸。 – 2012-01-04 15:38:09

+0

感谢您指出普遍性方面。我可以看到这是一件好事。我只是很烦恼,因为人们仍然需要精确地知道某个页面上的某些元素是如何排列的,因为边缘的折叠取决于附近的元素(即内嵌块vs块)。 – Magne 2012-01-04 17:22:01