ĀæQuieres aprender a utilizar CSS Grid para tus pĆ”ginas web? Si la respuesta es sĆ, estĆ”s en el lugar correcto. CSS Grid presenta un nĆŗmero de oportunidades para los desarrolladores Frontend, tales como crea layouts dinĆ”micos, mejora el anĆ”lisis de los diseƱos y permitir una mayor conexión entre los contenidos que se ofrecen. Al final de este artĆculo, estarĆ”s listo para usar CSS Grid con confianza en tus pĆ”ginas web. Ā”Empieza ahora!
¿Qué es CSS Grid?
CSS Grid es una tĆ©cnica de diseƱo de diseƱo web que permite a los diseƱadores crear diseƱos de pĆ”gina complejos y flexibles con una estructura de cuadrĆcula. Con CSS Grid, se puede dividir la pĆ”gina en filas y columnas, y luego colocar elementos en diferentes Ć”reas de la cuadrĆcula.
En esencia, CSS Grid es un sistema de diseƱo bidimensional que proporciona una manera mĆ”s fĆ”cil y eficiente de diseƱar diseƱos complejos que antes solo se podĆan lograr con tĆ©cnicas de diseƱo mĆ”s avanzadas o mediante el uso de marcos de trabajo o bibliotecas de terceros.
La cuadrĆcula se define en CSS mediante la creación de un contenedor de cuadrĆcula y luego la definición de las filas y columnas en ese contenedor. Una vez definida la cuadrĆcula, los elementos se colocan en diferentes Ć”reas de la cuadrĆcula utilizando la propiedad grid-area.
CSS Grid es compatible con todos los principales navegadores modernos, lo que significa que los diseƱadores pueden utilizar esta tƩcnica de diseƱo sin tener que preocuparse por la compatibilidad del navegador. AdemƔs, al utilizar CSS Grid, los diseƱadores pueden crear diseƱos que respondan a diferentes tamaƱos de pantalla y dispositivos, lo que los hace ideales para diseƱos de sitios web receptivos.
Estructura de Grid CSS
La estructura de una cuadrĆcula CSS Grid consta de tres elementos principales: el contenedor de la cuadrĆcula, las filas y las columnas.
Contenedor de la cuadrĆcula
el contenedor de la cuadrĆcula es el elemento HTML que contiene todos los elementos que se organizan en la cuadrĆcula. Para definir el contenedor como una cuadrĆcula, debemos establecer su propiedad display en grid.
.container {
display: grid;
}
Filas
las filas de la cuadrĆcula se definen utilizando la propiedad grid-template-rows, que define el nĆŗmero y tamaƱo de las filas de la cuadrĆcula. Podemos establecer el tamaƱo de cada fila individualmente o utilizar la función repeat() para definir varias filas con el mismo tamaƱo.
.container {
display: grid;
grid-template-rows: 100px 200px 100px;
}
Este código define una cuadrĆcula con tres filas de diferentes tamaƱos: la primera fila de 100px, la segunda fila de 200px y la tercera fila de 100px.
Columnas
las columnas de la cuadrĆcula se definen utilizando la propiedad grid-template-columns, que define el nĆŗmero y tamaƱo de las columnas de la cuadrĆcula. Al igual que con las filas, podemos establecer el tamaƱo de cada columna individualmente o utilizar la función repeat() para definir varias columnas con el mismo tamaƱo.
.container {
display: grid;
grid-template-columns: 1fr 2fr 1fr;
}
Este código define una cuadrĆcula con tres columnas de diferentes tamaƱos: la primera columna de 1fr, la segunda columna de 2fr y la tercera columna de 1fr.
Celdas
una vez definidas las filas y columnas de la cuadrĆcula, podemos colocar elementos en cada celda utilizando la propiedad grid-area o sus equivalentes grid-row-start, grid-row-end, grid-column-start y grid-column-end. TambiĆ©n podemos utilizar la función span para especificar el nĆŗmero de filas o columnas que debe abarcar un elemento.
.container {
display: grid;
grid-template-rows: 100px 200px 100px;
grid-template-columns: 1fr 2fr 1fr;
}
.item1 {
grid-area: 1 / 1 / 3 / 3;
}
.item2 {
grid-area: 2 / 2 / span 2 / span 2;
}
Este código coloca dos elementos en diferentes Ć”reas de la cuadrĆcula. El elemento con la clase Ā«item1Ā» ocupa las celdas desde la primera fila y la primera columna hasta la tercera fila y la tercera columna. El elemento con la clase Ā«item2Ā» ocupa dos filas y dos columnas, comenzando en la segunda fila y la segunda columna.
Esta es la estructura bĆ”sica de una cuadrĆcula CSS Grid, pero hay muchas mĆ”s propiedades y tĆ©cnicas que se pueden utilizar para crear diseƱos mĆ”s complejos y avanzados.
Tutorial bƔsico de CSS Grid
A continuación podrÔs ver un tutorial bÔsico de CSS Grid para comenzar, con ejemplos de código para que te sea mÔs fÔcil de entender.
Definir la cuadrĆcula
Para definir una cuadrĆcula, debemos definir tanto las filas como las columnas. Utilizamos las propiedades grid-template-columns y grid-template-rows para definir el nĆŗmero y tamaƱo de las filas y columnas.
Ejemplo:
.container {
display: grid;
grid-template-columns: 1fr 1fr 1fr;
grid-template-rows: 100px 100px;
}
Este código define una cuadrĆcula con tres columnas de igual ancho (1fr cada una) y dos filas de 100 pĆxeles de altura.
Colocar elementos en la cuadrĆcula
Para colocar elementos en la cuadrĆcula, utilizamos la propiedad grid-area. Podemos darle un nombre a cada Ć”rea de la cuadrĆcula y luego especificar el nombre del Ć”rea en la propiedad grid-area.
Ejemplo:
.item1 {
grid-area: header;
}
.item2 {
grid-area: main;
}
.item3 {
grid-area: sidebar;
}
.item4 {
grid-area: footer;
}
Este código coloca cuatro elementos en diferentes Ć”reas de la cuadrĆcula. La primera Ć”rea se llama Ā«headerĀ», la segunda Ā«mainĀ», la tercera Ā«sidebarĀ» y la cuarta Ā«footerĀ».
Ajustar el tamaño y la posición de los elementos
Una vez que hemos colocado los elementos en la cuadrĆcula, podemos ajustar su tamaƱo y posición utilizando las propiedades grid-row-start, grid-row-end, grid-column-start y grid-column-end.
Ejemplo:
.item1 {
grid-area: header;
grid-row-start: 1;
grid-row-end: 2;
grid-column-start: 1;
grid-column-end: 4;
}
Este código ajusta el tamaño y la posición del elemento con la clase «item1». El elemento se extiende desde la primera fila hasta la segunda fila y desde la primera columna hasta la cuarta columna.
Este es solo un tutorial bƔsico de CSS Grid. Hay muchas mƔs propiedades y tƩcnicas que se pueden utilizar para crear diseƱos mƔs complejos y avanzados con CSS Grid.
Tutorial avanzado de CSS Grid
Aquà hay un tutorial avanzado de CSS Grid para continuar desde donde dejamos en el tutorial bÔsico:
Ajuste automƔtico de elementos
utilizando la propiedad grid-auto-rows y grid-auto-columns, podemos especificar el tamaƱo de las filas y columnas creadas automƔticamente por CSS Grid.
Ejemplo:
.container {
display: grid;
grid-template-columns: repeat(3, 1fr);
grid-auto-rows: minmax(100px, auto);
}
Este código establece el ancho de cada columna en 1fr y el alto de cada fila se ajusta automĆ”ticamente segĆŗn el contenido. Sin embargo, la altura mĆnima de cada fila es de 100px y puede crecer segĆŗn el contenido que tenga.
Ajuste de espaciado
utilizando las propiedades grid-column-gap, grid-row-gap y grid-gap, podemos ajustar el espacio entre filas y columnas de la cuadrĆcula.
Ejemplo:
.container {
display: grid;
grid-template-columns: repeat(3, 1fr);
grid-gap: 20px;
}
Este código establece un espacio de 20px entre las filas y columnas de la cuadrĆcula.
Posicionamiento por capas
utilizando la propiedad z-index, podemos especificar la posición en capas de elementos superpuestos en la cuadrĆcula.
Ejemplo:
.item1 {
grid-area: header;
z-index: 2;
}
.item2 {
grid-area: main;
z-index: 1;
}
Este código coloca dos elementos en diferentes Ć”reas de la cuadrĆcula y ajusta su posición en capas. El elemento con la clase Ā«item1Ā» se muestra encima del elemento con la clase Ā«item2Ā».
Alineación
utilizando las propiedades justify-content, align-content, justify-items y align-items, podemos ajustar la alineación de los elementos en la cuadrĆcula.
Ejemplo:
.container {
display: grid;
grid-template-columns: repeat(3, 1fr);
justify-content: center;
align-content: center;
justify-items: center;
align-items: center;
}
Este código ajusta la alineación horizontal y vertical de los elementos en la cuadrĆcula al centro.
Este es solo un tutorial avanzado de CSS Grid. Hay muchas mƔs propiedades y tƩcnicas que se pueden utilizar para crear diseƱos mƔs complejos y avanzados con CSS Grid.
Adaptando CSS Grid a Diferentes Pantallas
Una de las principales ventajas de CSS Grid es que permite crear diseƱos flexibles y adaptables a diferentes tamaƱos de pantalla. AquĆ te presento algunas tĆ©cnicas para adaptar una cuadrĆcula de CSS Grid a diferentes dispositivos y pantallas:
Utiliza unidades relativas
en lugar de utilizar unidades fijas como pĆxeles, es recomendable utilizar unidades relativas como porcentajes o fracciones (fr). De esta manera, los tamaƱos de las filas y columnas se ajustarĆ”n automĆ”ticamente a las dimensiones de la pantalla.
.container {
display: grid;
grid-template-columns: 1fr 2fr 1fr;
}
Utiliza la función minmax()
esta función permite establecer un rango de tamaƱos para una fila o columna. Por ejemplo, podemos establecer una fila con un tamaƱo mĆnimo de 100 pĆxeles y un tamaƱo mĆ”ximo de 1 fr. De esta manera, la fila se ajustarĆ” automĆ”ticamente a la pantalla, pero nunca serĆ” mĆ”s pequeƱa que 100 pĆxeles.
.container {
display: grid;
grid-template-rows: repeat(3, minmax(100px, 1fr));
}
Utiliza los medios de consulta (media queries)
los medios de consulta permiten aplicar estilos diferentes a una misma pĆ”gina dependiendo del tamaƱo de la pantalla. Podemos utilizarlos para cambiar la estructura de la cuadrĆcula o ajustar los tamaƱos de las filas y columnas en función del dispositivo.
.container {
display: grid;
grid-template-columns: 1fr 2fr 1fr;
}
@media screen and (max-width: 768px) {
.container {
grid-template-columns: 1fr;
grid-template-rows: repeat(3, minmax(100px, 1fr));
}
}
En este ejemplo, se establece una cuadrĆcula de tres columnas para pantallas grandes, pero cuando la pantalla tiene un ancho mĆ”ximo de 768 pĆxeles, se cambia la estructura de la cuadrĆcula a una sola columna y se ajustan los tamaƱos de las filas.
Utiliza la propiedad grid-auto-flow
esta propiedad permite establecer el orden en que se colocan los elementos en la cuadrĆcula. Por defecto, los elementos se colocan en el orden en que aparecen en el HTML, pero podemos cambiar este orden para adaptarlo a diferentes tamaƱos de pantalla.
.container {
display: grid;
grid-template-columns: repeat(3, 1fr);
grid-auto-flow: dense;
}
@media screen and (max-width: 768px) {
.container {
grid-template-columns: 1fr;
}
}
En este ejemplo, se establece una cuadrĆcula de tres columnas con el orden de los elementos establecido por defecto. Sin embargo, cuando la pantalla tiene un ancho mĆ”ximo de 768 pĆxeles, se cambia la cuadrĆcula a una sola columna y se utiliza la propiedad grid-auto-flow: dense para permitir que los elementos se coloquen en filas y columnas vacĆas para aprovechar mejor el espacio disponible.
Estas son solo algunas tĆ©cnicas para adaptar una cuadrĆcula de CSS Grid a diferentes tamaƱos de pantalla. En general, es recomendable utilizar una combinación de unidades relativas, funciones minmax(), medios de consulta y propiedades de la cuadrĆcula para crear diseƱos
Herramientas
Crea fÔcilmente código CSS Grid con las siguientes herramientas online. Solo tendrÔs que escoger tus opciones y listo el código en segundos.
CSS Grid Generator
El funcionamiento es muy fÔcil. Con el ratón seleccionas las filas y columnas en grid y podrÔs ver el código HTML y CSS en un clic.

MÔs información
Si quieres conocer en profundidad mÔs del tema, te aconsejo mirar estos links con mÔs información:


