Maquetación Web Dinámica / Layouts I: Flexbox completo
Flexbox: el eje principal y el eje cruzado
Hasta ahora tus elementos se apilan (block) o fluyen en línea (inline) — y punto. Flexbox es el sistema que te deja DECIDIR cómo se reparten, alinean y ordenan. Es la herramienta de layout más usada del CSS moderno, y todo — absolutamente todo — en ella depende de entender dos ejes.
Una línea que lo cambia todo
Vocabulario preciso desde ya: el elemento con display: flex es el
contenedor flex; sus hijos directos son los ítems. Las propiedades
de Flexbox se reparten entre ambos — unas se escriben en el padre, otras en
los hijos. Confundir dónde va cada una es el error clásico; lo evitaremos
nombrando siempre a quién pertenece.
Los dos ejes: el modelo mental
Todo contenedor flex tiene dos ejes:
- Eje principal (main axis): la dirección en que fluyen los ítems.
Con
flex-direction: row(default) es horizontal. - Eje cruzado (cross axis): el perpendicular. Con row, es vertical.
eje cruzado
▲
│
┌──────────────┼───────────────────┐
│ ┌─────┐ ┌─────┐ ┌─────┐ │
│ │ 1 │ │ 2 │ │ 3 │ │ ──► eje principal
│ └─────┘ └─────┘ └─────┘ │
└──────────────────────────────────┘
contenedor (display: flex)flex-direction: girar la estantería
<p class="titulo">row (default): principal horizontal</p>
<div class="flex fila">
<div class="item">1</div><div class="item">2</div><div class="item">3</div>
</div>
<p class="titulo">column: principal vertical</p>
<div class="flex columna">
<div class="item">1</div><div class="item">2</div><div class="item">3</div>
</div>body { font-family: system-ui; padding: 24px; }
.titulo { font-size: 13px; color: #64748b; margin: 0 0 6px; }
.flex { display: flex; gap: 8px; background: #f1f5f9; border-radius: 8px; padding: 8px; margin-bottom: 16px; }
.columna { flex-direction: column; width: 120px; }
.item { background: #6d28d9; color: white; border-radius: 6px; padding: 10px 16px; font-weight: 600; text-align: center; }Los cuatro valores: row (default), row-reverse, column,
column-reverse. Los reverse invierten el ORDEN VISUAL sin tocar el HTML —
útil, pero con moderación: el lector de pantalla sigue el orden del HTML, y
si lo visual contradice demasiado a lo semántico, desorientas.
Con flex-direction: column, ¿cuál es el eje principal?
Mini-reto
Toma el nav de tu periódico y vuelve flex su <ul> (los li son los
ítems). De regalo inmediato: los bullets desaparecen del layout vertical y
tu menú por fin es horizontal, como los de verdad. Prueba column y
row-reverse para sentir el giro de los ejes.
Qué sigue
Contenedor activado y ejes claros. La próxima lección trae las dos propiedades que usarás literalmente todos los días: justify-content y align-items — con TODAS sus combinaciones visualizadas.