Margin vs Padding

2025年3月26日 | 阅读 4 分钟

在设计用户界面时,有时会对 padding 和 margin 感到困惑。它们都用于提供额外的空间或间隙。padding 和 margin 都可以作用于元素的四个边,并且在没有 border 属性的情况下也能工作,但它们在很多方面有所不同。

padding 和 margin 的主要区别是

  • padding 在 border 和元素的 content 之间提供空间。
  • margin 在 border 和外部元素之间提供空间。

因此,当我们需要元素之间的空间时,最好使用 margin;当我们需要内部元素和父级框之间的空间时,则使用 padding。

margin 和 padding 的基本区别如下表所示:

边距填充 (Padding)
Margin 被认为是元素的外部空间,即 margin 是元素 border 外面的空间。Padding 被认为是元素的内部空间,即 padding 是元素 border 里面的空间。
我们可以将 margin 设置为 auto我们不能将 padding 设置为 auto
它可以是负数或任何浮点数。它不允许负值。
元素的样式,例如背景颜色,不会影响 margin。Padding 会受到元素样式的影响,例如背景颜色。

我们可以查看下图来清楚地区分 margin 和 padding。在此图中,margin 指的是 border 外的区域,padding 指的是 border 内的区域。

Margin v/s Padding

让我们分别讨论 margin 和 padding。

边距

CSS margin 属性定义了元素周围的空间。它完全透明,没有任何背景颜色。它会清除元素周围的区域。

我们可以使用单独的属性 margin-top, margin-bottom, margin-leftmargin-right 来独立地更改顶部、底部、左侧和右侧的 margin。我们也可以使用简写 margin 属性一次性更改所有属性。

有四种指定简写 margin 属性的方法,如下所示:

  • margin: 50px 100px 150px 200px;
    这表示 top margin 值为 50px,right margin 值为 100px,bottom margin 值为 150px,left margin 值为 200px。
  • margin: 50px 100px 150px;
    这表示 top margin 值为 50px,leftright margin 值为 100px,bottom margin 值为 150px。
  • margin: 50px 100px;
    这表示 topbottom margin 值为 50px,leftright margin 值为 100px。
  • margin: 50px;
    这设置了 top, right, bottomleft margin 的相等值。

简写 margin 属性的示例如下:

示例

输出

在下面的输出中,我们可以看到屏幕上有一个滚动条。这是因为 margin-bottom 的值为 150px。

Margin v/s Padding

填充 (Padding)

margin 属性不同,CSS padding 属性定义了元素内容和元素 border 之间的空间。

CSS padding 会受到背景颜色的影响。它会清除内容周围的区域。

我们可以使用单独的属性 padding-top, padding-bottom, padding-leftpadding-right 来独立地更改顶部、底部、左侧和右侧的 padding。我们也可以使用简写 padding 属性一次性更改所有属性。

有四种指定简写 padding 属性的方法,如下所示:

  • padding: 50px 100px 150px 200px;
    这表示 top padding 值为 50px,right padding 值为 100px,bottom padding 值为 150px,left padding 值为 200px。
  • padding: 50px 100px 150px;
    这表示 top padding 值为 50px,leftright padding 值为 100px,bottom padding 值为 150px。
  • padding: 50px 100px;
    这表示 topbottom padding 值为 50px,leftright padding 值为 100px。
  • padding: 50px;
    这设置了 top, right, bottomleft padding 的相等值。

示例

在此示例中,我们使用简写属性 padding 来指定内容和 border 之间的空间。

输出

Margin v/s Padding
下一个主题Class vs Id