Responsive · 10 Min. Lesezeit

Responsive Layouts mit CSS Grid: Tutorial mit minmax und auto-fit

So baust du Grid-Layouts, die sich ohne ein Dutzend Media Queries an jede Bildschirmbreite anpassen, von der Karten-Galerie bis zum kompletten Seitengerüst.

Jan-Tristan Rudat
Von Jan-Tristan Rudat
Aktualisiert: Juni 2026

Responsives Webdesign hieß lange Zeit: viele Breakpoints, viele Media Queries, viel Pflegeaufwand. CSS Grid dreht dieses Prinzip um. Mit den Funktionen repeat(), minmax() und den Schlüsselwörtern auto-fit beziehungsweise auto-fill entstehen Layouts, die sich von selbst an die verfügbare Breite anpassen. Du beschreibst nicht mehr, was bei genau 768 Pixeln passiert, sondern definierst Regeln, nach denen der Browser die Spalten eigenständig berechnet. Dieses Tutorial zeigt Schritt für Schritt, wie das funktioniert, wo die Stolperfallen liegen und wann klassische Media Queries trotzdem die bessere Wahl bleiben.

Alle Beispiele kannst du direkt im CSS Grid Generator nachbauen und live ausprobieren, ohne etwas zu installieren. Die Werte sind so gewählt, dass sie sich eins zu eins in eigene Projekte übernehmen lassen.

Das Grundprinzip: intrinsisch responsiv statt breakpoint-getrieben

Der klassische Ansatz fragt: Wie breit ist der Bildschirm? Der moderne Grid-Ansatz fragt: Wie viel Platz ist im Container, und wie viele sinnvoll breite Spalten passen da hinein? Diesen Stil nennt man intrinsisch responsiv, weil das Layout auf den tatsächlich verfügbaren Raum reagiert und nicht auf eine willkürliche Viewport-Schwelle. Der entscheidende Baustein dafür ist eine einzige Zeile:

.galerie {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(250px, 1fr));
  gap: 1rem;
}

Diese vier Zeilen ergeben eine Karten-Galerie, die auf einem breiten Monitor vier oder fünf Spalten zeigt, auf einem Tablet zwei bis drei und auf dem Smartphone eine einzige, ohne eine einzige Media Query. Der Browser teilt die Containerbreite immer wieder durch die geforderte Mindestbreite und legt entsprechend viele Spalten an. Damit das verständlich wird, sehen wir uns die drei beteiligten Funktionen einzeln an.

minmax(): die flexible Spurenbreite

minmax(min, max) definiert eine Spalten- oder Zeilenspur mit zwei Grenzen. Die Spur darf nie kleiner als der erste Wert und nie größer als der zweite Wert werden. minmax(250px, 1fr) bedeutet also: mindestens 250 Pixel breit, und wenn mehr Platz da ist, wächst die Spur flexibel auf ihren fr-Anteil. Die Einheit fr (fraction) verteilt den Restplatz, nachdem feste Größen und Abstände abgezogen wurden. Wer die fr-Einheit genauer verstehen will, findet die Details im Ratgeber zur fr-Einheit.

Tipp: minmax gegen Überläufe absichern

Ein fester Pixelwert als Mindestbreite kann auf sehr schmalen Geräten zum horizontalen Scrollen führen. Schreibe statt minmax(250px, 1fr) lieber minmax(min(250px, 100%), 1fr). Die innere min()-Funktion sorgt dafür, dass eine Spalte nie breiter als der Container wird, selbst wenn nur 200 Pixel zur Verfügung stehen.

auto-fit vs auto-fill: der wichtigste Unterschied

Beide Schlüsselwörter sagen dem Browser, dass er die Spaltenanzahl selbst bestimmen soll. Der Unterschied zeigt sich nur, wenn weniger Items vorhanden sind, als Spalten in eine Zeile passen würden. auto-fill legt trotzdem alle möglichen Spalten an und lässt die überzähligen leer, es bleiben also sichtbare Lücken am Zeilenende. auto-fit kollabiert diese leeren Spuren auf die Breite 0, sodass die vorhandenen Karten den gesamten Platz ausfüllen und sich gleichmäßig verteilen.

auto-fill: leere Spuren bleiben erhalten leer leer auto-fit: leere Spuren kollabieren, Karten füllen den Raum Karte 1 Karte 2 Karte 3
Drei Karten in einem breiten Container: oben auto-fill mit leeren Spuren, unten auto-fit mit ausgefüllter Zeile.

Faustregel: Sollen die vorhandenen Karten den Platz möglichst ausfüllen, nimm auto-fit. Soll dagegen die Spaltenbreite konstant bleiben und am Ende Platz für künftige Items reserviert werden, ist auto-fill richtig. Im Zweifel ist auto-fit für Galerien und Karten-Raster die häufiger gewünschte Variante.

Die Werkzeuge im Überblick

Funktion Bedeutung Typischer Einsatz
repeat(n, ...) Wiederholt ein Spurenmuster n-mal Kompakte Schreibweise für gleiche Spalten
auto-fit Erzeugt so viele Spalten wie möglich, leere kollabieren Karten füllen den Raum vollständig
auto-fill Wie auto-fit, leere Spuren bleiben aber bestehen Gleichbleibende Spaltenbreite, Platz für mehr Items
minmax(a, b) Spur zwischen Mindest- und Maximalbreite Flexible, aber begrenzte Spaltenbreite
min(a, b) Kleinerer der beiden Werte Mindestbreite gegen Überlauf absichern

Komplettes Beispiel: eine responsive Karten-Galerie

Hier ein lauffähiges, vollständiges Beispiel. Kopiere es in eine HTML-Datei, öffne sie im Browser und ändere die Fensterbreite: Die Spaltenzahl passt sich stufenlos an, von einer bis zu mehreren Spalten.

<style>
  .galerie {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(min(220px, 100%), 1fr));
    gap: 1rem;
    padding: 1rem;
  }
  .karte {
    background: #fff;
    border: 1px solid #e2e8f0;
    border-radius: 12px;
    padding: 1.25rem;
  }
</style>

<div class="galerie">
  <div class="karte">Karte 1</div>
  <div class="karte">Karte 2</div>
  <div class="karte">Karte 3</div>
  <div class="karte">Karte 4</div>
  <div class="karte">Karte 5</div>
  <div class="karte">Karte 6</div>
</div>

Der entscheidende Teil ist repeat(auto-fit, minmax(min(220px, 100%), 1fr)). Das min(220px, 100%) verhindert horizontales Scrollen auf schmalen Geräten, auto-fit sorgt für volle Zeilen, und 1fr verteilt den Restplatz gleichmäßig. Mehr Aufwand braucht eine moderne Karten-Galerie nicht.

Wann Media Queries trotzdem sinnvoll sind

Für reine Spaltenanzahl sind Media Queries mit Grid oft überflüssig. Sobald sich aber die Struktur des Layouts ändern soll, kommen sie zurück ins Spiel. Ein klassisches Beispiel ist das Seitengerüst mit Kopfzeile, Seitenleiste, Inhalt und Fußzeile, das auf dem Desktop nebeneinander, auf dem Smartphone aber untereinander stehen soll. Hier helfen benannte Bereiche mit grid-template-areas in Kombination mit einer Media Query:

.seite {
  display: grid;
  gap: 1rem;
  grid-template-areas:
    "kopf"
    "inhalt"
    "leiste"
    "fuss";
}

@media (min-width: 768px) {
  .seite {
    grid-template-columns: 220px 1fr;
    grid-template-areas:
      "kopf   kopf"
      "leiste inhalt"
      "fuss   fuss";
  }
}

Auf kleinen Bildschirmen erscheinen alle Bereiche gestapelt, ab 768 Pixeln rückt die Seitenleiste neben den Inhalt. Diese strukturelle Umordnung lässt sich mit auto-fit nicht ausdrücken, weil dabei nicht nur die Spaltenzahl, sondern die Anordnung der Bereiche wechselt. Faustregel: auto-fit und minmax für gleichartige Elemente, Media Queries für strukturelle Layoutwechsel.

Achtung: visuelle Reihenfolge und Barrierefreiheit

Grid kann Items visuell umordnen, etwa mit order oder über die Platzierung in Areas. Die Vorlesereihenfolge von Screenreadern und die Tab-Reihenfolge richten sich aber weiter nach der Quellcode-Reihenfolge im HTML. Weichen visuelle und logische Ordnung stark voneinander ab, entstehen Barrieren. Halte die DOM-Reihenfolge möglichst nah an der Leserichtung. Mehr dazu im Ratgeber zu Browser-Support und Barrierefreiheit.

Häufige Fehler und wie du sie vermeidest

Schneller zum Ziel mit dem Generator

Du musst die Syntax nicht auswendig kennen. Im CSS Grid Generator stellst du Spalten, minmax-Werte und gap visuell ein, schaltest zwischen Mobile-, Tablet- und Desktop-Vorschau um und exportierst sauberes CSS samt der passenden Media Queries. Das Tool läuft zu 100 Prozent lokal in deinem Browser, sendet keine Daten an einen Server und ist damit auch ohne Cookie-Banner DSGVO-konform nutzbar. So testest du auto-fit, auto-fill und minmax in Sekunden, statt Werte im Editor zu erraten.

Häufige Fragen zu responsivem CSS Grid

Wie erstelle ich ein responsives CSS Grid ohne Media Queries?

Mit der Kombination repeat(auto-fit, minmax(MIN, 1fr)) bei grid-template-columns. Der Browser legt automatisch so viele Spalten an, wie bei der jeweiligen Containerbreite hineinpassen, und verteilt den Restplatz gleichmäßig. Eine Media Query ist dafür nicht nötig.

Was ist der Unterschied zwischen auto-fit und auto-fill?

auto-fill behält leere Spaltenspuren bei, wenn nicht genug Items vorhanden sind, sodass Lücken am Zeilenende entstehen können. auto-fit kollabiert diese leeren Spuren auf 0, wodurch die vorhandenen Items den gesamten verfügbaren Platz ausfüllen. In den meisten Karten-Layouts ist auto-fit die gewünschte Variante.

Wofür steht minmax in CSS Grid?

minmax(min, max) definiert eine Spuren-Größe, die nie kleiner als min und nie größer als max wird. Typisch ist minmax(250px, 1fr): mindestens 250 Pixel breit, ansonsten flexibel wachsend bis zum gleichen Anteil wie die anderen Spalten.

Warum überläuft mein Grid auf schmalen Bildschirmen?

Meist ist der minmax-Mindestwert größer als der verfügbare Platz, etwa minmax(300px, 1fr) auf einem 320-Pixel-Viewport mit Padding. Verkleinere den Mindestwert oder nutze min(MIN, 100%) als untere Grenze, damit eine Spalte nie breiter als der Container wird.

Brauche ich für responsive Grids überhaupt noch Media Queries?

Für reine Spaltenanzahl meist nicht: auto-fit mit minmax passt sich stufenlos an. Media Queries bleiben sinnvoll, wenn sich das Layout strukturell ändern soll, etwa wenn eine Seitenleiste auf dem Smartphone unter den Hauptinhalt wandert oder sich grid-template-areas neu anordnen.

Funktioniert auto-fit mit minmax in allen aktuellen Browsern?

Ja. CSS Grid inklusive repeat(), auto-fit, auto-fill und minmax wird seit 2017 von allen gängigen Browsern (Chrome, Firefox, Safari, Edge) unterstützt und liegt laut Browser-Statistiken bei über 97 Prozent globaler Abdeckung. Ein Fallback ist nur für sehr alte Browser nötig.

Quellen und weiterführende Spezifikationen

Verwandte Artikel

Grundlagen

Die Einheit fr in CSS Grid einfach erklärt

fr vs px vs Prozent vs auto: Wann nutzt man welche Einheit? Mit Mini-Beispielen direkt im Generator.

Grundlagen

CSS Grid lernen: Der komplette Einsteiger-Leitfaden 2026

Container, Items, Zeilen und Spalten Schritt für Schritt, vom ersten Grid bis zum fertigen Layout.

Vergleich

CSS Grid vs Flexbox: Wann welches Layout?

Entscheidungshilfe mit Tabelle und Praxis-Szenarien: ein- oder zweidimensional, Komponente oder Seitenlayout.

Probier es direkt aus

Baue dein responsives Grid visuell, schalte die Geräte-Vorschau um und exportiere fertiges CSS. Kostenlos, ohne Anmeldung, 100 Prozent lokal im Browser.

Zum CSS Grid Generator
Anzeige
Anzeige
Anzeige
Anzeige
Anzeige