Flexbox es uno de los sistemas de diseño más importantes de CSS. Permite organizar elementos en una página web de forma flexible, distribuir espacios y alinear componentes sin depender de métodos antiguos como los floats. Si estás aprendiendo desarrollo frontend, dominar Flexbox te ayudará a crear interfaces modernas, ordenadas y adaptables a diferentes pantallas.
¿Qué es Flexbox y cómo funciona?
Flexbox funciona mediante dos elementos principales: el contenedor flexible (flex container) y sus elementos hijos (flex items). Para activarlo, basta con aplicar display: flex al contenedor.
.contenedor {
display: flex;
}
A partir de ese momento, los elementos hijos se organizan en una fila por defecto. Imagina tres tarjetas colocadas una al lado de la otra: con Flexbox puedes controlar su posición, separación, alineación y distribución del espacio disponible.
Propiedades esenciales de Flexbox
1. justify-content: distribuir horizontalmente
Esta propiedad controla cómo se distribuyen los elementos sobre el eje principal.
.contenedor {
display: flex;
justify-content: space-between;
}
Con space-between, los elementos quedan separados uniformemente, mientras que center los agrupa en el centro y space-around distribuye espacio alrededor de cada elemento.
2. align-items: alinear verticalmente
Permite alinear los elementos sobre el eje transversal.
.contenedor {
display: flex;
align-items: center;
height: 300px;
}
Por ejemplo, puedes centrar un botón dentro de una sección sin calcular márgenes manualmente. Esta propiedad resulta especialmente útil para encabezados, tarjetas y pantallas de inicio de sesión.
3. flex-direction: cambiar la dirección
Por defecto, los elementos aparecen en una fila. Si necesitas apilarlos verticalmente, utiliza:
.contenedor {
display: flex;
flex-direction: column;
}
También puedes usar row-reverse o column-reverse para invertir el orden visual.
4. gap: controlar la separación
En lugar de añadir márgenes individuales, puedes establecer una distancia uniforme entre los elementos:
.contenedor {
display: flex;
gap: 20px;
}
Esta solución mantiene el diseño limpio y facilita los ajustes posteriores.
Ejemplo práctico: una fila de tarjetas
Imagina que necesitas mostrar tres tarjetas de cursos en una página. Puedes utilizar este código:
<div class="cursos">
<div class="tarjeta">HTML</div>
<div class="tarjeta">CSS</div>
<div class="tarjeta">JavaScript</div>
</div>
.cursos {
display: flex;
justify-content: center;
flex-wrap: wrap;
gap: 20px;
}
.tarjeta {
padding: 30px;
background: #e0e7ff;
border-radius: 12px;
}
El resultado será una fila de tarjetas centradas que podrán pasar a otra línea cuando no haya suficiente espacio. La propiedad flex-wrap es fundamental para crear diseños adaptables.
Consejos para dominar Flexbox
La mejor forma de aprender es experimentar. Cambia justify-content, prueba diferentes valores de align-items y observa cómo se modifica el diseño. También puedes utilizar herramientas como Flexbox Froggy para practicar de manera interactiva.
Recuerda que Flexbox funciona especialmente bien para distribuir elementos en una dimensión: filas o columnas. Para diseños complejos de filas y columnas simultáneas, CSS Grid puede ser una mejor alternativa.
Conclusión: dominar Flexbox te permitirá crear interfaces más profesionales, mantener un CSS organizado y resolver problemas de alineación con menos código. Practica con menús, galerías, tarjetas y formularios, y pronto podrás aplicarlo con confianza en tus proyectos reales.

