Layout Holy Grail con Grid
Implemente el clásico layout Holy Grail con header, footer, contenido principal y dos sidebars mediante CSS Grid.
Layout Holy Grail con Grid es una lección gratuita de CSS Academy en CoddyKit. Esta es la lección 2 de 4. Puedes leer la lección completa abajo gratuitamente — luego la practicas en el navegador con un editor de código integrado y un tutor de IA 24/7. Forma parte de la ruta de aprendizaje de CSS Academy, y tu progreso se sincroniza en la web y la app de CoddyKit. El curso de CSS Academy incluye 4 lecciones en total.
¿Qué es el patrón Holy Grail?
El patrón Holy Grail es un diseño web clásico: una página de altura completa con encabezado, pie de página y una sección central de tres columnas (barra lateral izquierda, contenido principal y barra lateral derecha). Con los elementos flotantes era notoriamente difícil de implementar; CSS Grid lo hace trivial.
Definición de la plantilla de Grid
Defina el diseño con áreas de plantilla y filas con nombre: grid-template-areas asigna la estructura visual. Tres columnas y tres filas (el encabezado abarca todas las columnas, el pie de página también y la parte central tiene tres columnas) capturan todo el diseño en un diagrama ASCII legible.
<header>Header</header>
<div class="sidebar">Sidebar</div>
<main>Main</main>
<aside>Aside</aside>
<footer>Footer</footer>Asignación de elementos a las áreas
Cada elemento hijo hace referencia a su área por nombre: header { grid-area: header }, main { grid-area: main }, nav { grid-area: sidebar }, aside { grid-area: aside }, footer { grid-area: footer }. Grid los coloca automáticamente.
Expansión de la fila central
La fila central utiliza 1fr, que ocupa toda la altura restante de la ventana gráfica después del encabezado y el pie de página de altura fija. Esto garantiza que las barras laterales y el contenido principal siempre se extiendan para llenar la ventana gráfica, sin necesidad de cálculos explícitos de altura.
Contraer de forma adaptable
En dispositivos móviles, use una media query para redefinir grid-template-areas como una pila de una sola columna: encabezado, barra lateral, contenido principal, aside y pie de página apilados verticalmente. Se mantiene el orden del DOM; solo cambia la plantilla visual de Grid. Las áreas de Grid hacen que la reestructuración adaptable sea fácil de leer.
<header>Header</header>
<div class="sidebar">Sidebar</div>
<main>Main</main>
<aside>Aside</aside>
<footer>Footer</footer>Ocultar barras laterales de forma adaptable
En tabletas, quite el aside derecho y amplíe main: redefina el diseño como "header header" "sidebar main" "footer footer" con grid-template-columns: 240px 1fr. Establezca aside { display: none } o muévalo debajo de main en la definición de áreas.
Separación y relleno
Añada separación entre las pistas de Grid: gap: var(--spacing-4). Aplique el relleno dentro de cada área en lugar de hacerlo en el contenedor de Grid para mantener un espaciado uniforme. El encabezado y el pie de página suelen tener su propio relleno horizontal, alineado con el ancho máximo de la cuadrícula.
Cuadrículas anidadas
El área de contenido principal puede ser a su vez una cuadrícula: un artículo de dos columnas y una barra lateral dentro del área principal. Las cuadrículas anidadas crean el diseño del contenido dentro de la estructura exterior de la página sin jerarquías de clases complejas ni posicionamiento profundamente anidado.
Encabezado sticky
Haga que el encabezado sea sticky: header { position: sticky; top: 0; z-index: 10; }. En un diseño de Grid, el posicionamiento sticky de un hijo de la cuadrícula funciona como se espera: el encabezado permanece fijo mientras main, sidebar y aside se desplazan debajo.
Barras laterales sticky en Holy Grail
Ambas barras laterales pueden ser sticky: nav, aside { position: sticky; top: 0; height: 100vh; overflow-y: auto; }. Permanecen visibles mientras se desplaza el contenido principal, creando un diseño de tres paneles en el que solo se desplaza el panel central.
Grid frente a Flexbox para el diseño de páginas
Use Grid para diseños bidimensionales de la estructura de una página, como Holy Grail: Grid es ideal para colocar elementos simultáneamente en filas y columnas con nombre. Use Flexbox para diseños unidimensionales de componentes (elementos de navegación en una fila, contenido de tarjetas en una columna) dentro de las áreas de Grid.
Comprobación de conocimientos
¿Por qué resulta especialmente útil grid-template-areas para los diseños Holy Grail adaptables?
Resumen
CSS Grid convierte en trivial el históricamente difícil patrón Holy Grail: grid-template-areas asigna nombres a las regiones, 1fr hace que la fila central ocupe la altura de la ventana gráfica y las media queries redefinen el mapa de áreas para adaptarlo a pantallas pequeñas. Los encabezados y las barras laterales sticky se añaden sin complejidad adicional.
Preguntas frecuentes
¿La lección «Layout Holy Grail con Grid» es gratis?
Sí — el texto completo de «Layout Holy Grail con Grid» es gratis para leer aquí en la web. Para practicarla de forma interactiva (editor de código integrado y tutor de IA 24/7) y desbloquear el resto del curso de CSS Academy, actualiza a CoddyKit PRO. El curso de CSS Academy incluye 4 lecciones en total.
¿Qué aprenderé en «Layout Holy Grail con Grid»?
Implemente el clásico layout Holy Grail con header, footer, contenido principal y dos sidebars mediante CSS Grid. Practicas CSS Academy con código real que ejecutas directamente en el navegador, y un tutor de IA 24/7 responde tus preguntas mientras trabajas en la lección.
¿Necesito experiencia previa para empezar CSS Academy?
No se requiere experiencia previa. CSS Academy en CoddyKit está estructurado para principiantes hasta estudiantes avanzados, así que puedes empezar aquí o desde el inicio y avanzar a tu ritmo. Esta es la lección 2 de 4.
¿Cuánto tiempo toma la lección «Layout Holy Grail con Grid»?
La mayoría de las lecciones de CoddyKit toman alrededor de 5–10 minutos. Cada una es compacta e interactiva, así que avanzas constantemente y retomas exactamente por donde dejaste en la web y la app.
¿Puedo escribir y ejecutar código en esta lección de CSS Academy?
Sí. Cada lección de CSS Academy incluye un editor de código integrado, así que escribes y ejecutas código real directamente en tu navegador y obtienes retroalimentación instantánea de IA — sin configuración local necesaria.
Todas las lecciones de este curso
- Layout con footer y sidebar fijos
- Layout Holy Grail con Grid
- Layout masonry: enfoques con CSS y JS
- Diseño intrínseco: dimensionamiento basado en el contenido