Alineación y la regla Flexbox vs Grid
Esta última lección del módulo cierra dos temas: la alineación de ítems dentro de su celda, y la regla para decidir cuándo usar Flexbox y cuándo Grid. Con esto completás el toolkit de layout moderno del Bloque III.
justify-self y align-self — alinear el ítem en su celda
justify-self y align-self controlan cómo se posiciona el ítem dentro de su celda (no todo el contenedor):
/* El ítem se centra horizontalmente en su celda */
.item { justify-self: center; }
/* El ítem se alinea al final verticalmente en su celda */
.item { align-self: end; }
/* Valores comunes */
/* start | end | center | stretch (por defecto) */
Ya conocés align-self de Flexbox (CAT-25). En Grid funciona igual pero el “contenedor de alineación” es la celda del ítem, no el eje cruzado del flex container.
Diferencia con las propiedades del contenedor:
/* En el contenedor: aplica a TODOS los ítems */
.grid { justify-items: center; }
/* En el ítem: sobreescribe solo para ESE ítem */
.item-especial { justify-self: end; }
Probalo en el sandbox: creá un grid de 2 columnas y aplicá justify-self: center a uno de los ítems. Observá cómo ese ítem se centra en su celda mientras los demás ocupan todo el ancho disponible (stretch por defecto).
<div class="grid">
<div class="item">Normal (stretch)</div>
<div class="item centrado">Centrado</div>
<div class="item">Normal (stretch)</div>
<div class="item al-final">Al final</div>
</div>
.grid {
display: grid;
grid-template-columns: 1fr 1fr;
gap: 8px;
}
.item { background: #e2e8f0; padding: 16px; }
.centrado { justify-self: center; background: #4f46e5; color: white; }
.al-final { justify-self: end; background: #0891b2; color: white; }
El efecto es visual — el punto pedagógico es verlo en el preview.
La regla: cuándo Flexbox, cuándo Grid
Flexbox para una dimensión; Grid para dos.
| Flexbox | Grid | |
|---|---|---|
| Quién manda | El contenido — los ítems definen su tamaño | El layout — el contenedor define la estructura |
| Dimensiones | Una (fila O columna) | Dos (filas Y columnas) |
| Caso ideal | Barra de nav, lista de tags, botones en fila | Layout de página, galerías, dashboards |
| Alineación de filas | flex-wrap + align-content (aproximado) | Exacta — el grid garantiza el alineado en columna |
Flexbox → "¿cómo distribuyo estos ítems en una dirección?"
Grid → "¿cómo divido este espacio en zonas?"
No son mutuamente excluyentes — se combinan:
Página (Grid para el layout global)
├── Header (Flexbox internamente: logo + nav + acciones)
├── Nav (Flexbox: lista de links)
├── Main (puede tener un sub-Grid para tarjetas)
└── Footer (Flexbox: copyright + links + redes)
Grid define la estructura de la página; Flexbox distribuye el contenido dentro de cada zona. Este es el patrón estándar de producción.
Cuándo preferir Flexbox aunque puedas usar Grid:
- La cantidad de ítems es dinámica (no sabés cuántos habrá).
- El layout debe adaptarse al tamaño del contenido (no al revés).
- Solo necesitás controlar una dimensión.
Cuándo preferir Grid aunque puedas usar Flexbox:
- Necesitás que ítems en distintas filas estén alineados en columna.
- El layout tiene zonas bien definidas (header/nav/main/footer).
- Querés control bidimensional preciso.
Cierre del Bloque III — toolkit completo
Tenés las cuatro herramientas de layout moderno:
| Herramienta | Qué resuelve |
|---|---|
| Flujo normal (CAT-23) | El default — el navegador organiza |
| Positioning (CAT-24) | Casos específicos: navbars sticky, modales, tooltips |
| Flexbox (CAT-25) | Una dimensión: navbars, listas, tarjetas en fila |
| Grid (CAT-26) | Dos dimensiones: layouts de página, galerías, dashboards |
Cualquier layout de producción se construye combinando estas cuatro herramientas.
Qué viene en el Bloque IV
El Bloque III enseñó cómo disponer. El Bloque IV enseña cómo hacerlo bien en todos los tamaños y en el tiempo:
- CAT-27 (Responsive):
repeat(auto-fit, minmax())ya da responsive sin media queries; con@mediacontrolás los puntos de quiebre explícitos. - CAT-28 (Custom properties): centralizás valores de
gap, tamaños de pista y colores con variables CSS. - CAT-29 (Transitions): agregás movimiento suave a cambios de estado en el layout.
CAT-26 es el momento en que terminaste de construir tu caja de herramientas de layout. El Bloque IV la lleva a condiciones reales: pantallas de distintos tamaños, mantenibilidad y movimiento.
Sandbox libre — probá lo que aprendiste:
Preview
En la referencia
En esta página