spacing间隔规范(Margin与Padding间距处理)

Bootstrap 4 内置了各种的快速缩进、隔离、填充等间距处理工具,响应余量和填充实用程序类来修改元素的外观。

工作原理

系统提供了一组缩写CSS,并赋予 marginpadding 值,包括对单个属性、所有 属性以及垂直、水平等属性的支持,距离单位是在采用 0.25rem3rem,Class来源于Sass map定义。

缩写CSS符约定

Spacing 通用样式适用于所有屏幕尺寸,从 xsxl各种规格尺寸。因为这些类是从min-width: 0及以上开始引用的,所以不受媒体查询的约束,然而,其余的屏幕断点(设备解析)包含屏幕尺寸缩写。

对于xs屏幕,使用固定格式{property}{sides}-{size} 命名CSS方法,对于r smmdlgxl使用 {property}{sides}-{breakpoint}-{size}格式命名CSS方法。

如果 属性 是下列之一:

  • m - 这个Class属性会设定 margin
  • p - 这个Class属性会设定 padding

边缘 设定:

  • t - 这个Class属性会设定 margin-toppadding-top
  • b - 这个Class属性会设定 margin-bottompadding-bottom
  • l - 这个Class属性会设定 margin-leftpadding-left
  • r - 这个Class属性会设定 margin-rightpadding-right
  • x - 这个Class属性会设定 *-left*-right两个值。
  • y - 这个Class属性会设定 *-top*-bottom两个值
  • 空白 - 这个Class属性会设定 marginpadding 元素的四个边。

尺寸规格定义:

  • 0 - 这个Class属性会设定 marginpadding 的样式值为 0
  • 1 - (默认时)这个Class属性会设定 marginpadding$spacer * .25规格呈现
  • 2 - (默认时) 这个Class属性会设定 marginpadding$spacer * .5规格呈现
  • 3 - (默认时)这个Class属性会设定 marginpadding$spacer规格呈现
  • 4 - (默认时) 这个Class属性会设定marginpadding$spacer * 1.5规格呈现
  • 5 - (默认时)这个Class属性会设定 marginpadding$spacer * 3规格呈现
  • auto - 这个Class属性会设定 margin 值 auto(按浏览器默认值自由展现)。

(你也可以对$spacers的 Sass map 调整,包括添加条目来增加更多尺寸。)

示例

以下是这些Class样式的代表性的示例:

.mt-0 {
  margin-top: 0 !important;
}

.ml-1 {
  margin-left: ($spacer * .25) !important;
}

.px-2 {
  padding-left: ($spacer * .5) !important;
  padding-right: ($spacer * .5) !important;
}

.p-3 {
  padding: $spacer !important;
}

水平居中

此外,Bootstrap也包括一个 .mx-auto class样式,用于固定宽度的盒模型水平居中,具有display: blockwidth 设置水平边距内容的auto居中。

Centered element
<div class="mx-auto" style="width: 200px;">
  Centered element
</div>

负值边距属性

在CSS中, margin性可以使用负值(padding 不能).截至4.2, 我们为上面列出的每个非零整数大小添加了负边际效用(例如, 1, 2, 3, 4, 5).这些实用程序非常适合跨断点自定义网格列沟槽.

语法与默认的正边距实用程序几乎相同,但在请求的大小之前添加了n. 这是一个与.mt-1相反的示例:

.mt-n1 {
  margin-top: -0.25rem !important;
}

这是一个在中(md)断点及以上定制Bootstrap网格的示例.我们用.px-md-5增加了.col填充,然后在父.row上用.mx-md-n5来抵消.

Custom column padding
Custom column padding
<div class="row mx-md-n5">
  <div class="col px-md-5"><div class="p-3 border bg-light">Custom column padding</div></div>
  <div class="col px-md-5"><div class="p-3 border bg-light">Custom column padding</div></div>
</div>