我的第一个问题是忽略父元素填充的技巧。 我知道负 TOP 和 LEFT 边距会使该元素朝可能移出其父元素的方向移动得更远。
我真正感到困惑的是负 RIGHT 边距。 我想它会使元素变宽指定的量。 并且底部边距为负。它使元素更短。
第二个问题是,大的负边距底部似乎显示不一致。
这是演示
最佳答案
对于 block 元素,你用水平边距描述的是正确的。对于 block 元素的垂直边距,它略有不同。
想象一下您如何垂直放置一堆盒子,它们之间没有间距。您将从零的 Y 开始,然后对于每个 block ,将其放置在该位置,然后将 Y 值增加其高度。
现在我们将其扩展到包括间距。 CSS 模型如何工作的简化 View 是从 Y 值开始,和以前一样,但在放置框之前,添加上边距,在放置框之后,添加下边距。它的实际工作方式有点复杂,因为在某些情况下边距会崩溃。无论如何,这个简化的模型足以说明为什么高度没有改变:负的底部边距会影响下一个盒子的放置,但不会使盒子本身变大。
关于css - 负边距问题和不一致,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15081363/