Generador de CSS Flexbox
Flexbox es la opción para el diseño unidimensional: filas de tarjetas, barras de navegación, héroes centrados, formularios. El modelo de contenedor e ítem es potente, pero sus propiedades interactúan de maneras poco evidentes. Este generador elimina las conjeturas a la hora de configurar el contenedor: elige flex-direction, justify-content, align-items, flex-wrap y gap, y obtén una regla CSS limpia para copiar directamente en tu hoja de estilos.
Cómo generar el CSS
-
1
Elige una dirección
Elige row, column o las variantes invertidas. Esto define flex-direction, el eje por el que fluyen los ítems.
-
2
Configura justify-content
Elige cómo se distribuyen los ítems en el eje principal: inicio, centro, space-between, space-around o final.
-
3
Configura align-items
Elige cómo se alinean los ítems en el eje cruzado: stretch, inicio, centro o final.
-
4
Configura gap y wrap
Añade espacio entre los ítems en píxeles y decide si los ítems pasan a una nueva línea.
-
5
Copia el CSS
El generador produce la regla del contenedor con todas las propiedades, lista para pegar en tu hoja de estilos.
Propiedades del contenedor
| Propiedad | Valores | Efecto |
|---|---|---|
flex-direction |
fila / columna / fila-inversa / columna-inversa | Eje principal |
flex-wrap |
nowrap / wrap / wrap-inversa | Si los ítems se envuelven |
justify-content |
flex-start / center / flex-end / space-between / space-around / space-evenly | Distribución del eje principal |
align-items |
flex-start / center / flex-end / baseline / stretch | Alineación del eje cruzado de cada línea |
align-content |
mismos valores + space-between / space-around | Cuando se envuelven, distribución del eje cruzado de las líneas |
gap (row-gap, column-gap) |
longitud | Espaciado entre ítems |
Propiedades del ítem
| Propiedad | Valores | Efecto |
|---|---|---|
flex-grow |
0+ (sin unidad) | Parte del espacio sobrante a absorber |
flex-shrink |
0+ (sin unidad) | Parte del desbordamiento a reducir |
flex-basis |
longitud o auto | Tamaño inicial antes de crecer/reducir |
flex |
abreviatura (1 1 auto, etc.) |
Las tres a la vez |
align-self |
auto / flex-start / center / flex-end / baseline / stretch | Sobrescribe align-items para un ítem |
order |
entero | Reorden visual sin cambiar el DOM |
El truco de flex: 1
flex: 1 es una abreviatura para flex: 1 1 0%. Hace que un ítem:
- Crezca para llenar el espacio disponible (crecer: 1)
- Se reduzca si es necesario (reducir: 1)
- Comience desde un tamaño cero (base: 0%)
Para columnas de igual ancho, flex: 1 en cada ítem da una división perfecta. Para barras laterales que no deben reducirse por debajo del contenido, usa flex: 0 0 240px (sin crecer, sin reducir, base de 240px).
Patrones comunes
Héroe centrado
.hero {
display: flex;
justify-content: center;
align-items: center;
min-height: 100vh;
}
Navbar con logo a la izquierda, enlaces a la derecha
.nav {
display: flex;
align-items: center;
gap: 2rem;
}
.nav-links {
margin-left: auto; /* empujar a la derecha */
display: flex;
gap: 1rem;
}
Fila de tarjetas responsiva
.card-row {
display: flex;
flex-wrap: wrap;
gap: 1.5rem;
}
.card {
flex: 1 1 260px; /* crecer/reducir, 260px mínimo antes de envolver */
}
Campo de formulario con botón (input flexible, botón fijo)
.field {
display: flex;
gap: 0.5rem;
}
.field input {
flex: 1;
}
.field button {
flex: 0 0 auto;
}
Flexbox vs. Grid
- Flexbox: una dimensión (fila O columna). Mejor cuando los tamaños de los ítems son impulsados por el contenido o cuando distribuyes espacio a lo largo de una sola línea.
- Grid: dos dimensiones (filas Y columnas con pistas explícitas). Mejor cuando el diseño tiene estructura de filas y columnas simultáneamente.
Para una barra de navegación o una pila de tarjetas: Flexbox. Para una cuadrícula de tarjetas de producto con múltiples filas de tarjetas alineadas: CSS Grid. Muchas páginas reales usan ambos: un diseño de página Grid con Flexbox dentro de los componentes.
Problemas comunes
- Ítems que no llenan el contenedor: el
align-items: stretchpor defecto se aplica solo si los ítems no tienen altura fija. Con altura explícita, permanecen en ese tamaño. gapno funciona: verifica la compatibilidad del navegador. El gap de flex llegó tarde; Safari <14.1 no lo soportaba. Ahora es universal en 2024+.- Hijos de flex en columna colapsando: una columna flex tiene
align-items: stretchcomo predeterminado, lo que estira los ítems al ancho del contenedor. Si un hijo establece un ancho, se sale. orderes solo visual: los lectores de pantalla y la navegación por teclado siguen el orden del DOM. No usesorderpara hacer que el contenido tenga sentido; úsalo solo para pulido visual.
Preguntas frecuentes
Grid para diseños de página bidimensionales (filas y columnas juntas). Flexbox para distribuciones unidimensionales (barra de navegación, fila de botones, pila). Dentro de una celda de Grid, Flexbox para su diseño interno. La mayoría de las UIs complejas usan ambos.
Porque el valor predeterminado de flex-shrink es 1 pero el valor predeterminado de min-width es auto, que equivale al ancho del contenido. Establece min-width: 0 (o min-inline-size: 0) en el ítem para permitir que se reduzca por debajo de su tamaño intrínseco.
display: flex; justify-content: center; align-items: center; en el contenedor. Cubre la gran mayoría de los casos de “centra esta cosa” con dos líneas.
Sí, en todos los navegadores modernos. Safari llegó tarde (se agregó en 14.1, abril de 2021); hoy todos los navegadores principales lo soportan. Reemplaza el espaciado basado en margin con gap siempre que puedas, mucho más simple.
Herramientas relacionadas
Referencia de la tabla ASCII
Tabla ASCII completa del 0 al 127 con decimal, hex, octal, binario y referencia numérica HTML para cada carácter, incluidos los códigos de control como NUL, LF y DEL.
Referencia de caracteres HTML
Lista buscable de entidades HTML, sus códigos nombrados y numéricos, y una copia con un clic para caracteres y símbolos especiales.
Generador de letras aleatorias
Genera letras aleatorias A-Z. Elige la cantidad, usa mayúsculas, minúsculas o mezcla de ambas, y aplica el resultado en juegos, consignas o clase.
Referencia de atajos de teclado
Busca los atajos predeterminados documentados de VS Code, Chrome y Bash con GNU Readline en macOS, Windows y Linux.
Formateador de JSON
Pega JSON para verlo con sangría de 2 o 4 espacios, minificarlo en una salida compacta o comprobar rápidamente la sintaxis antes de copiar el resultado.
Generador de Paletas de Color
Genera paletas monocromáticas, análogas, complementarias, triádicas o tetrádicas desde un color base HEX y exporta variables CSS listas para copiar.