CodeForge

Maquetación Web Dinámica / Layouts II: CSS Grid completo

grid-template: fr, repeat() y minmax()

Teoría18 min20 XP

Definir tracks es el 50% de Grid, y tres herramientas lo hacen expresivo: la unidad fr (fracciones del espacio), repeat() (no escribir 12 veces lo mismo) y minmax() (tracks elásticos con límites). Al final de esta lección lees y escribes cualquier grid-template-columns de producción.

fr: la fracción del espacio libre

fr reparte el espacio SOBRANTE después de descontar lo fijo — la prima de flex-grow, pero para tracks:

fr.css

repeat(): el atajo honesto

repeat.css

Y las filas funcionan idéntico con grid-template-rows. Un matiz que sorprende: normalmente NO defines las filas — Grid las crea solas a medida que el contenido llega (filas implícitas, de altura auto). Defines columnas casi siempre, filas solo cuando el diseño las exige (dashboards a pantalla completa, el proyecto de este módulo).

minmax(): el track con límites

La joya de la corona. minmax(min, max) crea un track elástico acotado:

minmax.css

Mira la columna de labels: mide exactamente lo que pide "Correo electrónico" (el más largo) y TODOS los inputs arrancan alineados. Ese es el formulario del quiz de la lección pasada, resuelto en una línea.

¿Qué hace grid-template-columns: max-content 1fr en un formulario de labels e inputs?

Mini-reto

Reconstruye el formulario de registro de tu periódico (módulo 2) con max-content 1fr. Luego crea el patrón "prosa centrada" (1fr minmax(auto, 65ch) 1fr) y ponle un artículo dentro: acabas de maquetar como los blogs profesionales.

Qué sigue

Tracks dominados. La próxima lección es la forma más expresiva de colocar contenido en CSS: grid-template-areas — layouts que se leen como dibujos ASCII.