Grid
Das CSS-Grid-Layout ist ein zweidimensionales Layoutsystem für das Web. Es ermöglicht dir, Inhalte in Reihen und Spalten zu organisieren und bietet viele Features, um die Erstellung komplexer Layouts zu vereinfachen.
Zunächst müssen wir einen Grid-Container erstellen. Dafür nutzen wir die display-Eigenschaft.
.container {
display: grid;
}Reihen und Spalten definieren
Mit grid-template-columns bzw. grid-template-rows können wir Spalten und Reihen definieren.
.container {
grid-template-columns: ... ...;
/* e.g.
1fr 1fr
minmax(10px, 1fr) 3fr
repeat(5, 1fr)
50px auto 100px 1fr
*/
grid-template-rows: ... ...;
/* e.g.
min-content 1fr min-content
100px 1fr max-content
*/
}Den Grid-Linien werden automatisch Zahlen zugewiesen.
Nun können wir mit grid-column bzw. grid-row den Start und Ende eines Grid-Items bestimmen.
.item {
grid-column: 3 / span 2;
grid-row: third-line / 4;
}grid-column und grid-rowTemplate-Areas
Mit Template-Areas können wir bestimmten Bereichen unseres Grids einen Namen geben.
.container {
display: grid;
grid-template-columns: repeat(4, 1fr);
grid-template-rows: auto;
grid-template-areas:
"header header header header"
"main main . sidebar"
"footer footer footer footer";
}template-areasMit grid-area können wir nun festlegen, welche Items zu welcher Area gehören.
.item {
grid-area: header;
}grid-areaAbstände
Mit gap können wir die Abstände zwischen den Reihen und den Spalten bestimmen.
.container {
gap: 1rem 2rem;
}Ausrichtung
Mit justify-items kannst du Grid-Items anhand der Inline-Achse ausrichten.
.container {
justify-items: start | end | center | stretch;
}justify-itemsMit align-items kannst du Grid-Items anhand der Block-Achse ausrichten.
.container {
align-items: start | end | center | stretch;
}align-itemsplace-items ist ein Shorthand für align-items und justify-items.
.center {
display: grid;
place-items: center / start;
}Wenn die Grösse des Grids kleiner ist als der eigentliche Grid-Container können wir das Grid innerhalb des Containers ausrichten. Mit justify-content richten wir das Grid anhand der Inline-Achse aus.
.container {
justify-content: start | end | center | stretch | space-around | space-between | space-evenly;
}justify-contentMit justify-content richten wir das Grid anhand der Block-Achse aus.
.container {
align-content: start | end | center | stretch | space-around | space-between | space-evenly;
}align-contentplace-content ist ein Shorthand für align-content und justify-content.
.container {
display: grid;
place-content: center;
}Die fr-Einheit
fr-EinheitDie fr-Einheit repräsentiert eine Fraktion des ürbigen Platzes.
.container {
grid-template-columns: 1fr 3fr;
}Hier sagen wir, dass die erste Spalte ca. des Platzes und die zweite Spalte ca. des Platzes einnimmt.
Die fr-Einheit kann aber natürlich auch in Kombination mit anderen Einheiten genutzt werden.
.container {
grid-template-columns: 50px min-content 1fr;
}Sizing-Keywords
Sizing Funktionen
Die repeat()-Funktion und Keywords
repeat()-Funktion und KeywordsDie Funktion repeat() kann einige Tipparbeit ersparen:
grid-template-columns:
1fr 1fr 1fr 1fr 1fr 1fr 1fr 1fr;
grid-template-columns:
repeat(8, 1fr);Aber repeat() kann besonders ausgefallen werden, wenn es mit Schlüsselwörtern kombiniert wird:
auto-fill: Passt so viele Spalten wie möglich in eine Zeile ein, auch wenn sie leer sind.auto-fit: Passt alle vorhandenen Spalten in den Platz ein. Bevorzuge expandierende Spalten, um den Platz zu füllen, anstatt leere Spalten.
grid-template-columns:
repeat(auto-fit, minmax(250px, 1fr));Mehr Informationen findest du in diesem Post.
Last updated