En este tema, exploraremos las propiedades específicas de los ítems dentro de un contenedor CSS Grid. Estas propiedades nos permiten controlar cómo se posicionan y dimensionan los elementos hijos dentro de la cuadrícula. A continuación, desglosaremos cada una de estas propiedades con ejemplos prácticos y ejercicios para reforzar el aprendizaje.
grid-column-start
y grid-column-end
grid-column-start
y grid-column-end
Estas propiedades definen en qué línea de la cuadrícula comienza y termina un ítem en el eje de las columnas.
Sintaxis
Ejemplo
<!DOCTYPE html> <html lang="es"> <head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <title>Propiedades del Ítem Grid</title> <style> .grid-container { display: grid; grid-template-columns: repeat(4, 1fr); gap: 10px; } .item { background-color: lightblue; padding: 20px; text-align: center; } .item1 { grid-column-start: 1; grid-column-end: 3; } .item2 { grid-column-start: 3; grid-column-end: 5; } </style> </head> <body> <div class="grid-container"> <div class="item item1">Item 1</div> <div class="item item2">Item 2</div> <div class="item">Item 3</div> <div class="item">Item 4</div> </div> </body> </html>
Explicación
grid-column-start: 1;
ygrid-column-end: 3;
en.item1
hacen que el ítem ocupe desde la primera hasta la tercera línea de columna.grid-column-start: 3;
ygrid-column-end: 5;
en.item2
hacen que el ítem ocupe desde la tercera hasta la quinta línea de columna.
grid-row-start
y grid-row-end
grid-row-start
y grid-row-end
Estas propiedades definen en qué línea de la cuadrícula comienza y termina un ítem en el eje de las filas.
Sintaxis
Ejemplo
<!DOCTYPE html> <html lang="es"> <head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <title>Propiedades del Ítem Grid</title> <style> .grid-container { display: grid; grid-template-rows: repeat(4, 100px); gap: 10px; } .item { background-color: lightcoral; padding: 20px; text-align: center; } .item1 { grid-row-start: 1; grid-row-end: 3; } .item2 { grid-row-start: 3; grid-row-end: 5; } </style> </head> <body> <div class="grid-container"> <div class="item item1">Item 1</div> <div class="item item2">Item 2</div> <div class="item">Item 3</div> <div class="item">Item 4</div> </div> </body> </html>
Explicación
grid-row-start: 1;
ygrid-row-end: 3;
en.item1
hacen que el ítem ocupe desde la primera hasta la tercera línea de fila.grid-row-start: 3;
ygrid-row-end: 5;
en.item2
hacen que el ítem ocupe desde la tercera hasta la quinta línea de fila.
grid-area
grid-area
Esta propiedad es una forma abreviada de definir grid-row-start
, grid-column-start
, grid-row-end
y grid-column-end
.
Sintaxis
Ejemplo
<!DOCTYPE html> <html lang="es"> <head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <title>Propiedades del Ítem Grid</title> <style> .grid-container { display: grid; grid-template-columns: repeat(4, 1fr); grid-template-rows: repeat(4, 100px); gap: 10px; } .item { background-color: lightgreen; padding: 20px; text-align: center; } .item1 { grid-area: 1 / 1 / 3 / 3; } .item2 { grid-area: 3 / 3 / 5 / 5; } </style> </head> <body> <div class="grid-container"> <div class="item item1">Item 1</div> <div class="item item2">Item 2</div> <div class="item">Item 3</div> <div class="item">Item 4</div> </div> </body> </html>
Explicación
grid-area: 1 / 1 / 3 / 3;
en.item1
hace que el ítem ocupe desde la primera hasta la tercera línea de fila y desde la primera hasta la tercera línea de columna.grid-area: 3 / 3 / 5 / 5;
en.item2
hace que el ítem ocupe desde la tercera hasta la quinta línea de fila y desde la tercera hasta la quinta línea de columna.
justify-self
y align-self
justify-self
y align-self
Estas propiedades permiten alinear individualmente los ítems dentro de su área asignada en la cuadrícula.
Sintaxis
Ejemplo
<!DOCTYPE html> <html lang="es"> <head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <title>Propiedades del Ítem Grid</title> <style> .grid-container { display: grid; grid-template-columns: repeat(4, 1fr); grid-template-rows: repeat(4, 100px); gap: 10px; } .item { background-color: lightyellow; padding: 20px; text-align: center; } .item1 { justify-self: start; align-self: start; } .item2 { justify-self: end; align-self: end; } .item3 { justify-self: center; align-self: center; } .item4 { justify-self: stretch; align-self: stretch; } </style> </head> <body> <div class="grid-container"> <div class="item item1">Item 1</div> <div class="item item2">Item 2</div> <div class="item item3">Item 3</div> <div class="item item4">Item 4</div> </div> </body> </html>
Explicación
justify-self: start;
yalign-self: start;
en.item1
alinean el ítem al inicio de su área asignada.justify-self: end;
yalign-self: end;
en.item2
alinean el ítem al final de su área asignada.justify-self: center;
yalign-self: center;
en.item3
centran el ítem en su área asignada.justify-self: stretch;
yalign-self: stretch;
en.item4
estiran el ítem para llenar completamente su área asignada.
Ejercicio Práctico
Instrucciones
- Crea una cuadrícula con 3 columnas y 3 filas.
- Coloca 5 ítems en la cuadrícula.
- Usa las propiedades
grid-column-start
,grid-column-end
,grid-row-start
,grid-row-end
,justify-self
yalign-self
para posicionar y alinear los ítems de manera creativa.
Solución
<!DOCTYPE html> <html lang="es"> <head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <title>Ejercicio Práctico de Grid</title> <style> .grid-container { display: grid; grid-template-columns: repeat(3, 1fr); grid-template-rows: repeat(3, 100px); gap: 10px; } .item { background-color: lightgray; padding: 20px; text-align: center; } .item1 { grid-column: 1 / 3; grid-row: 1 / 2; justify-self: center; align-self: center; } .item2 { grid-column: 3 / 4; grid-row: 1 / 3; justify-self: end; align-self: start; } .item3 { grid-column: 1 / 2; grid-row: 2 / 4; justify-self: start; align-self: end; } .item4 { grid-column: 2 / 4; grid-row: 3 / 4; justify-self: stretch; align-self: stretch; } .item5 { grid-column: 2 / 3; grid-row: 2 / 3; justify-self: center; align-self: center; } </style> </head> <body> <div class="grid-container"> <div class="item item1">Item 1</div> <div class="item item2">Item 2</div> <div class="item item3">Item 3</div> <div class="item item4">Item 4</div> <div class="item item5">Item 5</div> </div> </body> </html>
Explicación
item1
ocupa las columnas 1 y 2, y la fila 1, centrado en su área.item2
ocupa la columna 3 y las filas 1 y 2, alineado al final y al inicio.item3
ocupa la columna 1 y las filas 2 y 3, alineado al inicio y al final.item4
ocupa las columnas 2 y 3, y la fila 3, estirado en su área.item5
ocupa la columna 2 y la fila 2, centrado en su área.
Conclusión
En esta lección, hemos aprendido cómo usar las propiedades del ítem Grid para controlar la posición y alineación de los elementos dentro de una cuadrícula. Estas propiedades son esenciales para crear diseños complejos y responsivos con CSS Grid. En el siguiente tema, exploraremos cómo crear diseños completos utilizando CSS Grid.
Maestría en CSS: De Principiante a Avanzado
Módulo 1: Introducción a CSS
- ¿Qué es CSS?
- Sintaxis y Selectores de CSS
- Cómo Añadir CSS a HTML
- Propiedades Básicas de CSS
- Colores en CSS
- Unidades y Medidas en CSS
Módulo 2: Estilización de Texto y Fuentes
- Propiedades de Texto
- Propiedades de Fuentes
- Integración de Google Fonts
- Alineación y Espaciado de Texto
- Decoración y Transformación de Texto
Módulo 3: Modelo de Caja y Diseño
- Entendiendo el Modelo de Caja
- Margen y Relleno
- Borde y Contorno
- Ancho y Alto
- Tamaño de Caja
- Propiedad Display de CSS
Módulo 4: Posicionamiento y Flotación
- Propiedad Position de CSS
- Posicionamiento Estático, Relativo, Absoluto y Fijo
- Flotación y Limpieza en CSS
- Creando Diseños con Flotación
- Índice Z en CSS
Módulo 5: Flexbox
- Introducción a Flexbox
- Propiedades del Contenedor Flex
- Propiedades del Ítem Flex
- Creando Diseños con Flexbox
- Diseño Responsivo con Flexbox
Módulo 6: CSS Grid
- Introducción a CSS Grid
- Propiedades del Contenedor Grid
- Propiedades del Ítem Grid
- Creando Diseños con CSS Grid
- Diseño Responsivo con CSS Grid
Módulo 7: Técnicas Avanzadas de CSS
Módulo 8: Diseño Responsivo
- Introducción al Diseño Responsivo
- Consultas de Medios
- Tipografía Responsiva
- Imágenes Responsivas
- Diseño Mobile-First
Módulo 9: Preprocesadores y Frameworks
- Introducción a los Preprocesadores de CSS
- Conceptos Básicos de Sass
- Conceptos Básicos de Less
- Introducción a los Frameworks de CSS
- Usando Bootstrap
Módulo 10: Mejores Prácticas y Optimización
- Mejores Prácticas de CSS
- Organización del Código CSS
- Minificación de CSS
- Optimización del Rendimiento de CSS
- Depuración de CSS