边距和填充:什么时候选择什么

Margin and Padding: when chose what

如果我有一个控件,说一个按钮。到下一个 UI 元素的距离可以通过 margin 和 padding 来控制。我选择哪一个重要吗?对于应用程序或用户而言,有效差异是什么?

我在某处看到并保存的最佳答案是:

" 对我来说,padding 和 margin 之间最大的区别是 margins auto-collapse,而 padding 不会。考虑两个相邻的元素,每个元素的 padding 都是 1em。这个 padding 被认为是元素,并且始终保留。所以你最终会得到第一个元素的内容,然后是第一个元素的填充,然后是第二个元素的填充,然后是第二个元素的内容。因此内容两个元素最终将相隔 2em。

现在用 1em 边距替换该填充。边距被认为在元素之外,相邻项目的边距将重叠。所以在这个例子中,你将得到第一个元素的内容,然后是 1em 的组合边距,然后是第二个元素的内容。所以两个元素的内容只相隔1em。

当您知道要在某个元素周围说出 1em 的间距时,无论它与哪个元素相邻,这都非常有用。

另外两个大的区别是填充包含在点击区域和背景中 color/image,而不是边距。

默认情况下,我在任何地方都使用边距,除非我有边框或背景并且想增加可见框内的 space。"