Appearance
Kapitel 7: Ausrichtung von Grid-Elementen
🎯 Lernziele
In diesem Kapitel lernen Sie:
- ✅
justify-itemsundalign-itemsverwenden - ✅
justify-contentundalign-contentverstehen - ✅ Unterschied zwischen Container- und Element-Ausrichtung
- ✅ Häufige Fehler bei der Ausrichtung vermeiden
7.1 Ausrichtung innerhalb von Grid-Zellen
📖 Grundlegende Konzepte
Grid hat zwei Ausrichtungsebenen:
- Innerhalb von Grid-Zellen: Wie sind Elemente innerhalb ihrer Zelle ausgerichtet?
- Gesamtes Grid: Wie ist das Grid innerhalb des Containers ausgerichtet?
7.2 justify-items: Horizontale Ausrichtung (Inline-Achse)
📖 Definition
justify-items steuert die horizontale Ausrichtung aller Grid-Elemente innerhalb ihrer Zellen.
🎨 Visuelle Erklärung
Standard (stretch):
┌─────────────────────────────────┐
│ [Element füllt Zelle horizontal] │
└─────────────────────────────────┘center:
┌─────────────────────────────────┐
│ [Element] │
└─────────────────────────────────┘start:
┌─────────────────────────────────┐
│ [Element] │
└─────────────────────────────────┘end:
┌─────────────────────────────────┐
│ [Element] │
└─────────────────────────────────┘💻 Syntax
css
.container {
justify-items: stretch | start | end | center;
}💻 Beispiel
HTML:
html
<div class="container">
<div class="item">1</div>
<div class="item">2</div>
<div class="item">3</div>
</div>CSS:
css
.container {
display: grid;
grid-template-columns: 1fr 1fr 1fr;
gap: 20px;
justify-items: center; /* Alle Elemente horizontal zentrieren */
padding: 20px;
background-color: #f0f0f0;
}
.item {
background-color: #3498db;
color: white;
padding: 20px;
text-align: center;
width: 80%; /* Nicht volle Breite, damit Ausrichtung sichtbar */
}🔑 Wichtige Punkte
- ✅
justify-itemswirkt auf alle Grid-Elemente - ✅ Kann durch
justify-selfam einzelnen Element überschrieben werden - ✅ Standardwert:
stretch(Element füllt Zelle)
7.3 align-items: Vertikale Ausrichtung (Block-Achse)
📖 Definition
align-items steuert die vertikale Ausrichtung aller Grid-Elemente innerhalb ihrer Zellen.
🎨 Visuelle Erklärung
Standard (stretch):
┌──────────┐
│ │
│ Element │ (füllt Zelle vertikal)
│ │
└──────────┘center:
┌──────────┐
│ │
│ Element │ (zentriert)
│ │
└──────────┘start:
┌──────────┐
│ Element │
│ │
│ │
└──────────┘end:
┌──────────┐
│ │
│ │
│ Element │
└──────────┘💻 Syntax
css
.container {
align-items: stretch | start | end | center | baseline;
}💻 Beispiel
CSS:
css
.container {
display: grid;
grid-template-columns: 1fr 1fr 1fr;
grid-template-rows: 200px 200px; /* Feste Zeilenhöhe */
gap: 20px;
align-items: center; /* Alle Elemente vertikal zentrieren */
padding: 20px;
background-color: #f0f0f0;
}
.item {
background-color: #3498db;
color: white;
padding: 20px;
text-align: center;
height: auto; /* Nicht volle Höhe */
}🔑 baseline (Erwähnenswert)
css
.container {
align-items: baseline; /* Elemente an Text-Baseline ausrichten */
}Verwendung: Wenn Elemente unterschiedliche Schriftgrößen haben.
7.4 justify-content: Horizontale Ausrichtung des Grids
📖 Definition
justify-content steuert die Ausrichtung des gesamten Grids innerhalb des Containers auf der horizontalen Achse.
Wichtig: Nur wirksam, wenn das Grid schmaler ist als der Container!
🎨 Visuelle Erklärung
Container (breit):
┌─────────────────────────────────┐
│ │
│ │
└─────────────────────────────────┘Grid (schmaler):
┌─────────────────────────────────┐
│ [Grid] │ (start)
└─────────────────────────────────┘💻 Syntax
css
.container {
justify-content: start | end | center | stretch | space-around | space-between | space-evenly;
}💻 Beispiel
CSS:
css
.container {
display: grid;
grid-template-columns: 100px 100px 100px; /* Grid ist nur 300px breit */
gap: 20px;
justify-content: center; /* Grid horizontal zentrieren */
width: 800px; /* Container ist 800px breit */
padding: 20px;
background-color: #f0f0f0;
}
.item {
background-color: #3498db;
color: white;
padding: 40px;
text-align: center;
}🔑 Verschiedene Werte im Vergleich
| Wert | Verhalten |
|---|---|
start | Grid am Anfang (links) |
end | Grid am Ende (rechts) |
center | Grid in der Mitte |
space-around | Gleichmäßige Abstände um Grid |
space-between | Grid am Anfang und Ende, Rest gleichmäßig |
space-evenly | Alle Abstände gleich (auch zu den Rändern) |
7.5 align-content: Vertikale Ausrichtung des Grids
📖 Definition
align-content steuert die Ausrichtung des gesamten Grids innerhalb des Containers auf der vertikalen Achse.
Wichtig: Nur wirksam, wenn das Grid niedriger ist als der Container!
💻 Syntax
css
.container {
align-content: start | end | center | stretch | space-around | space-between | space-evenly;
}💻 Beispiel
CSS:
css
.container {
display: grid;
grid-template-columns: 1fr 1fr 1fr;
grid-template-rows: 100px 100px; /* Grid ist nur 200px hoch */
gap: 20px;
align-content: center; /* Grid vertikal zentrieren */
height: 500px; /* Container ist 500px hoch */
padding: 20px;
background-color: #f0f0f0;
}
.item {
background-color: #3498db;
color: white;
padding: 20px;
text-align: center;
}7.6 place-items: Kurzschreibweise
📖 Definition
place-items ist die Kurzschreibweise für align-items und justify-items.
💻 Syntax
css
.container {
place-items: <align-items> <justify-items>;
/* Wenn nur ein Wert: gilt für beide */
}💻 Beispiel
Lang:
css
.container {
align-items: center;
justify-items: center;
}Kurz:
css
.container {
place-items: center; /* Zentriert horizontal und vertikal */
}🎯 Perfektes Zentrieren
css
.container {
display: grid;
place-items: center; /* Horizontal und vertikal zentrieren */
min-height: 100vh; /* Volle Höhe */
}7.7 place-content: Kurzschreibweise
📖 Definition
place-content ist die Kurzschreibweise für align-content und justify-content.
💻 Syntax
css
.container {
place-content: <align-content> <justify-content>;
}💻 Beispiel
Lang:
css
.container {
align-content: center;
justify-content: center;
}Kurz:
css
.container {
place-content: center; /* Grid in der Mitte (horizontal + vertikal) */
}7.8 Praktische Übung: Ausrichtungen kombinieren
🎯 Übungsziel
Erstellen Sie ein Layout mit verschiedenen Ausrichtungen.
📝 Schritt 1: HTML erstellen
html
<!DOCTYPE html>
<html lang="de">
<head>
<meta charset="UTF-8">
<title>Grid Ausrichtung Übung</title>
<link rel="stylesheet" href="style.css">
</head>
<body>
<div class="container">
<div class="item">1</div>
<div class="item">2</div>
<div class="item">3</div>
<div class="item">4</div>
</div>
</body>
</html>📝 Schritt 2: CSS erstellen
css
/* style.css */
* {
margin: 0;
padding: 0;
box-sizing: border-box;
}
body {
font-family: Arial, sans-serif;
}
.container {
display: grid;
grid-template-columns: 150px 150px; /* Grid ist 300px + gap breit */
grid-template-rows: 150px 150px; /* Grid ist 300px + gap hoch */
gap: 20px;
/* Ausrichtung des Grids im Container */
justify-content: center; /* Horizontal zentrieren */
align-content: center; /* Vertikal zentrieren */
/* Ausrichtung der Elemente in Zellen */
justify-items: center; /* Horizontal in Zelle zentrieren */
align-items: center; /* Vertikal in Zelle zentrieren */
/* Container-Eigenschaften */
width: 800px;
height: 600px;
margin: 0 auto;
background-color: #f0f0f0;
padding: 20px;
}
.item {
background-color: #3498db;
color: white;
padding: 20px;
text-align: center;
width: 80%; /* Nicht volle Breite */
height: 80%; /* Nicht volle Höhe */
border-radius: 8px;
}🔍 Schritt 3: Ergebnis beobachten
Was passiert ist:
- ✅ Container: 800px breit, 600px hoch
- ✅ Grid: 320px breit (300px + 20px gap), 320px hoch
- ✅ Grid-Ausrichtung: Zentriert im Container (
justify-content: center,align-content: center) - ✅ Element-Ausrichtung: Zentriert in Zellen (
justify-items: center,align-items: center)
7.9 Häufige Fehler bei der Ausrichtung
❌ Fehler 1: justify-content wird nicht wirksam
Grund: Grid ist so breit wie Container.
Falsch:
css
.container {
display: grid;
grid-template-columns: 1fr 1fr 1fr; /* Grid füllt Container */
justify-content: center; /* WIRKT NICHT! */
}Richtig:
css
.container {
display: grid;
grid-template-columns: 200px 200px 200px; /* Grid ist schmaler als Container */
justify-content: center; /* JETZT WIRKT ES! */
width: 800px; /* Container breiter als Grid */
}❌ Fehler 2: align-items und align-content verwechseln
Unterschied:
align-items: Ausrichtung innerhalb von Zellenalign-content: Ausrichtung des gesamten Grids im Container
Falsch:
css
.container {
align-content: center; /* Falsch gemeint für Zellen-Ausrichtung */
}Richtig:
css
.container {
align-items: center; /* Richtig für Zellen-Ausrichtung */
}❌ Fehler 3: justify-self wird ignoriert
Grund: justify-items ist am Container gesetzt.
CSS:
css
.container {
justify-items: center; /* Alle Elemente zentriert */
}
.item:first-child {
justify-self: start; /* Überschreibt für erstes Element */
}📝 Zusammenfassung
In diesem Kapitel haben Sie gelernt:
✅ Ausrichtung innerhalb von Zellen:
justify-items: Horizontalalign-items: Vertikalplace-items: Kurzschreibweise
✅ Ausrichtung des Grids im Container:
justify-content: Horizontalalign-content: Vertikalplace-content: Kurzschreibweise
✅ Unterschiede verstehen:
justify-itemsvs.justify-contentalign-itemsvs.align-content
✅ Praktische Übung:
- Verschiedene Ausrichtungen kombiniert
- Perfektes Zentrieren erreicht
✅ Häufige Fehler:
justify-contentwirkt nicht (Grid zu breit)align-itemsundalign-contentverwechseltjustify-selfwird ignoriert
🎯 Nächste Schritte
Im nächsten Kapitel lernen Sie:
- 📖
grid-template-areasverwenden - 🎯 Grid-Bereiche benennen und platzieren
- 🛠️ Komplexe Layouts mit Areas erstellen
👉 Weiter zu Kapitel 8: Grid-Bereiche
💡 Tipps für Ausrichtung
- Merken Sie sich:
items= innerhalb von Zellen,content= gesamtes Grid place-items: center: Perfekt für absolutes Zentrieren- DevTools nutzen: Ausrichtungen visualisieren
- Testen Sie verschiedene Werte: Experimentieren Sie mit
start,end,center - Achtung bei
frEinheiten:justify-contentwirkt nicht, wenn Grid den Container füllt
Viel Erfolg beim Grid-Lernen! 🚀
