Flex
Administre rápidamente el diseño, la alineación y el tamaño de las columnas de la cuadrícula, la navegación, los componentes y más con un conjunto completo de utilidades receptivas de Flexbox. Para implementaciones más complejas, puede ser necesario CSS personalizado.
Habilitar comportamientos flexibles
Aplique
display
utilidades para crear un contenedor flexbox y transforme
los elementos
secundarios
directos
en
elementos
flexibles.
Los contenedores y artículos flexibles se pueden modificar aún más con
propiedades flexibles adicionales.
<div class="d-flex p-2 bd-highlight">I'm a flexbox container!</div>
<div class="d-inline-flex p-2 bd-highlight">I'm an inline flexbox container!</div>
También existen variaciones sensibles para
.d-flex
y
.d-inline-flex
.
.d-flex
.d-inline-flex
.d-sm-flex
.d-sm-inline-flex
.d-md-flex
.d-md-inline-flex
.d-lg-flex
.d-lg-inline-flex
.d-xl-flex
.d-xl-inline-flex
Dirección
Establezca la dirección de los elementos flexibles en un contenedor
flexible con utilidades de dirección.
En la mayoría de los casos, puede omitir la clase horizontal aquí como es
el navegador predeterminado
row
.
Sin embargo, puede encontrar situaciones en las que necesite establecer
explícitamente este valor (como diseños receptivos).
Úselo
.flex-row
para establecer una dirección horizontal (el navegador predeterminado), o
.flex-row-reverse
para iniciar la dirección horizontal desde el lado opuesto.
<div class="d-flex flex-row bd-highlight mb-3">
<div class="p-2 bd-highlight">Flex item 1</div>
<div class="p-2 bd-highlight">Flex item 2</div>
<div class="p-2 bd-highlight">Flex item 3</div>
</div>
<div class="d-flex flex-row-reverse bd-highlight">
<div class="p-2 bd-highlight">Flex item 1</div>
<div class="p-2 bd-highlight">Flex item 2</div>
<div class="p-2 bd-highlight">Flex item 3</div>
</div>
Úselo
.flex-column
para establecer una dirección vertical o
.flex-column-reverse
para iniciar la dirección vertical desde el lado opuesto.
<div class="d-flex flex-column bd-highlight mb-3">
<div class="p-2 bd-highlight">Flex item 1</div>
<div class="p-2 bd-highlight">Flex item 2</div>
<div class="p-2 bd-highlight">Flex item 3</div>
</div>
<div class="d-flex flex-column-reverse bd-highlight">
<div class="p-2 bd-highlight">Flex item 1</div>
<div class="p-2 bd-highlight">Flex item 2</div>
<div class="p-2 bd-highlight">Flex item 3</div>
</div>
También existen variaciones de respuesta para
flex-direction
.
.flex-row
.flex-row-reverse
.flex-column
.flex-column-reverse
.flex-sm-row
.flex-sm-row-reverse
.flex-sm-column
.flex-sm-column-reverse
.flex-md-row
.flex-md-row-reverse
.flex-md-column
.flex-md-column-reverse
.flex-lg-row
.flex-lg-row-reverse
.flex-lg-column
.flex-lg-column-reverse
.flex-xl-row
.flex-xl-row-reverse
.flex-xl-column
.flex-xl-column-reverse
Justificar el contenido
Utilice las
justify-content
utilidades en los contenedores de flexbox para cambiar la alineación de los
elementos flexibles en el eje principal (el eje x para comenzar, el eje y si
flex-direction: column
).
Elegir
start
(por defecto del navegador),
end
,
center
,
between
, o
around
.
<div class="d-flex justify-content-start">...</div>
<div class="d-flex justify-content-end">...</div>
<div class="d-flex justify-content-center">...</div>
<div class="d-flex justify-content-between">...</div>
<div class="d-flex justify-content-around">...</div>
También existen variaciones de respuesta para
justify-content
.
.justify-content-start
.justify-content-end
.justify-content-center
.justify-content-between
.justify-content-around
.justify-content-sm-start
.justify-content-sm-end
.justify-content-sm-center
.justify-content-sm-between
.justify-content-sm-around
.justify-content-md-start
.justify-content-md-end
.justify-content-md-center
.justify-content-md-between
.justify-content-md-around
.justify-content-lg-start
.justify-content-lg-end
.justify-content-lg-center
.justify-content-lg-between
.justify-content-lg-around
.justify-content-xl-start
.justify-content-xl-end
.justify-content-xl-center
.justify-content-xl-between
.justify-content-xl-around
Alinear elementos
Use las
align-items
utilidades en los contenedores de flexbox para cambiar la alineación de los
elementos flexibles en el eje transversal (el eje y para comenzar, el eje x si
flex-direction: column
).
Elegir
start
,
end
,
center
,
baseline
, o
stretch
(por defecto del navegador).
<div class="d-flex align-items-start">...</div>
<div class="d-flex align-items-end">...</div>
<div class="d-flex align-items-center">...</div>
<div class="d-flex align-items-baseline">...</div>
<div class="d-flex align-items-stretch">...</div>
También existen variaciones de respuesta para
align-items
.
.align-items-start
.align-items-end
.align-items-center
.align-items-baseline
.align-items-stretch
.align-items-sm-start
.align-items-sm-end
.align-items-sm-center
.align-items-sm-baseline
.align-items-sm-stretch
.align-items-md-start
.align-items-md-end
.align-items-md-center
.align-items-md-baseline
.align-items-md-stretch
.align-items-lg-start
.align-items-lg-end
.align-items-lg-center
.align-items-lg-baseline
.align-items-lg-stretch
.align-items-xl-start
.align-items-xl-end
.align-items-xl-center
.align-items-xl-baseline
.align-items-xl-stretch
Alinearse
Utilice las
align-self
utilidades en los elementos de flexbox para cambiar individualmente su
alineación en el eje transversal (el eje y para comenzar, el eje x si
flex-direction: column
).
Elija entre las mismas opciones que
align-items
:
start
,
end
,
center
,
baseline
, o
stretch
(por defecto del navegador).
<div class="align-self-start">Aligned flex item</div>
<div class="align-self-end">Aligned flex item</div>
<div class="align-self-center">Aligned flex item</div>
<div class="align-self-baseline">Aligned flex item</div>
<div class="align-self-stretch">Aligned flex item</div>
También existen variaciones de respuesta para
align-self
.
.align-self-start
.align-self-end
.align-self-center
.align-self-baseline
.align-self-stretch
.align-self-sm-start
.align-self-sm-end
.align-self-sm-center
.align-self-sm-baseline
.align-self-sm-stretch
.align-self-md-start
.align-self-md-end
.align-self-md-center
.align-self-md-baseline
.align-self-md-stretch
.align-self-lg-start
.align-self-lg-end
.align-self-lg-center
.align-self-lg-baseline
.align-self-lg-stretch
.align-self-xl-start
.align-self-xl-end
.align-self-xl-center
.align-self-xl-baseline
.align-self-xl-stretch
Llenar
Utilice la
.flex-fill
clase en una serie de elementos hermanos para forzarlos a anchos iguales a su contenido (o anchos iguales si su
contenido no supera sus cuadros de borde) mientras ocupa todo el espacio horizontal disponible.
<div class="d-flex bd-highlight">
<div class="p-2 flex-grow-1 bd-highlight">Flex item</div>
<div class="p-2 bd-highlight">Flex item</div>
<div class="p-2 bd-highlight">Third flex item</div>
</div>
También existen variaciones de respuesta para
flex-fill
.
.flex-fill
.flex-sm-fill
.flex-md-fill
.flex-lg-fill
.flex-xl-fill
Crecer y encogerse
Utilice las
.flex-grow-*
utilidades para alternar la capacidad de un elemento flexible de crecer
para llenar el espacio disponible.
En el siguiente ejemplo, los
.flex-grow-1
elementos utilizan todo el espacio disponible que pueden, mientras que
permiten que los dos elementos flexibles restantes tengan el espacio necesario.
<div class="d-flex bd-highlight">
<div class="p-2 flex-grow-1 bd-highlight">Flex item</div>
<div class="p-2 bd-highlight">Flex item</div>
<div class="p-2 bd-highlight">Third flex item</div>
</div>
Utilice las
.flex-shrink-*
utilidades para alternar la capacidad de un elemento flexible de encogerse
si es necesario.
En el siguiente ejemplo, el segundo elemento flexible con
.flex-shrink-1
se ve obligado a ajustar su contenido a una nueva línea, "encogiéndose"
para permitir más espacio para el elemento flexible anterior con
.w-100
.
<div class="d-flex bd-highlight">
<div class="p-2 w-100 bd-highlight">Flex item</div>
<div class="p-2 flex-shrink-1 bd-highlight">Flex item</div>
</div>
También existen variaciones sensibles para
flex-grow
y
flex-shrink
.
.flex-{grow|shrink}-0
.flex-{grow|shrink}-1
.flex-sm-{grow|shrink}-0
.flex-sm-{grow|shrink}-1
.flex-md-{grow|shrink}-0
.flex-md-{grow|shrink}-1
.flex-lg-{grow|shrink}-0
.flex-lg-{grow|shrink}-1
.flex-xl-{grow|shrink}-0
.flex-xl-{grow|shrink}-1
Márgenes automáticos
Flexbox puede hacer cosas bastante impresionantes cuando mezcla
alineaciones flexibles con márgenes automáticos.
A continuación se muestran tres ejemplos de cómo controlar elementos flexibles mediante márgenes automáticos:
predeterminado (sin margen automático), empujar dos elementos hacia la derecha (
.mr-auto
) y empujar dos elementos hacia la izquierda (
.ml-auto
).
Desafortunadamente, IE10 e IE11 no son compatibles con los márgenes
automáticos en elementos flexibles cuyo padre tiene un
justify-content
valor
no predeterminado
.
Consulte esta respuesta de StackOverflow
para obtener más detalles.
<div class="d-flex bd-highlight mb-3">
<div class="p-2 bd-highlight">Flex item</div>
<div class="p-2 bd-highlight">Flex item</div>
<div class="p-2 bd-highlight">Flex item</div>
</div>
<div class="d-flex bd-highlight mb-3">
<div class="mr-auto p-2 bd-highlight">Flex item</div>
<div class="p-2 bd-highlight">Flex item</div>
<div class="p-2 bd-highlight">Flex item</div>
</div>
<div class="d-flex bd-highlight mb-3">
<div class="p-2 bd-highlight">Flex item</div>
<div class="p-2 bd-highlight">Flex item</div>
<div class="ml-auto p-2 bd-highlight">Flex item</div>
</div>
Con alinear elementos
Mover verticalmente un elemento de flexión a la parte superior o inferior
de un recipiente mediante la mezcla
align-items
,
flex-direction: column
y
margin-top: auto
o
margin-bottom: auto
.
<div class="d-flex align-items-start flex-column bd-highlight mb-3" style="height: 200px;">
<div class="mb-auto p-2 bd-highlight">Flex item</div>
<div class="p-2 bd-highlight">Flex item</div>
<div class="p-2 bd-highlight">Flex item</div>
</div>
<div class="d-flex align-items-end flex-column bd-highlight mb-3" style="height: 200px;">
<div class="p-2 bd-highlight">Flex item</div>
<div class="p-2 bd-highlight">Flex item</div>
<div class="mt-auto p-2 bd-highlight">Flex item</div>
</div>
Envolver
Cambia cómo se envuelven los artículos flexibles en un contenedor flexible.
Elija entre no envolver en absoluto (el navegador predeterminado) con
.flex-nowrap
, envolver con
.flex-wrap
o envolver al revés con
.flex-wrap-reverse
.
<div class="d-flex flex-nowrap">
...
</div>
<div class="d-flex flex-wrap">
...
</div>
<div class="d-flex flex-wrap-reverse">
...
</div>
También existen variaciones de respuesta para
flex-wrap
.
.flex-nowrap
.flex-wrap
.flex-wrap-reverse
.flex-sm-nowrap
.flex-sm-wrap
.flex-sm-wrap-reverse
.flex-md-nowrap
.flex-md-wrap
.flex-md-wrap-reverse
.flex-lg-nowrap
.flex-lg-wrap
.flex-lg-wrap-reverse
.flex-xl-nowrap
.flex-xl-wrap
.flex-xl-wrap-reverse
Orden
Cambie el
orden
visual
de elementos flexibles específicos con un puñado de
order
utilidades.
Solo proporcionamos opciones para hacer que un artículo sea el primero o el
último, así como un restablecimiento para usar el orden DOM.
Como
order
toma cualquier valor entero (por ejemplo,
5
), agregue CSS personalizado para cualquier valor adicional necesario.
<div class="d-flex flex-nowrap bd-highlight">
<div class="order-3 p-2 bd-highlight">First flex item</div>
<div class="order-2 p-2 bd-highlight">Second flex item</div>
<div class="order-1 p-2 bd-highlight">Third flex item</div>
</div>
También existen variaciones de respuesta para
order
.
.order-0
.order-1
.order-2
.order-3
.order-4
.order-5
.order-6
.order-7
.order-8
.order-9
.order-10
.order-11
.order-12
.order-sm-0
.order-sm-1
.order-sm-2
.order-sm-3
.order-sm-4
.order-sm-5
.order-sm-6
.order-sm-7
.order-sm-8
.order-sm-9
.order-sm-10
.order-sm-11
.order-sm-12
.order-md-0
.order-md-1
.order-md-2
.order-md-3
.order-md-4
.order-md-5
.order-md-6
.order-md-7
.order-md-8
.order-md-9
.order-md-10
.order-md-11
.order-md-12
.order-lg-0
.order-lg-1
.order-lg-2
.order-lg-3
.order-lg-4
.order-lg-5
.order-lg-6
.order-lg-7
.order-lg-8
.order-lg-9
.order-lg-10
.order-lg-11
.order-lg-12
.order-xl-0
.order-xl-1
.order-xl-2
.order-xl-3
.order-xl-4
.order-xl-5
.order-xl-6
.order-xl-7
.order-xl-8
.order-xl-9
.order-xl-10
.order-xl-11
.order-xl-12
Alinear contenido
Use
align-content
utilidades en contenedores FlexBox para alinear los elementos de flexión
juntos
en el eje transversal.
Elegir
start
(por defecto del navegador),
end
,
center
,
between
,
around
, o
stretch
.
Para demostrar estas utilidades, hemos reforzado
flex-wrap: wrap
y aumentado la cantidad de elementos flexibles.
¡Aviso! Esta propiedad no tiene ningún efecto en filas individuales de elementos flexibles.
<div class="d-flex align-content-start flex-wrap">
...
</div>
<div class="d-flex align-content-start flex-wrap">
...
</div>
<div class="d-flex align-content-center flex-wrap">...</div>
<div class="d-flex align-content-between flex-wrap">...</div>
<div class="d-flex align-content-around flex-wrap">...</div>
<div class="d-flex align-content-stretch flex-wrap">...</div>
También existen variaciones de respuesta para
align-content
.
.align-content-start
.align-content-end
.align-content-center
.align-content-around
.align-content-stretch
.align-content-sm-start
.align-content-sm-end
.align-content-sm-center
.align-content-sm-around
.align-content-sm-stretch
.align-content-md-start
.align-content-md-end
.align-content-md-center
.align-content-md-around
.align-content-md-stretch
.align-content-lg-start
.align-content-lg-end
.align-content-lg-center
.align-content-lg-around
.align-content-lg-stretch
.align-content-xl-start
.align-content-xl-end
.align-content-xl-center
.align-content-xl-around
.align-content-xl-stretch