Espaciado (Spacing)
Bootstrap incluye una amplia gama de clases de utilidad responsivas y abreviadas de margen (margin), relleno (padding) y espacio (gap) para modificar la apariencia de un elemento.
Margen y relleno (Margin and padding)
Asigna valores de margin o padding adaptables a dispositivos móviles a un elemento o 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 a 3rem.
¿Utilizas el módulo de diseño CSS Grid? Considera usar la utilidad gap en su lugar.
Notación
Las utilidades de espaciado que se aplican a todos los puntos de interrupción, desde xs hasta xxl, no tienen abreviatura de punto de interrupción. Esto se debe a que esas clases se aplican desde min-width: 0 en adelante y, por lo tanto, no están vinculadas por una media query. Los puntos de interrupción restantes, sin embargo, incluyen una abreviatura de punto de interrupción.
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 establecen el margen (margin)p: para clases que establecen el relleno (padding)
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-rightin LTR,margin-leftopadding-leften RTLx: para clases que establecen tanto*-leftcomo*-righty: para clases que establecen tanto*-topcomo*-bottom- blanco: 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 agregar más tamaños agregando entradas a la variable de mapa Sass $spacers.)
Ejemplos
Aquí tienes 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 a nivel de bloque de ancho fijo (es decir, contenido que tiene display: block y un ancho (width) establecido) configurando los márgenes horizontales en auto.
<div class="mx-auto p-2" style="width: 200px;">
Elemento centrado
</div>
Margen negativo (Negative margin)
En CSS, las propiedades de margen (margin) pueden utilizar valores negativos (el relleno, padding, no puede). Estos márgenes negativos están deshabilitados por defecto, pero se pueden habilitar en Sass configurando $enable-negative-margins: true.
La sintaxis es casi la misma que la de las utilidades de margen positivo predeterminadas, pero agregando n antes del tamaño solicitado. Aquí tienes una clase de ejemplo que es lo opuesto a .mt-1:
.mt-n1 {
margin-top: -0.25rem !important;
}
Espacio (Gap)
Al usar display: grid o display: flex, puedes hacer uso de las utilidades gap en el elemento padre. Esto puede evitar tener que agregar utilidades de margen a los elementos secundarios individuales de un contenedor de cuadrícula o flex. Las utilidades de espacio (gap) son responsivas de forma predeterminada y se generan a través de nuestra API de utilidades, basada en el mapa Sass $spacers.
<div style="grid-template-columns: 1fr 1fr;" class="d-grid gap-3">
<div class="p-2">Elemento de cuadrícula 1</div>
<div class="p-2">Elemento de cuadrícula 2</div>
<div class="p-2">Elemento de cuadrícula 3</div>
<div class="p-2">Elemento de cuadrícula 4</div>
</div> El soporte incluye opciones responsivas para todos los puntos de interrupción de cuadrícula de Bootstrap, así como seis tamaños del mapa $spacers (0–5). No existe una clase de utilidad .gap-auto ya que es efectivamente lo mismo que .gap-0.
row-gap
row-gap establece el espacio vertical entre los elementos secundarios en el contenedor especificado.
<div style="grid-template-columns: 1fr 1fr;" class="d-grid gap-0 row-gap-3">
<div class="p-2">Elemento de cuadrícula 1</div>
<div class="p-2">Elemento de cuadrícula 2</div>
<div class="p-2">Elemento de cuadrícula 3</div>
<div class="p-2">Elemento de cuadrícula 4</div>
</div> column-gap
column-gap establece el espacio horizontal entre los elementos secundarios en el contenedor especificado.
<div style="grid-template-columns: 1fr 1fr;" class="d-grid gap-0 column-gap-3">
<div class="p-2">Elemento de cuadrícula 1</div>
<div class="p-2">Elemento de cuadrícula 2</div>
<div class="p-2">Elemento de cuadrícula 3</div>
<div class="p-2">Elemento de cuadrícula 4</div>
</div> CSS
Mapas Sass
Las utilidades de espaciado se declaran a través del 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,
);
API de utilidades de Sass
Las utilidades de espaciado se declaran en nuestra API de utilidades en scss/_utilities.scss. Aprende a utilizar 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
),
// Gap utility
"gap": (
responsive: true,
property: gap,
class: gap,
values: $spacers
),
"row-gap": (
responsive: true,
property: row-gap,
class: row-gap,
values: $spacers
),
"column-gap": (
responsive: true,
property: column-gap,
class: column-gap,
values: $spacers
),