CSS Grid es una poderosa herramienta para crear diseños de página complejos y responsivos. En este tema, aprenderemos cómo utilizar CSS Grid para construir diferentes tipos de layouts. Exploraremos conceptos clave, propiedades esenciales y ejemplos prácticos para que puedas aplicar estos conocimientos en tus propios proyectos.

Conceptos Clave

Antes de sumergirnos en los ejemplos prácticos, es importante entender algunos conceptos clave de CSS Grid:

  1. Grid Container: El elemento padre que contiene los elementos de la cuadrícula.
  2. Grid Items: Los elementos hijos dentro del contenedor de la cuadrícula.
  3. Grid Lines: Las líneas que dividen la cuadrícula en filas y columnas.
  4. Grid Tracks: Las filas y columnas de la cuadrícula.
  5. Grid Cells: Las celdas individuales formadas por la intersección de las filas y columnas.

Propiedades Esenciales

Propiedades del Contenedor Grid

  • display: grid;: Define un elemento como un contenedor de cuadrícula.
  • grid-template-columns: Define el número y tamaño de las columnas.
  • grid-template-rows: Define el número y tamaño de las filas.
  • gap: Define el espacio entre las filas y columnas.

Propiedades del Ítem Grid

  • grid-column: Define en qué columna comienza y termina un ítem.
  • grid-row: Define en qué fila comienza y termina un ítem.

Ejemplo Práctico: Creando un Layout Básico

Vamos a crear un layout básico con CSS Grid que tenga una cabecera, un contenido principal y un pie de página.

HTML

<!DOCTYPE html>
<html lang="es">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Layout con CSS Grid</title>
    <link rel="stylesheet" href="styles.css">
</head>
<body>
    <div class="grid-container">
        <header class="header">Cabecera</header>
        <main class="main">Contenido Principal</main>
        <footer class="footer">Pie de Página</footer>
    </div>
</body>
</html>

CSS

/* Definimos el contenedor de la cuadrícula */
.grid-container {
    display: grid;
    grid-template-columns: 1fr;
    grid-template-rows: auto 1fr auto;
    gap: 10px;
    height: 100vh;
}

/* Estilizamos los ítems de la cuadrícula */
.header {
    background-color: #4CAF50;
    color: white;
    text-align: center;
    padding: 20px;
}

.main {
    background-color: #f1f1f1;
    padding: 20px;
}

.footer {
    background-color: #4CAF50;
    color: white;
    text-align: center;
    padding: 10px;
}

Explicación del Código

  1. HTML:

    • Creamos un contenedor div con la clase grid-container.
    • Dentro del contenedor, añadimos tres elementos: header, main y footer.
  2. CSS:

    • Definimos el contenedor de la cuadrícula con display: grid;.
    • Utilizamos grid-template-columns: 1fr; para crear una columna que ocupe todo el ancho disponible.
    • Utilizamos grid-template-rows: auto 1fr auto; para definir tres filas: la primera y la última con altura automática y la del medio ocupando el espacio restante.
    • Establecemos un espacio de 10px entre las filas con gap: 10px;.
    • Estilizamos los ítems de la cuadrícula con diferentes colores de fondo y padding.

Ejercicio Práctico

Ejercicio 1: Crear un Layout de Dos Columnas

Crea un layout con CSS Grid que tenga una cabecera, un contenido principal dividido en dos columnas y un pie de página.

HTML

<!DOCTYPE html>
<html lang="es">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Layout de Dos Columnas</title>
    <link rel="stylesheet" href="styles.css">
</head>
<body>
    <div class="grid-container">
        <header class="header">Cabecera</header>
        <div class="sidebar">Barra Lateral</div>
        <main class="main">Contenido Principal</main>
        <footer class="footer">Pie de Página</footer>
    </div>
</body>
</html>

CSS

/* Definimos el contenedor de la cuadrícula */
.grid-container {
    display: grid;
    grid-template-columns: 1fr 3fr;
    grid-template-rows: auto 1fr auto;
    gap: 10px;
    height: 100vh;
}

/* Estilizamos los ítems de la cuadrícula */
.header {
    grid-column: 1 / 3;
    background-color: #4CAF50;
    color: white;
    text-align: center;
    padding: 20px;
}

.sidebar {
    background-color: #f1f1f1;
    padding: 20px;
}

.main {
    background-color: #f1f1f1;
    padding: 20px;
}

.footer {
    grid-column: 1 / 3;
    background-color: #4CAF50;
    color: white;
    text-align: center;
    padding: 10px;
}

Solución y Explicación

  1. HTML:

    • Añadimos un div con la clase sidebar para la barra lateral.
  2. CSS:

    • Definimos dos columnas con grid-template-columns: 1fr 3fr;, donde la primera columna ocupa una fracción y la segunda tres fracciones del espacio disponible.
    • Utilizamos grid-column: 1 / 3; en la cabecera y el pie de página para que ocupen ambas columnas.

Conclusión

En esta lección, hemos aprendido cómo crear layouts básicos y de dos columnas utilizando CSS Grid. Hemos explorado las propiedades esenciales del contenedor y los ítems de la cuadrícula, y hemos aplicado estos conocimientos en ejemplos prácticos. Con CSS Grid, puedes crear diseños de página complejos y responsivos de manera eficiente y elegante. En la próxima lección, profundizaremos en el diseño responsivo con CSS Grid.

Maestría en CSS: De Principiante a Avanzado

Módulo 1: Introducción a CSS

Módulo 2: Estilización de Texto y Fuentes

Módulo 3: Modelo de Caja y Diseño

Módulo 4: Posicionamiento y Flotación

Módulo 5: Flexbox

Módulo 6: CSS Grid

Módulo 7: Técnicas Avanzadas de CSS

Módulo 8: Diseño Responsivo

Módulo 9: Preprocesadores y Frameworks

Módulo 10: Mejores Prácticas y Optimización

Módulo 11: Proyecto: Construyendo un Sitio Web Responsivo

© Copyright 2024. Todos los derechos reservados