9.1 Proprietà grid-template-areas
CSS Grid Layout offre grandi possibilità per la creazione di layout complessi tramite aree nominate
(grid areas
). La proprietà grid-template-areas
permette di definire aree della griglia, che possono essere utilizzate
per posizionare gli elementi in modo più semplice. Questa proprietà consente ai developer di organizzare visivamente il layout e facilitarne la manutenzione.
Concetti principali di grid-template-areas
-
Definizione delle aree:
- La proprietà
grid-template-areas
permette di assegnare nomi a diverse aree della griglia - Ogni nome area rappresenta un gruppo rettangolare di celle
- La proprietà
-
Uso delle aree nominate:
-
Le aree definite possono essere utilizzate per il posizionamento degli elementi, impostando la proprietà
grid-area
per ciascun elemento
-
Le aree definite possono essere utilizzate per il posizionamento degli elementi, impostando la proprietà
Sintassi grid-template-areas:
.container {
display: grid;
grid-template-areas:
"header header header"
"sidebar main main"
"footer footer footer"
}
Sintassi per elementi Grid:
.header {
grid-area: header;
}
.sidebar {
grid-area: sidebar;
}
.main {
grid-area: main;
}
.footer {
grid-area: footer;
}
Spiegazione:
- Ogni riga nel valore di
grid-template-areas
rappresenta una riga nella griglia - Ogni parola in una riga rappresenta una cella o un gruppo di celle
- I punti (.) possono essere utilizzati per le celle vuote
9.2 Esempio di utilizzo di grid-template-areas
Esempio di implementazione completa:
CSS
.grid-container {
display: grid;
grid-template-areas:
"header header header"
"sidebar main main"
"footer footer footer";
grid-gap: 10px;
}
.header {
grid-area: header;
background-color: #2ecc71;
padding: 20px;
text-align: center;
}
.sidebar {
grid-area: sidebar;
background-color: #3498db;
padding: 20px;
text-align: center;
}
.main {
grid-area: main;
background-color: #9b59b6;
padding: 20px;
text-align: center;
}
.footer {
grid-area: footer;
background-color: #e74c3c;
padding: 20px;
text-align: center;
}
HTML
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Esempio Grid Areas</title>
<link rel="stylesheet" href="styles.css">
</head>
<body>
<div class="grid-container">
<div class="header">Header</div>
<div class="sidebar">Sidebar</div>
<div class="main">Main Content</div>
<div class="footer">Footer</div>
</div>
</body>
</html>
Spiegazione del codice:
-
.grid-container
: definisce il contenitore Grid utilizzandodisplay: grid
e imposta il layout della griglia usandogrid-template-areas
. In questo caso, il layout è composto da tre righe: la prima riga è l'intestazione, la seconda riga è costituita dalla barra laterale e dal contenuto principale, la terza riga è il footer -
.header
,.sidebar
,.main
,.footer
: definiscono gli stili per le varie aree della griglia e collegano queste aree con i nomi ingrid-template-areas
tramite la proprietàgrid-area
9.3 Gestione delle aree vuote
La proprietà grid-template-areas
consente di lasciare aree vuote, utilizzando il punto
(.) per indicare lo spazio vuoto.
Esempio di implementazione completa:
CSS
.grid-container {
display: grid;
grid-template-areas:
"header header header"
". main ."
"footer footer footer";
grid-gap: 10px;
}
.header {
grid-area: header;
background-color: #2ecc71;
padding: 20px;
text-align: center;
}
.main {
grid-area: main;
background-color: #9b59b6;
padding: 20px;
text-align: center;
}
.footer {
grid-area: footer;
background-color: #e74c3c;
padding: 20px;
text-align: center;
}
HTML
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Aree Vuote Grid Areas</title>
<link rel="stylesheet" href="styles.css">
</head>
<body>
<div class="grid-container">
<div class="header">Header</div>
<div class="main">Main Content</div>
<div class="footer">Footer</div>
</div>
</body>
</html>
Spiegazione del codice:
-
.grid-container
: crea un contenitore Grid con tre aree: intestazione, contenuto principale e footer. La riga centrale contiene aree vuote a sinistra e a destra del contenuto principale -
.header
,.main
,.footer
: definiscono gli stili per le aree e le collegano con i nomi delle aree ingrid-template-areas
GO TO FULL VERSION