HTML
Struktur und Inhalt einer Webseite.
CSS Grid ist ein Layoutsystem, mit dem HTML-Elemente in Zeilen und Spalten angeordnet werden können.
Grid eignet sich besonders für Webseitenlayouts, Bildergalerien, Dashboards und Kartenübersichten.
Mit display: grid wird ein HTML-Element zu einem Grid-Container.
<div class="container">
<div>1</div>
<div>2</div>
<div>3</div>
</div>
.container {
display: grid;
grid-template-columns: 1fr 1fr 1fr;
gap: 12px;
}
Mit grid-template-columns wird festgelegt, wie viele Spalten ein Grid besitzt und wie breit diese sind.
.container {
display: grid;
grid-template-columns: 1fr 1fr;
}
.container {
display: grid;
grid-template-columns: 1fr 1fr 1fr;
}
Die Einheit fr steht für einen Anteil des verfügbaren Platzes im Grid-Container.
.container {
display: grid;
grid-template-columns: 1fr 2fr;
}
Die zweite Spalte erhält doppelt so viel des verteilbaren Platzes wie die erste Spalte.
Feste Größen wie px können mit flexiblen Größen wie fr kombiniert werden.
.container {
display: grid;
grid-template-columns: 100px minmax(0, 1fr);
}
Mit repeat() können sich wiederholende Spaltendefinitionen vereinfacht werden.
grid-template-columns: 1fr 1fr 1fr;
grid-template-columns: repeat(3, 1fr);
Beide Schreibweisen erzeugen drei gleich große flexible Spalten.
Mit grid-template-rows können die Höhen expliziter Grid-Zeilen festgelegt werden.
.container {
display: grid;
grid-template-columns: repeat(2, 1fr);
grid-template-rows: 60px 110px;
}
Mit gap wird der Abstand zwischen Zeilen und Spalten festgelegt.
.container {
display: grid;
gap: 20px;
}
Alternativ können row-gap und column-gap getrennt verwendet werden.
.container {
row-gap: 10px;
column-gap: 25px;
}
Mit grid-column wird bestimmt, über welche Spalten sich ein Grid-Element erstreckt.
.breit {
grid-column: span 2;
}
Mit grid-row kann ein Element über mehrere Zeilen angeordnet werden.
.hoch {
grid-row: span 2;
}
CSS Grid verwendet nummerierte Linien, um Elemente zu positionieren.
Bei drei Spalten gibt es vier vertikale Begrenzungslinien.
.element {
grid-column: 1 / 3;
}
Das Element beginnt an Linie 1 und endet an Linie 3. Es belegt damit zwei Spalten.
Mit minmax() können Mindest- und Höchstgrößen für Grid-Spalten definiert werden.
.container {
display: grid;
grid-template-columns:
repeat(3, minmax(150px, 1fr));
}
Die Spalten besitzen eine Mindestbreite von 150px und können flexibel wachsen.
Mit auto-fit kann die Anzahl der Spalten automatisch an den verfügbaren Platz angepasst werden.
.container {
display: grid;
grid-template-columns:
repeat(
auto-fit,
minmax(min(100%, 180px), 1fr)
);
gap: 15px;
}
Mit align-items wird festgelegt, wie die Grid-Elemente innerhalb ihrer Bereiche entlang der Blockachse ausgerichtet werden.
.container {
display: grid;
align-items: center;
}
Mit justify-content kann das gesamte Spaltenraster innerhalb des Containers entlang der Inline-Achse ausgerichtet werden, wenn freier Platz vorhanden ist.
.container {
display: grid;
grid-template-columns:
repeat(3, 70px);
justify-content: center;
}
Mit grid-template-areas können benannte Bereiche innerhalb eines Layouts definiert werden.
Diese Technik eignet sich besonders für komplette Webseitenlayouts.
.seite {
display: grid;
grid-template-columns:
170px minmax(0, 1fr);
grid-template-areas:
"header header"
"sidebar main"
"footer footer";
}
.header {
grid-area: header;
}
.sidebar {
grid-area: sidebar;
}
.main {
grid-area: main;
}
.footer {
grid-area: footer;
}
Hier befindet sich der Hauptinhalt der Webseite.
| Merkmal | Flexbox | Grid |
|---|---|---|
| Grundprinzip | Eine Hauptachse | Zeilen und Spalten |
| Typische Verwendung | Navigation, Buttons, Werkzeugleisten | Seitenlayouts, Galerien, Dashboards |
| Spalten definieren | Über Flex-Eigenschaften | grid-template-columns |
| Zeilen definieren | Abhängig von Umbruch und Richtung | grid-template-rows |
| Abstände | gap | gap |
Mit CSS Grid können mehrere Karten automatisch in Spalten angeordnet werden.
<div class="karten">
<article class="karte">
<h3>HTML</h3>
<p>Struktur einer Webseite</p>
</article>
<article class="karte">
<h3>CSS</h3>
<p>Design und Layout</p>
</article>
<article class="karte">
<h3>PHP</h3>
<p>Serverseitige Programmierung</p>
</article>
</div>
.karten {
display: grid;
grid-template-columns:
repeat(
auto-fit,
minmax(min(100%, 220px), 1fr)
);
gap: 18px;
}
.karte {
background: white;
padding: 22px;
border-radius: 12px;
border: 1px solid #dce6f3;
}
Struktur und Inhalt einer Webseite.
Gestaltung, Farben und Layout.
Serverseitige Programmierung.
Datenbanken und Datenabfragen.
Mit den folgenden Schaltflächen können Sie die Anzahl der Grid-Spalten verändern.
Dieses Beispiel zeigt, wie sich die Anordnung durch grid-template-columns verändert.
Mit welcher CSS-Eigenschaft wird Grid aktiviert?
display: grid;
Erstellen Sie ein Grid mit zwei gleich breiten Spalten.
.container {
display: grid;
grid-template-columns: 1fr 1fr;
}
Erstellen Sie drei gleich breite Spalten mit repeat().
.container {
display: grid;
grid-template-columns: repeat(3, 1fr);
}
Legen Sie einen Abstand von 20px zwischen den Grid-Elementen fest.
.container {
display: grid;
gap: 20px;
}
Erstellen Sie zwei Spalten, wobei die zweite Spalte doppelt so breit wie die erste sein soll.
grid-template-columns: 1fr 2fr;
Lassen Sie ein Grid-Element über zwei Spalten reichen.
.element {
grid-column: span 2;
}
Lassen Sie ein Grid-Element über zwei Zeilen reichen.
.element {
grid-row: span 2;
}
Erstellen Sie ein responsives Grid mit einer bevorzugten Mindestbreite von 200px pro Spalte.
.container {
display: grid;
grid-template-columns:
repeat(
auto-fit,
minmax(min(100%, 200px), 1fr)
);
}
Was ist der grundlegende Unterschied zwischen Flexbox und Grid?
Flexbox ist hauptsächlich eindimensional. CSS Grid ermöglicht zweidimensionale Layouts mit Zeilen und Spalten.
Erstellen Sie ein Layout mit Header über zwei Spalten, Sidebar links, Main rechts und Footer über zwei Spalten.
.seite {
display: grid;
grid-template-columns: 200px 1fr;
grid-template-areas:
"header header"
"sidebar main"
"footer footer";
}
.header { grid-area: header; }
.sidebar { grid-area: sidebar; }
.main { grid-area: main; }
.footer { grid-area: footer; }
CSS Grid ermöglicht die Gestaltung von zweidimensionalen Layouts. Mit grid-template-columns und grid-template-rows werden Spalten und Zeilen definiert.
Mit gap werden Abstände festgelegt. grid-column und grid-row bestimmen, über wie viele Spalten und Zeilen sich Elemente erstrecken.
Für flexible Layouts sind repeat(), minmax() und auto-fit besonders hilfreich. Mit grid-template-areas können komplette Webseiten strukturiert werden.