2010-06-18 98 views
55

CSS2盒子模型告诉我们adjoining vertical margins collapseCSS折叠边距是多少?

我觉得很烦人,成为许多设计错误的根源。我希望通过理解折叠边际的目的,我会理解何时使用它们以及如何避免它们在不需要时。

此功能的用途是什么?

+2

毗邻**垂直**边缘折叠 – sam 2013-10-10 01:51:42

回答

76

“边距”的一般含义并不是表达“将此移动10px”,而是“这个元素旁边必须有10px的空白空间”。

我一直发现这是最容易概念化的段落。

如果您只是给出了段落margin-top: 10px并且没有任何其他元素的边距,则一系列段落的间距会很精美。但是当然,在段落下放置另一个元素时会遇到麻烦。这两人会碰。

如果利润率并没有崩溃,你会毫不犹豫地添加margin-bottom: 10px到以前的代码,因为那么任何对段落会得到相隔20像素,而段落会从其他元素只10px的分离。

所以垂直边缘崩溃。通过添加10px的顶部和底部边距,您会说:“我不在乎任何其他元素具有哪些边距规则,我需要在每个段落上下填充至少10px的填充。”

+0

我从来不知道这一点,但我很高兴我现在就做!很有意思。 – 2010-06-18 14:24:49

+0

+1。在CSS之外,同样的逻辑也适用。例如,在Microsoft Word中,如果标题后面有12px的边距,并且段落前面的边距为6px,则如果段落跟在标题后面,则会有12px的空间,而不是18px。 – 2010-08-22 19:26:23

+0

正确 - 他们崩溃 - 尽管他们不是同一个dom级别。例如。尝试崩溃[这](http://jsfiddle.net/gDuzC/2/)简直就是:它真的很讨厌 – Toskan 2012-08-29 17:24:30