Kontakt aufnehmen

Grid-Layout mit CSS erstellen

CSS-Grids können insbesondere bei der Darstellung von Daten auf responsiven Webseiten helfen. Grids in CSS funktionieren ähnlich wie Tabellen in HTML, sind aber deutlich flexibler. Daten, die sich in einem Grid befinden, können zum Beispiel ihre Spaltenanzahl je nach Bildschirmgröße ändern, um auf allen möglichen Bildschirmgrößen eine optimale Darstellung zu gewährleisten.

Einfache Tabelle

<div class="grid-container">
    <div>
        Zeile 1 Spalte 1
    </div>
    <div>
        Zeile 1 Spalte 2
    </div>
    <div>
        Zeile 2 Spalte 1
    </div>
    <div>
        Zeile 2 Spalte 2
    </div>
</div>
<style>
    .grid-container {
        display: grid;
        grid-template-columns: 50% 50%;
    }

    .grid-container > div {
        border: 1px dashed #ff0000;
    }
</style>

Hiermit haben wir eine Tabelle mit zwei Spalten definiert. Dabei haben die beiden Spalten keine festen Maße sondern passen sich flexibel an den verfügbaren Platz an.

Wenn nun die Dartstellung für einen Smartphone-Bildschirm optimiert werden soll, kann man mit einer einfachen Media-Query die Spaltenanzahl reduzieren.

@media (max-width: 400px) {
    .grid-container {
        grid-template-columns: 100%;
    }
}
    

Grid-Eigenschaften: Unterscheidung zwischen Container und Elementen

Bei den verfügbaren CSS-Grid-Eigenschaften unterscheidet man zwischen Container- und Kind-Element-Eigenschaften. Im Beispiel oben haben wir nur Eigenschaften für den Container (.grid-container) festgelegt. Die Kind-Elemente sind in diesem Fall die einzelnen ‹div›-Elemente inmerhalb dieses Containers.

Grid-Eigenschaften für Container

Wir haben bereits ein zweispaltiges Layout erzeugt. Mit grid-template-columns und grid-template-rows lassen sich Anzahl, sowie Platz der jeweiligen Spalten und Zeilen bestimmen. Mit grid-gap lassen sich außerdem noch die Abstände zwischen den Zeilen und Spalten eines Grids festlegen.

.grid-container {
    display: grid;
    grid-template-columns: 20% 20% auto; /* drei Spalten */
    grid-template-rows: 200px 100px; /* zwei Zeilen */
    grid-gap: 40px 10px; /* Zeilenabstand Spaltenabstand */
}
    

Grid-Eigenschaften für Kindelemente

Für einzelne Kindelmente lässt sich zum Beispiel deren Ausdehnung und Position bestimmen:

.grid-container > div:nth-child(3) {
    grid-row-start: 1;
    grid-row-end: 3;
    grid-column-start: 3;

}
    

Wir können aber auch die Position eines Elements innerhalb des ihm zur Verfügung stehenden Bereichs verändern. Hiermit positionieren wir das Element Nummer 3 genau in der Mitte des Bereichs.

.grid-container > div:nth-child(3) {
    grid-row-start: 1;
    grid-row-end: 3;
    grid-column-start: 3;
    align-self: center;
    justify-self: center;
}
    

Über uns

Stefan Wienströer

Wir entwickeln Webanwendungen mit viel Leidenschaft. Unser Wissen geben wir dabei gerne weiter. Mehr über a coding project

Cookie-Einstellungen

Helfen Sie dabei, uns noch besser zu machen. Wir nutzen Cookies und ähnliche Technologien, um die Website auf Ihre Bedürfnisse anzupassen. Zur Datenschutzerklärung

Auswahl speichern