Espaciado
Bootstrap incluye una amplia gama de clases utilitarias responsivas abreviadas de margin, padding, y gap para modificar la apariencia de un elemento.
Margen y padding
Asigna valores de margin o padding responsivos a un elemento o a
un subconjunto de sus lados con clases abreviadas. Incluye soporte para propiedades individuales, todas las
propiedades, y propiedades verticales y horizontales. Las clases se construyen a partir de un mapa Sass
predeterminado que va desde .25rem hasta 3rem.
¿Usas el módulo de layout CSS Grid? Considera usar la utilidad gap.
Notación
Las utilidades de espaciado que se aplican a todos los breakpoints, desde xs
hasta xxl, no tienen abreviatura de breakpoint. Esto se debe a que esas clases se aplican desde
min-width: 0 hacia arriba, y por lo tanto no están limitadas por una media query. Los breakpoints
restantes, sin embargo, sí incluyen una abreviatura de breakpoint.
Las clases se nombran usando el formato {property}{sides}-{size} para
xs y {property}{sides}-{breakpoint}-{size} para sm, md,
lg, xl, y xxl.
Donde property es uno de:
m- para clases que establecenmarginp- para clases que establecenpadding
Donde sides es uno de:
t- para clases que establecenmargin-topopadding-topb- para clases que establecenmargin-bottomopadding-bottoms- (start) para clases que establecenmargin-leftopadding-leften LTR,margin-rightopadding-righten RTLe- (end) para clases que establecenmargin-rightopadding-righten LTR,margin-leftopadding-leften RTLx- para clases que establecen tanto*-leftcomo*-righty- para clases que establecen tanto*-topcomo*-bottom- blank - para clases que establecen un
marginopaddingen los 4 lados del elemento
Donde size es uno de:
0- para clases que eliminan elmarginopaddingestableciéndolo en01- (por defecto) para clases que establecen elmarginopaddinga$spacer * .252- (por defecto) para clases que establecen elmarginopaddinga$spacer * .53- (por defecto) para clases que establecen elmarginopaddinga$spacer4- (por defecto) para clases que establecen elmarginopaddinga$spacer * 1.55- (por defecto) para clases que establecen elmarginopaddinga$spacer * 3auto- para clases que establecen elmarginen auto
(Puedes añadir más tamaños agregando entradas a la variable del mapa Sass
$spacers.)
Ejemplos
Aquí hay algunos ejemplos representativos de estas clases:
.mt-0 {
margin-top: 0 !important;
}
.ms-1 {
margin-left: ($spacer * .25) !important;
}
.px-2 {
padding-left: ($spacer * .5) !important;
padding-right: ($spacer * .5) !important;
}
.p-3 {
padding: $spacer !important;
}
Centrado horizontal
Además, Bootstrap también incluye una clase .mx-auto para centrar
horizontalmente contenido de nivel bloque con ancho fijo—es decir, contenido que tiene
display: block y un width establecido—mediante la configuración de los márgenes
horizontales en auto.
<div class="mx-auto" style="width: 200px;">
Centered element
</div>
Margin negativo
En CSS, las propiedades de margin pueden utilizar valores negativos
(padding no puede). Estos márgenes negativos están desactivados por defecto,
pero se pueden activar en Sass estableciendo $enable-negative-margins: true.
La sintaxis es casi la misma que la de las utilidades de margin positivas predeterminadas,
pero con la adición de n antes del tamaño solicitado. Aquí hay una clase de ejemplo que es la
opuesta a .mt-1:
.mt-n1 {
margin-top: -0.25rem !important;
}
Gap
Al usar display: grid, puedes hacer uso de las utilidades de gap
en el contenedor grid padre. Esto puede ahorrar tener que añadir utilidades de margin a elementos grid
individuales (hijos de un contenedor display: grid). Las utilidades de gap son responsivas por
defecto, y se generan mediante nuestra API de utilidades, basadas en el mapa Sass $spacers.
<div class="d-grid gap-3">
<div class="p-2 bg-light border">Grid item 1</div>
<div class="p-2 bg-light border">Grid item 2</div>
<div class="p-2 bg-light border">Grid item 3</div>
</div>
El soporte incluye opciones responsivas para todos los breakpoints de la grid de Bootstrap,
así como seis tamaños del mapa $spacers (0–5). No hay una clase
utilitaria .gap-auto ya que es efectivamente lo mismo que .gap-0.
Sass
Mapas
Las utilidades de espaciado se declaran mediante un mapa Sass y luego se generan con nuestra API de utilidades.
$spacer: 1rem;
$spacers: (
0: 0,
1: $spacer * .25,
2: $spacer * .5,
3: $spacer,
4: $spacer * 1.5,
5: $spacer * 3,
);
$negative-spacers: if($enable-negative-margins, negativify-map($spacers), null);
Utilities API
Las utilidades de espaciado se declaran en nuestra API de utilidades en
scss/_utilities.scss. Aprende cómo usar la API
de utilidades.
"margin": (
responsive: true,
property: margin,
class: m,
values: map-merge($spacers, (auto: auto))
),
"margin-x": (
responsive: true,
property: margin-right margin-left,
class: mx,
values: map-merge($spacers, (auto: auto))
),
"margin-y": (
responsive: true,
property: margin-top margin-bottom,
class: my,
values: map-merge($spacers, (auto: auto))
),
"margin-top": (
responsive: true,
property: margin-top,
class: mt,
values: map-merge($spacers, (auto: auto))
),
"margin-end": (
responsive: true,
property: margin-right,
class: me,
values: map-merge($spacers, (auto: auto))
),
"margin-bottom": (
responsive: true,
property: margin-bottom,
class: mb,
values: map-merge($spacers, (auto: auto))
),
"margin-start": (
responsive: true,
property: margin-left,
class: ms,
values: map-merge($spacers, (auto: auto))
),
// Negative margin utilities
"negative-margin": (
responsive: true,
property: margin,
class: m,
values: $negative-spacers
),
"negative-margin-x": (
responsive: true,
property: margin-right margin-left,
class: mx,
values: $negative-spacers
),
"negative-margin-y": (
responsive: true,
property: margin-top margin-bottom,
class: my,
values: $negative-spacers
),
"negative-margin-top": (
responsive: true,
property: margin-top,
class: mt,
values: $negative-spacers
),
"negative-margin-end": (
responsive: true,
property: margin-right,
class: me,
values: $negative-spacers
),
"negative-margin-bottom": (
responsive: true,
property: margin-bottom,
class: mb,
values: $negative-spacers
),
"negative-margin-start": (
responsive: true,
property: margin-left,
class: ms,
values: $negative-spacers
),
// Padding utilities
"padding": (
responsive: true,
property: padding,
class: p,
values: $spacers
),
"padding-x": (
responsive: true,
property: padding-right padding-left,
class: px,
values: $spacers
),
"padding-y": (
responsive: true,
property: padding-top padding-bottom,
class: py,
values: $spacers
),
"padding-top": (
responsive: true,
property: padding-top,
class: pt,
values: $spacers
),
"padding-end": (
responsive: true,
property: padding-right,
class: pe,
values: $spacers
),
"padding-bottom": (
responsive: true,
property: padding-bottom,
class: pb,
values: $spacers
),
"padding-start": (
responsive: true,
property: padding-left,
class: ps,
values: $spacers
),