Bootstrap
Tutorial Bootstrap: Flexbox en Bootstrap
Bootstrap: Aprende Flexbox en Bootstrap para crear layouts responsivos y eficientes. Descubre cómo gestionar la disposición y alineación de elementos con utilidades Flex.
Aprende Bootstrap GRATIS y certifícateIntroducción a Flexbox en Bootstrap CSS
Flexbox es un módulo de diseño de CSS que proporciona una manera más eficiente de distribuir espacio entre los elementos de un contenedor y alinear los elementos dentro del mismo. Bootstrap integra de manera completa las funcionalidades de Flexbox, permitiendo la creación de diseños flexibles y adaptativos de forma sencilla y rápida.
El concepto básico de Flexbox se basa en dos componentes principales: el contenedor flexible (flex container) y los elementos flexibles (flex items). El contenedor flexible es un elemento que contiene uno o más elementos flexibles. Al aplicar las propiedades de Flexbox al contenedor, se pueden controlar la dirección, alineación y distribución de los elementos flexibles.
Para utilizar Flexbox en Bootstrap, se emplean las clases utilitarias predefinidas que simplifican su uso sin necesidad de escribir CSS personalizado. A continuación, se presentan algunas de las clases más importantes y su funcionamiento:
d-flex
: establece un elemento como contenedor flexible.flex-row
: establece la dirección de los elementos flexibles en una fila horizontal (por defecto).flex-column
: establece la dirección de los elementos flexibles en una columna vertical.justify-content-*
: controla la distribución del espacio entre y alrededor de los elementos flexibles a lo largo del eje principal. Las opciones incluyenstart
(inicio),end
(final),center
(centro),between
(entre),around
(alrededor) yevenly
(igualmente).align-items-*
: controla la alineación de los elementos flexibles a lo largo del eje transversal. Las opciones incluyenstart
,end
,center
,baseline
ystretch
.flex-wrap
: permite que los elementos flexibles se envuelvan en varias líneas si es necesario.
Ejemplo básico de uso de Flexbox en Bootstrap:
<div class="d-flex flex-row justify-content-between align-items-center">
<div class="p-2">Elemento 1</div>
<div class="p-2">Elemento 2</div>
<div class="p-2">Elemento 3</div>
</div>
En este ejemplo, el contenedor div
se establece como un contenedor flexible con la clase d-flex
. Los elementos flexibles dentro del contenedor se disponen en una fila (flex-row
), se distribuyen equitativamente con espacios entre ellos (justify-content-between
) y se alinean al centro a lo largo del eje transversal (align-items-center
).
Además de las clases utilitarias, Bootstrap ofrece combinaciones avanzadas para crear diseños complejos utilizando Flexbox. Por ejemplo, la clase order-*
permite cambiar el orden visual de los elementos flexibles sin alterar el HTML original:
<div class="d-flex flex-row">
<div class="p-2 order-3">Elemento 1</div>
<div class="p-2 order-1">Elemento 2</div>
<div class="p-2 order-2">Elemento 3</div>
</div>
En este caso, aunque Elemento 1
aparece primero en el HTML, se renderiza en tercer lugar debido a la clase order-3
. Elemento 2
se renderiza primero y Elemento 3
en segundo lugar, gracias a las clases order-1
y order-2
, respectivamente.
Flexbox también permite la creación de elementos flexibles que crecen o encogen según el espacio disponible utilizando las clases flex-grow-*
y flex-shrink-*
. Estas clases son útiles para crear diseños adaptativos:
<div class="d-flex">
<div class="p-2 flex-grow-1">Elemento 1 (crece)</div>
<div class="p-2">Elemento 2</div>
<div class="p-2">Elemento 3</div>
</div>
Aquí, Elemento 1
crecerá para ocupar el espacio disponible, mientras que Elemento 2
y Elemento 3
mantendrán su tamaño original.
El uso de Flexbox en Bootstrap permite crear diseños de manera eficiente y adaptativa, aprovechando las utilidades predefinidas para controlar la disposición y alineación de los elementos sin necesidad de escribir CSS personalizado.
Contenedor Flex y su configuración en Bootstrap
Para utilizar el módulo Flexbox en Bootstrap, es esencial configurar correctamente un contenedor flex utilizando las clases de utilidad disponibles. Bootstrap ofrece una variedad de clases para facilitar la creación y gestión de elementos flexibles y adaptativos. A continuación, se describen las configuraciones principales para un contenedor flex:
Habilitar comportamientos Flex
Para convertir un elemento en un contenedor flex, aplica las clases .d-flex
o .d-inline-flex
. Estas clases transforman los elementos hijos directos en elementos flexibles.
<div class="d-flex p-2">
¡Soy un contenedor flex!
</div>
<div class="d-inline-flex p-2">
¡Soy un contenedor flex en línea!
</div>
Bootstrap también proporciona variaciones adaptativas para habilitar comportamientos flex en distintos tamaños de pantalla:
<div class="d-sm-flex p-2">Flex en pantalla pequeña</div>
<div class="d-md-flex p-2">Flex en pantalla mediana</div>
<div class="d-lg-flex p-2">Flex en pantalla grande</div>
<div class="d-xl-flex p-2">Flex en pantalla extra grande</div>
<div class="d-xxl-flex p-2">Flex en pantalla extra extra grande</div>
Dirección de los elementos Flex
La dirección de los elementos dentro de un contenedor flex se puede controlar usando las utilidades de dirección. Por defecto, la dirección es horizontal (row
), pero puedes ajustarla según tus necesidades:
<div class="d-flex flex-row mb-3">
<div class="p-2">Elemento Flex 1</div>
<div class="p-2">Elemento Flex 2</div>
<div class="p-2">Elemento Flex 3</div>
</div>
<div class="d-flex flex-column">
<div class="p-2">Elemento Flex 1</div>
<div class="p-2">Elemento Flex 2</div>
<div class="p-2">Elemento Flex 3</div>
</div>
Las clases .flex-row
y .flex-column
pueden ser revertidas utilizando .flex-row-reverse
y .flex-column-reverse
, respectivamente.
Alineación de elementos Flex
Bootstrap proporciona utilidades para alinear elementos tanto en el eje principal (horizontal) como en el eje secundario (vertical). Para alinear elementos en el eje principal, usa las clases justify-content
:
<div class="d-flex justify-content-around">
<div class="p-2">Elemento 1</div>
<div class="p-2">Elemento 2</div>
<div class="p-2">Elemento 3</div>
</div>
Para la alineación en el eje secundario, utiliza las clases align-items
:
<div class="d-flex align-items-center">
<div class="p-2">Elemento 1</div>
<div class="p-2">Elemento 2</div>
<div class="p-2">Elemento 3</div>
</div>
Envoltura de elementos Flex
Controla cómo se envuelven los elementos flex en un contenedor con las utilidades de envoltura (wrap
). Puedes especificar sin envoltura (nowrap
), con envoltura (wrap
) o envoltura inversa (wrap-reverse
):
<div class="d-flex flex-wrap">
<div class="p-2">Elemento 1</div>
<div class="p-2">Elemento 2</div>
<div class="p-2">Elemento 3</div>
</div>
Orden de los elementos Flex
Modifica el orden visual de los elementos flex con las utilidades de order
. Bootstrap proporciona clases para definir el orden del 0 al 5, así como para hacer un elemento el primero o el último.
<div class="d-flex">
<div class="order-3 p-2">Elemento 1</div>
<div class="order-1 p-2">Elemento 2</div>
<div class="order-2 p-2">Elemento 3</div>
</div>
Márgenes automáticos
Los márgenes automáticos son útiles para centrar elementos individuales dentro de un contenedor flex. Usando las utilidades de márgenes (.me-auto
, .ms-auto
), puedes distribuir el espacio entre los elementos flexiblemente:
<div class="d-flex">
<div class="me-auto p-2">Elemento a la izquierda</div>
<div class="p-2">Elemento estático</div>
<div class="ms-auto p-2">Elemento a la derecha</div>
</div>
Crecimiento y contracción
Utiliza las utilidades flex-grow
y flex-shrink
para controlar cómo los elementos flex crecen o se contraen:
<div class="d-flex">
<div class="p-2 flex-grow-1">Elemento creciente</div>
<div class="p-2">Elemento estático</div>
</div>
<div class="d-flex">
<div class="p-2 w-100">Elemento estático</div>
<div class="p-2 flex-shrink-1">Elemento contrayente</div>
</div>
Estas configuraciones te ayudarán a gestionar y personalizar la disposición de los elementos en tu diseño responsive usando Flexbox en Bootstrap.
Alineación y distribución de elementos Flex
En Bootstrap, la alineación y distribución de los elementos flexibles dentro de un contenedor flex se controlan mediante utilidades especiales que permiten modificar tanto el eje principal (main axis) como el eje transversal (cross axis), así como ajustar el espacio adicional. Estas utilidades incluyen justify-content
, align-items
, align-self
, align-content
y auto-margins
.
La propiedad justify-content
se utiliza para alinear elementos en el eje principal. Las clases disponibles son:
.justify-content-start
.justify-content-end
.justify-content-center
.justify-content-between
.justify-content-around
.justify-content-evenly
Ejemplo de uso de estas clases:
<div class="d-flex justify-content-start">
<div class="p-2">Elemento 1</div>
<div class="p-2">Elemento 2</div>
<div class="p-2">Elemento 3</div>
</div>
<div class="d-flex justify-content-end">
<div class="p-2">Elemento 1</div>
<div class="p-2">Elemento 2</div>
<div class="p-2">Elemento 3</div>
</div>
<div class="d-flex justify-content-center">
<div class="p-2">Elemento 1</div>
<div class="p-2">Elemento 2</div>
<div class="p-2">Elemento 3</div>
</div>
<div class="d-flex justify-content-between">
<div class="p-2">Elemento 1</div>
<div class="p-2">Elemento 2</div>
<div class="p-2">Elemento 3</div>
</div>
<div class="d-flex justify-content-around">
<div class="p-2">Elemento 1</div>
<div class="p-2">Elemento 2</div>
<div class="p-2">Elemento 3</div>
</div>
<div class="d-flex justify-content-evenly">
<div class="p-2">Elemento 1</div>
<div class="p-2">Elemento 2</div>
<div class="p-2">Elemento 3</div>
</div>
Para la alineación en el eje transversal, se utilizan las clases de align-items
:
.align-items-start
.align-items-end
.align-items-center
.align-items-baseline
.align-items-stretch
Ejemplo de uso de align-items
:
<div class="d-flex align-items-start border border-primary" style="height: 100px">
<div class="p-2 border">Elemento 1</div>
<div class="p-2 border">Elemento 2</div>
<div class="p-2 border">Elemento 3</div>
</div>
<div class="d-flex align-items-end border border-primary" style="height: 100px">
<div class="p-2 border">Elemento 1</div>
<div class="p-2 border">Elemento 2</div>
<div class="p-2 border">Elemento 3</div>
</div>
<div class="d-flex align-items-center border border-primary" style="height: 100px">
<div class="p-2 border">Elemento 1</div>
<div class="p-2 border">Elemento 2</div>
<div class="p-2 border">Elemento 3</div>
</div>
<div class="d-flex align-items-baseline border border-primary" style="height: 100px">
<div class="p-2 border">Elemento 1</div>
<div class="p-2 border">Elemento 2</div>
<div class="p-2 border">Elemento 3</div>
</div>
<div class="d-flex align-items-stretch border border-primary" style="height: 100px">
<div class="p-2 border">Elemento 1</div>
<div class="p-2 border">Elemento 2</div>
<div class="p-2 border">Elemento 3</div>
</div>
Además de align-items
, align-self
permite controlar individualmente la alineación de un solo elemento flex en el eje transversal:
.align-self-auto
.align-self-start
.align-self-end
.align-self-center
.align-self-baseline
.align-self-stretch
Ejemplo de uso de align-self
:
<div class="d-flex border border-primary" style="height: 100px;">
<div class="align-self-start p-2 border">Elemento 1</div>
<div class="align-self-end p-2 border">Elemento 2</div>
<div class="align-self-center p-2 border">Elemento 3</div>
</div>
align-content
gestiona el espacio entre las filas de elementos flex cuando se habilita el wrapping (flex-wrap):
.align-content-start
.align-content-end
.align-content-center
.align-content-between
.align-content-around
.align-content-stretch
Ejemplo de uso de align-content
:
<div class="d-flex flex-wrap align-content-start border border-primary" style="height: 100px;">
<div class="p-2 border">Elemento 1</div>
<div class="p-2 border">Elemento 2</div>
<div class="p-2 border">Elemento 3</div>
<div class="p-2 border">Elemento 4</div>
<div class="p-2 border">Elemento 5</div>
<div class="p-2 border">Elemento 6</div>
</div>
<div class="d-flex flex-wrap align-content-end border border-primary" style="height: 100px;">
<div class="p-2 border">Elemento 1</div>
<div class="p-2 border">Elemento 2</div>
<div class="p-2 border">Elemento 3</div>
<div class="p-2 border">Elemento 4</div>
<div class="p-2 border">Elemento 5</div>
<div class="p-2 border">Elemento 6</div>
</div>
Por último, los márgenes automáticos (auto-margins
) permiten distribuir el espacio restante de manera flexible usando las clases me-auto
y ms-auto
:
<div class="d-flex">
<div class="me-auto p-2">Elemento A la Izquierda</div>
<div class="p-2">Elemento Estático</div>
<div class="ms-auto p-2">Elemento A la Derecha</div>
</div>
Orden y crecimiento de los elementos Flex en Bootstrap
Para controlar el orden y el crecimiento de los elementos flexibles dentro de un contenedor en Bootstrap, se proporcionan utilidades específicas que permiten una flexibilidad completa en la disposición de los elementos.
Bootstrap ofrece una serie de clases utilitarias para modificar el orden visual, así como para gestionar el crecimiento y contracción de los elementos en un contenedor flex. Aquí se muestra cómo utilizar estas utilidades de manera avanzada:
Modificar el orden de los elementos
Bootstrap permite cambiar fácilmente el orden visual de los elementos flexibles mediante las utilidades order
. Puedes definir el orden de un elemento de 0 a 5, o establecerlo como el primero (order-first
) o el último (order-last
). Además, hay variaciones adaptativas disponibles según el tamaño de pantalla.
<div class="d-flex">
<div class="order-3 p-2">Primer elemento</div>
<div class="order-1 p-2">Segundo elemento</div>
<div class="order-2 p-2">Tercer elemento</div>
</div>
Variaciones adaptativas para order
:
.order-0
.order-1
.order-2
.order-3
.order-4
.order-5
.order-first
.order-last
.order-sm-0
,.order-sm-1
, ...,.order-sm-last
.order-md-0
,.order-md-1
, ...,.order-md-last
.order-lg-0
,.order-lg-1
, ...,.order-lg-last
.order-xl-0
,.order-xl-1
, ...,.order-xl-last
.order-xxl-0
,.order-xxl-1
, ...,.order-xxl-last
<div class="d-flex">
<div class="order-last p-2">Último elemento</div>
<div class="order-first p-2">Primer elemento</div>
<div class="order-1 p-2">Segundo elemento</div>
</div>
Crecimiento de los elementos (flex-grow)
Utiliza las clases .flex-grow-*
para permitir que los elementos crezcan para ocupar el espacio disponible. Las clases .flex-grow-0
y .flex-grow-1
gestionan esta capacidad. Por defecto, ningún elemento crece (.flex-grow-0
).
<div class="d-flex">
<div class="p-2 flex-grow-1">Elemento que crece</div>
<div class="p-2">Elemento estático</div>
<div class="p-2">Elemento estático</div>
</div>
Variaciones adaptativas para flex-grow
:
.flex-grow-0
.flex-grow-1
.flex-sm-grow-0
,.flex-sm-grow-1
.flex-md-grow-0
,.flex-md-grow-1
.flex-lg-grow-0
,.flex-lg-grow-1
.flex-xl-grow-0
,.flex-xl-grow-1
.flex-xxl-grow-0
,.flex-xxl-grow-1
Contracción de los elementos (flex-shrink)
Las clases .flex-shrink-*
permiten que un elemento se contraiga si es necesario para permitir más espacio a otros elementos. Utiliza .flex-shrink-0
y .flex-shrink-1
, donde por defecto los elementos no se contraen (.flex-shrink-1
).
<div class="d-flex">
<div class="p-2 w-100">Elemento grande</div>
<div class="p-2 flex-shrink-1">Elemento que se contrae</div>
</div>
Variaciones adaptativas para flex-shrink
:
.flex-shrink-0
.flex-shrink-1
.flex-sm-shrink-0
,.flex-sm-shrink-1
.flex-md-shrink-0
,.flex-md-shrink-1
.flex-lg-shrink-0
,.flex-lg-shrink-1
.flex-xl-shrink-0
,.flex-xl-shrink-1
.flex-xxl-shrink-0
,.flex-xxl-shrink-1
El uso combinado de estas utilidades facilita la creación de layouts complejos y adaptativos, ajustando la disposición y comportamiento de los elementos flexibles de manera avanzada y personalizada.
Ejercicios de esta lección Flexbox en Bootstrap
Evalúa tus conocimientos de esta lección Flexbox en Bootstrap con nuestros retos de programación de tipo Test, Puzzle, Código y Proyecto con VSCode, guiados por IA.
Listado y formulario de productos en Bootstrap CSS
Utilidades de colores y fondo
Instalación de Bootstrap
Página web completa con Bootstrap
Tipografía y fuentes en Bootstrap
Clases de utilidad
Flexbox en Bootstrap
Utilidades de espaciado y alineación
Conocimiento general de Bootstrap
Conocimiento general de Bootstrap
Fundamentos del sistema de grid de Bootstrap
Imágenes responsive en Bootstrap
Proyecto blog de artículos con Bootstrap CSS
Introducción a Bootstrap
Formularios y validación
Modales y ventanas emergentes
Navbars y menús de navegación en Bootstrap
Componentes de Bootstrap
Todas las lecciones de Bootstrap
Accede a todas las lecciones de Bootstrap y aprende con ejemplos prácticos de código y ejercicios de programación con IDE web sin instalar nada.
Introducción A Bootstrap Css
Introducción Y Entorno
Instalación De Bootstrap Css
Introducción Y Entorno
Tipografía Y Fuentes En Bootstrap
Fundamentos Y Layout
Imágenes Responsive En Bootstrap
Fundamentos Y Layout
Fundamentos Del Sistema De Grid De Bootstrap
Fundamentos Y Layout
Flexbox En Bootstrap
Fundamentos Y Layout
Componentes De Bootstrap
Componentes
Navbars Y Menús De Navegación En Bootstrap
Componentes
Formularios Y Validación
Componentes
Modales Y Ventanas Emergentes
Componentes
Clases De Utilidad
Utilidades Y Helpers
Utilidades De Espaciado Y Alineación
Utilidades Y Helpers
Utilidades De Colores Y Fondo
Utilidades Y Helpers
Conocimiento General De Bootstrap
Evaluación
Conocimiento General De Bootstrap
Evaluación
Certificados de superación de Bootstrap
Supera todos los ejercicios de programación del curso de Bootstrap y obtén certificados de superación para mejorar tu currículum y tu empleabilidad.
En esta lección
Objetivos de aprendizaje de esta lección
- Configurar contenedores Flex usando clases de Bootstrap.
- Controlar la dirección y alineación de elementos Flex.
- Implementar crecimiento y contracción de elementos.
- Utilizar márgenes automáticos para distribuir elementos.
- Aplicar utilidades de orden y envoltura de elementos.