Creación y Optimización de Grids en CSS

Clase 18 de 28Curso Profesional de CSS Grid Layout

Contenido del curso

Resumen

Dominar la creación de filas y columnas es el paso fundamental para construir layouts con CSS Grid. Con apenas tres líneas de código puedes definir una cuadrícula completa, controlar su espaciado y nombrar cada celda para ubicar elementos con precisión. A continuación se desglosan las propiedades esenciales que lo hacen posible.

¿Cómo se definen columnas y filas en CSS Grid?

Dentro de un contenedor con display: grid, las columnas se crean en dirección vertical y las filas en dirección horizontal [0:18]. Para indicarle al navegador cuántas columnas y de qué tamaño necesitas, se utiliza la propiedad grid-template-columns. De forma análoga, grid-template-rows establece las filas.

css .contenedor { display: grid; grid-template-columns: 20px 20px 20px 20px 20px; grid-template-rows: 20px 20px 20px 20px 20px; }

Este ejemplo genera una cuadrícula de cinco columnas y cinco filas, cada una de veinte píxeles [0:48]. Funciona, pero resulta repetitivo. Ahí entra en juego una función que simplifica todo.

¿Qué hace la función repeat en CSS Grid?

La función repeat() recibe dos argumentos: la cantidad de tracks y el tamaño de cada uno [1:30]. En lugar de escribir el mismo valor cinco veces, basta con una sola declaración.

css .contenedor { display: grid; grid-template-columns: repeat(5, 20px); grid-template-rows: repeat(5, 20px); }

El primer valor indica cuántas columnas o filas quieres; el segundo, la medida que tendrá cada una.

¿Cómo unificar filas y columnas con grid-template?

Existe un atajo aún más compacto: la propiedad grid-template. Separa filas y columnas con una barra oblicua (/). El valor antes del slash corresponde a las filas y el que está después a las columnas [1:52].

css .contenedor { display: grid; grid-template: repeat(5, 20px) / repeat(5, 20px); }

Con esto reduces las propiedades del contenedor de tres o cuatro a solo dos líneas.

¿Cómo agregar espaciado entre filas y columnas con gap?

Para separar visualmente las celdas se utiliza el espaciado o gap [2:18]. Históricamente se empleaban grid-column-gap y grid-row-gap, pero la especificación actual simplifica los nombres.

  • column-gap: define el espacio entre columnas.
  • row-gap: define el espacio entre filas.
  • gap: unifica ambos valores en una sola propiedad.

css .contenedor { display: grid; grid-template: repeat(5, 20px) / repeat(5, 20px); gap: 10px 10px; /* filas columnas */ }

El primer valor de gap corresponde a las filas y el segundo a las columnas [2:50]. Con solo tres líneas de código defines la cuadrícula completa y su espaciado.

¿Qué son las áreas en CSS Grid y cómo se nombran?

Las áreas permiten asignar un nombre a cada celda o grupo de celdas de la cuadrícula [3:18]. Esto facilita la colocación de elementos porque, en lugar de indicar números de línea, simplemente refieres el nombre del área.

css .contenedor { display: grid; grid-template: repeat(5, 20px) / repeat(5, 20px); grid-template-areas: "header header header header header" "main main main . sidebar" "main main main . sidebar" "footer footer footer footer footer"; }

  • Cada cadena entre comillas representa una fila.
  • Los nombres repetidos expanden el área a lo largo de varias columnas o filas.
  • Un punto (.) indica que esa celda quedará vacía [4:08].

Después, al estilizar un elemento hijo, basta con escribir grid-area: header; y se posicionará automáticamente en todas las celdas etiquetadas como header.

El reto propuesto consiste en tomar el diseño de tu proyecto, identificar los contenedores, y para cada uno definir cuántas filas y columnas necesita [4:25]. Esa planificación previa hace que la implementación en código sea mucho más ágil. ¿Ya identificaste los contenedores de tu diseño? Comparte tu avance en los comentarios.