Seitenlayout mit Bereichen
Ein Grid eignet sich auch hervorragend für das Layout einer ganzen Seite. Unsere Seite besteht aus vier Teilen: dem Kopfbereich (header), dem Menü (nav), dem Hauptinhalt (main) und dem Fußbereich (footer). Setzen wir das Menü links neben den Inhalt, den Kopfbereich darüber und den Fußbereich darunter, beide über die ganze Breite.
Wir könnten jeden Teil mit den Nummern der Grid-Linien platzieren, aber es geht übersichtlicher: Wir können Teilen des Grids Namen geben und das Layout in CSS zeichnen. Der Wert der Eigenschaft grid-template-areas hat für jede Zeile des Grids eine Zeichenkette (einen Text in Anführungszeichen). In die Zeichenkette schreiben wir für jede Spalte dieser Zeile einen Namen. Benachbarte Zellen mit demselben Namen bilden zusammen einen Bereich.
body {
display: grid;
grid-template-columns: 8rem 1fr;
grid-template-areas:
"kopf kopf"
"menue inhalt"
"fuss fuss";
}Dieses Grid hat zwei Spalten und drei Zeilen. Der Bereich kopf umfasst beide Spalten der ersten Zeile, menue und inhalt teilen sich die zweite Zeile, und fuss füllt die ganze letzte Zeile. Die Menüspalte ist 8rem breit, und der Inhalt bekommt den Rest. Die Namen der Bereiche denken wir uns selbst aus; sie müssen nicht mit den Namen der Elemente übereinstimmen. Jeder Name ist ein Wort ohne Leerzeichen.
Dann sagen wir mit der Eigenschaft grid-area jedem Element, zu welchem Bereich es gehört. Hier wird der Name ohne Anführungszeichen geschrieben:
nav {
grid-area: menue;
}Zwei Dinge sind zu beachten: Alle Zeichenketten müssen gleich viele Namen enthalten, und jeder Bereich muss ein Rechteck sein. Sonst ignoriert der Browser die ganze Deklaration. Eine Zelle, die leer bleiben soll, schreibt man als Punkt (.).
So schreibst du es:
Anweisungen
- 1
Füge in der Regel für
bodydie Deklarationendisplay: gridundgrid-template-columns: 8rem 1frhinzu. Vorerst füllen die vier Teile der Seite die Zellen nacheinander, was wir noch nicht wollen. - 2
Füge in derselben Regel die Eigenschaft
grid-template-areasmit den drei Zeilen aus dem Beispiel oben hinzu:"kopf kopf","menue inhalt"und"fuss fuss". Noch ändert sich nichts: Der Plan ist gezeichnet, aber die Elemente wissen noch nicht, wohin sie gehören. - 3
Setze die Elemente in die Bereiche: Füge in der Regel für
headerdie Deklarationgrid-area: kopfhinzu, in der Regel fürnavgrid-area: menue, in der Regel fürmaingrid-area: inhaltund in der Regel fürfootergrid-area: fuss.