CSS2 盒子模型告诉我们adjoining vertical margins collapse .
我觉得这很烦人,因为它是许多设计错误的根源。我希望通过了解折叠边距的目的,我将了解何时使用它们以及如何在不需要时避免它们。
此功能的用途是什么?
最佳答案
“边距”的一般含义不是传达“将此移动 10px”,而是“此元素旁边必须有 10px 的空白空间”。
我一直发现这是最容易用段落概念化的。
如果您只给段落 margin-top: 10px
并且在任何其他元素上都没有边距,那么一系列段落的间距就会很漂亮。但是,当然,在段落下方放置另一个元素时,您会遇到麻烦。两者会接触。
如果边距没有折叠,您会犹豫是否将 margin-bottom: 10px
添加到您之前的代码中,因为这样任何一对段落都会间隔 20px,而段落会与其他元素仅 10px。
所以垂直边距崩溃了。通过添加 10px 的顶部和底部边距,您是在说,“我不在乎任何其他元素的边距规则。我要求每个段落的上方和下方至少有 10px 的填充。”
关于w3c - CSS 折叠边距有什么意义?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3069921/