9.1 Eigenschaft grid-template-areas
CSS Grid Layout bietet ernsthafte Möglichkeiten zum Erstellen komplexer Layouts mit benannten Bereichen (grid areas). Die Eigenschaft grid-template-areas ermöglicht es, Grid-Bereiche zu definieren, die zur vereinfachten Platzierung von Elementen verwendet werden können. Diese Eigenschaft erlaubt es Entwicklern, das Layout visuell zu organisieren und die Wartung zu erleichtern.
Grundkonzepte von grid-template-areas
- Definition von Bereichen:
- Die Eigenschaft
grid-template-areaserlaubt die Benennung verschiedener Bereiche des Grids - Jeder Bereichsname repräsentiert eine rechteckige Gruppe von Zellen
- Die Eigenschaft
- Verwendung benannter Bereiche:
- Definierte Bereiche können zur Platzierung von Elementen verwendet werden, indem man die Eigenschaft
grid-areafür jedes Element setzt
- Definierte Bereiche können zur Platzierung von Elementen verwendet werden, indem man die Eigenschaft
Syntax von grid-template-areas:
.container {
display: grid;
grid-template-areas:
"header header header"
"sidebar main main"
"footer footer footer"
}
Syntax für Grid-Elemente:
.header {
grid-area: header;
}
.sidebar {
grid-area: sidebar;
}
.main {
grid-area: main;
}
.footer {
grid-area: footer;
}
Erklärung:
- Jede Zeile im Wert von
grid-template-areasrepräsentiert eine Zeile im Grid - Jedes Wort in der Zeile steht für eine Zelle oder eine Gruppe von Zellen
- Punkte (.) können für leere Zellen verwendet werden
9.2 Beispiel zur Verwendung von grid-template-areas
Beispiel einer vollständigen Implementierung:
.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;
}
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Beispiel 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>
Codeerklärung:
-
.grid-container: definiert den Grid-Container mitdisplay: gridund legt das Grid-Layout mitgrid-template-areasfest. In diesem Fall besteht das Layout aus drei Zeilen: die erste Zeile ist der Header, die zweite Zeile besteht aus einer Sidebar und dem Hauptinhalt, die dritte Zeile ist der Footer -
.header,.sidebar,.main,.footer: definieren die Stile für die verschiedenen Grid-Bereiche und verknüpfen diese Bereiche mit den Namen ingrid-template-areasüber die Eigenschaftgrid-area
9.3 Umgang mit leeren Bereichen
Die Eigenschaft grid-template-areas erlaubt es, Bereiche leer zu lassen, indem man das Symbol Punkt (.) verwendet, um leeren Raum zu kennzeichnen.
Beispiel einer vollständigen Implementierung:
.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;
}
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Leere Bereiche 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>
Codeerklärung:
-
.grid-container: erstellt den Grid-Container mit drei Bereichen: Header, Hauptinhalt und Footer. Die mittlere Zeile enthält leere Bereiche links und rechts vom Hauptinhalt -
.header,.main,.footer: definieren die Stile für die Bereiche und verknüpfen sie mit den Bereichsnamen ingrid-template-areas
GO TO FULL VERSION