Ein Raster mit CSS Grid besteht grob gesagt aus einem Container und den darin enthaltenen Grid-Elementen. In diesem Artikel geht es um das CSS für den Container.
Angenommen, wir haben dieses HTML
<div class="grid-container"> <div class="grid-element">Eins</div> <div class="grid-element">Zwei</div> <div class="grid-element">Drei</div> </div>
Ohne weitere Anweisungen werden die Grid-Elemente einfach untereinander platziert und man sieht nicht viel.
See the Pen CSS Grid Demo 1 by Kirsten (@netzialist) on CodePen.
Spalten definieren mit grid-template-columns
Mit den folgenden drei Zeilen CSS wird aus dem Container ein Grid-Container. display:grid
initiiert den Grid und mit grid-template-columns
bauen wir die Spalten des Rasters. grid-gap
sorgt für die Abstände.
.grid-container { display: grid; grid-template-columns: 1fr 1fr 1fr; grid-gap: 2px; }
See the Pen CSS-Grid Demo 2 by Kirsten (@netzialist) on CodePen.
Die Einheit fr
bedeutet Fraction, das ist der zur Verfügung stehende freie Platz im Grid. grid-template-columns: 1fr 1fr 1fr;
bedeutet, dass der zur Verfügung stehende freie Platz in 3 gleiche Teile geteilt wird.
Man kann auch andere Einheiten anstatt fr verwenden, px, em, rem oder %. Man kann die Einheiten miteinander mischen.
grid-template-columns: 200px 200px 200px; grid-template-columns: 25% auto 200px;
Alternative Schreibweise für grid-template-columns
Den oben gezeigten dreispaltigen Raster kann man auch anders schreiben, indem man die repeat
-Anweisung einsetzt. Bei Grids mit vielen Elementen wird der Code dadurch übersichtlicher. Das Ergebnis ist bei beiden Schreibweise derselbe dreispaltige Raster.
grid-template-columns: 1fr 1fr 1fr; grid-template-columns: repeat (3, 1fr);
Reihen hinzufügen mit grid-template-rows
Bisher haben wir nur die Dimensionen der Spalten (columns) definiert. Für viele Fälle ist das vollkommen ausreichend.
Mit der Eigenschaft grid-template-rows
kann man auch Angaben für Reihen (rows) definieren. Das würde man beispielsweise dann machen, wenn die Reihen unterschiedliche Höhen haben sollen.
See the Pen CSS-Grid Demo 3 by Kirsten (@netzialist) on CodePen.
Im nächsten Artikel in dieser Reihe geht es um die Platzierung der Grid-Elemente innerhalb des Containers: Einführung in CSS Grid: Die Elemente im Grid-Container