Layout Holy Grail con Grid
Implementi il classico layout Holy Grail con header, footer, contenuto principale e due sidebar utilizzando CSS Grid.
Layout Holy Grail con Grid è una lezione CSS Academy gratuita su CoddyKit. Questa è la lezione 2 di 4. Puoi leggere la lezione completa qui gratuitamente — poi esercitati direttamente nel browser con un editor di codice integrato e un tutor IA disponibile 24/7. Fa parte del percorso di apprendimento CSS Academy, e i tuoi progressi si sincronizzano tra il web e l'app CoddyKit. Il corso CSS Academy include 4 lezioni in totale.
Che cos'è il layout Holy Grail?
Il layout Holy Grail è un pattern classico di web design: una pagina a tutta altezza con header, footer e una sezione centrale a tre colonne, composta da una sidebar sinistra, contenuto principale e sidebar destra. Con i float era notoriamente difficile da realizzare; CSS Grid lo rende banale.
Definizione del template Grid
Definisca il layout con aree template e righe denominate: grid-template-areas mappa la struttura visiva. Tre colonne e tre righe, con l'header esteso su tutte le colonne, il footer esteso su tutte le colonne e tre colonne nella sezione centrale, descrivono l'intero layout in un diagramma ASCII leggibile.
<header>Header</header>
<div class="sidebar">Sidebar</div>
<main>Main</main>
<aside>Aside</aside>
<footer>Footer</footer>Assegnazione degli elementi alle aree
Ogni elemento figlio fa riferimento alla propria area tramite il nome: header { grid-area: header }, main { grid-area: main }, nav { grid-area: sidebar }, aside { grid-area: aside }, footer { grid-area: footer }. Grid li posiziona automaticamente.
Espansione della riga centrale
La riga centrale utilizza 1fr, che riempie tutta l'altezza rimanente della viewport dopo l'header e il footer di altezza fissa. In questo modo le sidebar e il contenuto principale si estendono sempre fino a riempire la viewport, senza bisogno di calcolare esplicitamente le altezze.
Compressione reattiva
Sui dispositivi mobili, utilizzi una media query per ridefinire grid-template-areas come una disposizione a colonna singola: header, sidebar, main, aside e footer impilati verticalmente. L'ordine del DOM viene mantenuto; cambia solo il template visivo della griglia. Le aree Grid rendono leggibile la ristrutturazione reattiva.
<header>Header</header>
<div class="sidebar">Sidebar</div>
<main>Main</main>
<aside>Aside</aside>
<footer>Footer</footer>Nascondere le sidebar in modo reattivo
Su tablet, rimuova l'aside destro ed espanda il main: ridefinisca in "header header" "sidebar main" "footer footer" con grid-template-columns: 240px 1fr. Imposti aside { display: none } oppure lo sposti sotto il main nella definizione delle aree.
Spaziatura e padding
Aggiunga uno spazio tra le tracce della griglia: gap: var(--spacing-4). Applichi il padding all'interno di ogni area invece che al contenitore Grid, per mantenere uniforme la spaziatura. In genere header e footer ricevono un padding orizzontale proprio, allineato alla larghezza massima della griglia.
Griglie annidate
L'area del contenuto principale può essere a sua volta una griglia: per esempio, un articolo a due colonne con sidebar all'interno dell'area principale. Le griglie annidate creano un layout del contenuto dentro il layout della struttura della pagina, senza gerarchie di classi complesse o posizionamenti annidati in profondità.
Header persistente
Renda persistente l'header: header { position: sticky; top: 0; z-index: 10; }. In un layout Grid, il posizionamento sticky su un elemento figlio della griglia funziona come previsto: l'header rimane in posizione mentre main, sidebar e aside scorrono sotto di esso.
Sidebar persistenti nel layout Holy Grail
Entrambe le sidebar possono essere persistenti: nav, aside { position: sticky; top: 0; height: 100vh; overflow-y: auto; }. Rimangono visibili mentre il contenuto principale scorre, creando un layout a tre pannelli in cui scorre solo quello centrale.
Grid vs Flexbox per il layout della pagina
Utilizzi Grid per layout bidimensionali della struttura della pagina, come Holy Grail: Grid eccelle nel posizionare contemporaneamente gli elementi in righe e colonne denominate. Utilizzi Flexbox per layout monodimensionali dei componenti, ad esempio elementi di navigazione disposti in una riga o contenuti di card disposti in una colonna, all'interno delle aree Grid.
Verifica delle conoscenze
Perché grid-template-areas è particolarmente utile nei layout Holy Grail reattivi?
Riepilogo
CSS Grid rende banale il layout Holy Grail, storicamente difficile da realizzare: grid-template-areas assegna un nome alle regioni, 1fr fa sì che la riga centrale riempia l'altezza della viewport e le media query ridefiniscono la mappa delle aree per la compressione reattiva. Header e sidebar persistenti si aggiungono senza ulteriore complessità.
Domande Frequenti
La lezione «Layout Holy Grail con Grid» è gratuita?
Sì — il testo completo di «Layout Holy Grail con Grid» è gratuito qui sul web. Per esercitarvi in modo interattivo (un editor di codice integrato e un tutor IA 24/7) e sbloccare il resto del corso CSS Academy, passa a CoddyKit PRO. Il corso CSS Academy include 4 lezioni in totale.
Cosa imparerò in «Layout Holy Grail con Grid»?
Implementi il classico layout Holy Grail con header, footer, contenuto principale e due sidebar utilizzando CSS Grid. Eserciti CSS Academy con codice pratico che esegui direttamente nel browser, e un tutor IA 24/7 risponde alle tue domande mentre lavori sulla lezione.
Ho bisogno di esperienza per iniziare CSS Academy?
Non è richiesta alcuna esperienza precedente. CSS Academy su CoddyKit è strutturato per principianti e studenti avanzati, quindi puoi iniziare da qui o dall'inizio e procedere al tuo ritmo. Questa è la lezione 2 di 4.
Quanto tempo richiede la lezione «Layout Holy Grail con Grid»?
La maggior parte delle lezioni CoddyKit richiede circa 5–10 minuti. Ogni lezione è breve e interattiva, quindi fai progressi costanti e riprendi esattamente da dove hai lasciato su web e app.
Posso scrivere ed eseguire codice in questa lezione CSS Academy?
Sì. Ogni lezione CSS Academy include un editor di codice integrato, quindi scrivi ed esegui codice reale direttamente nel tuo browser e ricevi feedback istantaneo dall'IA — nessuna configurazione locale necessaria.
Tutte le lezioni di questo corso
- Layout con footer e sidebar sticky
- Layout Holy Grail con Grid
- Layout masonry: approcci CSS e JS
- Design intrinseco: dimensionamento basato sul contenuto