En este artículo, aprenderás a crear un layout utilizando CSS Grid Layout combinado con Media Queries para hacerlo responsivo. Te mostraré cómo configurar el HTML y CSS necesarios para lograr un diseño adaptable a diferentes tamaños de pantalla. ¡Comencemos!

Paso 1: Configurar el Entorno

Para empezar, abriremos nuestro editor de código favorito, en este caso, Visual Studio Code. Crearemos un archivo index.html e inicializaremos el documento con la estructura básica de HTML5.

<!DOCTYPE html>
<html lang="es">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>CSS Grid Layout</title>
    <link rel="stylesheet" href="styles.css">
</head>
<body>
    <div class="grid-container">
        <header class="header">Header</header>
        <aside class="left">Left</aside>
        <article class="article">Article</article>
        <aside class="right">Right</aside>
        <footer class="footer">Footer</footer>
    </div>
</body>
</html>

Explicación del HTML

  • Contenedor Principal: Usamos un <div> con la clase grid-container para agrupar todos los elementos del layout.

  • Elementos del Layout: Incluimos header, aside (para el menú lateral izquierdo y derecho), article (para el contenido principal) y footer.

Paso 2: Estilizar el Layout con CSS

Crearemos un archivo styles.css donde definiremos los estilos para nuestro layout.

* {
    box-sizing: border-box;
}

body {
    margin: 0;
    font-family: Arial, sans-serif;
}

.grid-container {
    display: grid;
    grid-template-columns: 150px auto 150px;
    grid-template-rows: repeat(3, 100px);
    gap: 10px;
    background-color: beige;
    padding: 10px;
}

.grid-container > * {
    background-color: brown;
    color: white;
    padding: 20px;
    border: 1px solid black;
    text-align: center;
}

.header {
    grid-column: 1 / span 3;
}

.footer {
    grid-column: 1 / span 3;
}

Explicación del CSS

  • Estilos Globales: Aseguramos que el box-sizing sea border-box y eliminamos los márgenes del body.

  • Contenedor de la Cuadrícula: Definimos una cuadrícula de tres columnas (150px, auto, 150px) y tres filas de 100px cada una. Usamos gap para añadir espacio entre los elementos.

  • Elementos del Layout: Estilizamos los elementos del layout con un fondo marrón, texto blanco, y un borde negro. También centramos el texto.

  • Header y Footer: Hacemos que el header y el footer ocupen las tres columnas usando grid-column.

Paso 3: Hacer el Layout Responsivo con Media Queries

Para que nuestro layout se adapte a diferentes tamaños de pantalla, usaremos Media Queries. Queremos que cuando la pantalla sea menor de 600px de ancho, los elementos se organicen en una sola columna.

@media (max-width: 600px) {
    .grid-container {
        grid-template-columns: 1fr;
        grid-template-rows: auto;
    }

    .header, .left, .article, .right, .footer {
        grid-column: 1 / -1;
    }
}

Explicación del CSS Responsivo

  • Media Query: Definimos una media query para pantallas con un ancho máximo de 600px.

  • Reorganización del Contenedor: Cambiamos la plantilla de columnas a una sola columna (1fr), permitiendo que los elementos se apilen verticalmente.

  • Reorganización de Elementos: Aseguramos que todos los elementos ocupen toda la columna disponible usando grid-column: 1 / -1.

Ver el Resultado

Al abrir el archivo HTML en un navegador, deberías ver el layout en acción. En una pantalla ancha, el diseño se organizará en tres columnas, y al reducir el ancho de la ventana a menos de 600px, los elementos se apilarán en una sola columna.

Conclusión

CSS Grid Layout combinado con Media Queries es una herramienta poderosa para crear diseños web responsivos. En este artículo, hemos aprendido cómo configurar un layout básico y adaptarlo a diferentes tamaños de pantalla. ¡Prueba estos ejemplos en tus proyectos y descubre el potencial del CSS Grid Layout!

Reply

Avatar

or to participate

Sigue leyendo