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.

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;
}

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.

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