Grundlagen · 7 Min. Lesezeit

fr-Einheit in CSS Grid erklärt

Die fr-Einheit ist das Herzstück flexibler Grid-Layouts. Hier erfährst du, was 1fr genau bedeutet, wie sich fr von px, Prozent und auto unterscheidet und wann du welche Einheit nimmst.

Mateusz Viola
Von Mateusz Viola
Aktualisiert: Juni 2026

Wer mit CSS Grid anfängt, stolpert früher oder später über ein kleines Kürzel mit großer Wirkung: fr. In fast jedem Grid-Layout taucht es auf, etwa in grid-template-columns: 1fr 1fr 1fr. Doch was genau verteilt diese Einheit, und warum funktioniert sie oft besser als Prozent oder px? In diesem Ratgeber klären wir die fr-Einheit von Grund auf, vergleichen sie mit den anderen gängigen Maßeinheiten und zeigen an konkreten Beispielen, wann du welche nimmst. Alle Beispiele kannst du direkt im CSS Grid Generator ausprobieren.

Was bedeutet fr eigentlich?

Das Kürzel fr steht für fraction, also Bruchteil. Es ist eine Einheit, die es ausschließlich in CSS Grid gibt und die einen Anteil am verfügbaren Platz innerhalb des Grid-Containers beschreibt. Anders als px oder rem ist fr keine absolute Größe, sondern ein Verteilungsschlüssel. Ein Wert von 1fr bedeutet: nimm einen Anteil vom freien Raum.

Die formale Definition stammt aus der CSS Grid Layout Spezifikation des W3C. Dort heißt es sinngemäß, dass die fr-Einheit einen Anteil am freien Raum des Grid-Containers darstellt. Genau diese Formulierung, freier Raum und nicht Gesamtbreite, ist der Schlüssel zum Verständnis. Wenn du drei Spalten mit 1fr 1fr 1fr definierst, teilt der Browser den frei verfügbaren Platz in drei gleiche Teile auf. Schreibst du stattdessen 2fr 1fr 1fr, bekommt die erste Spalte doppelt so viel wie jede der beiden anderen, also die Hälfte des Raums.

Tipp: Denke bei fr nicht an Breite, sondern an Anteile. 1fr 1fr ist dasselbe wie 50fr 50fr oder 100fr 100fr: Es zählt nur das Verhältnis der Zahlen zueinander.

grid-template-columns: 200px 1fr 2fr · gap: 16px Containerbreite (z. B. 560px) 200px (fest) 1fr 2fr (doppelter Anteil) 1. Feste 200px und 2 × 16px gap werden abgezogen. 2. Der Rest (328px) wird im Verhältnis 1:2 verteilt: 1fr ≈ 109px, 2fr ≈ 219px.
Der Browser zieht erst feste Größen und Abstände ab und verteilt erst danach den Rest auf die fr-Anteile.

Wie der Browser fr berechnet

Die Reihenfolge der Berechnung ist entscheidend und erklärt, warum fr so robust ist. Der Browser geht in drei Schritten vor:

  1. Feste Größen abziehen: Alle Spuren mit absoluten Einheiten (px, rem, em) und Inhaltsgrößen (auto, min-content) werden zuerst aufgelöst.
  2. Abstände abziehen: Sämtliche gap-Werte zwischen den Spuren werden vom verfügbaren Platz entfernt.
  3. Rest verteilen: Der übrig gebliebene freie Raum wird durch die Summe aller fr-Werte geteilt. Das Ergebnis ist die Länge eines fr, die dann mit dem jeweiligen Anteil multipliziert wird.

Ein Rechenbeispiel: Bei grid-template-columns: 200px 1fr 2fr in einem 560px breiten Container mit gap: 16px rechnet der Browser: 560 minus 200 (feste Spalte) minus 32 (zwei gaps) ergibt 328px freien Raum. Diese 328px teilt er durch drei fr-Anteile insgesamt, also rund 109px pro fr. Die 1fr-Spalte wird etwa 109px breit, die 2fr-Spalte etwa 219px. Genau das zeigt das Diagramm oben.

fr vs px vs Prozent vs auto

Die wichtigste Entscheidung beim Aufbau eines Grids ist die Wahl der Einheit pro Spalte. Jede hat ein klares Einsatzgebiet. Die folgende Tabelle fasst zusammen, wann welche Einheit sinnvoll ist und worauf du achten musst.

Einheit Bezugsgröße Typischer Einsatz Achtung
fr Freier Raum (nach Abzug von gap und festen Spuren) Flexible Spalten, Hauptinhalt, gleichmäßige Aufteilung Respektiert min-width: auto, kann überlaufen (siehe minmax)
px Absolut (Pixel) Sidebars, Icon-Spalten, feste Abmessungen Nicht responsiv, kann auf kleinen Screens überlaufen
% Gesamte Containerbreite Selten nötig, eher aus Flexbox-Gewohnheit Ignoriert gap, Summe läuft schnell über 100 Prozent
auto Inhaltsgröße der Spur Spalten, die sich an ihren Inhalt anpassen, etwa Labels Breite ist schwer vorhersehbar, abhängig vom Inhalt

Der wichtigste Unterschied steckt zwischen fr und Prozent. Beide sehen auf den ersten Blick ähnlich aus, doch sie rechnen unterschiedlich. grid-template-columns: 33.33% 33.33% 33.33% bezieht sich auf die volle Containerbreite. Sobald du dann gap: 16px hinzufügst, summieren sich die drei Spalten plus zwei Lücken auf mehr als 100 Prozent, und das Grid läuft horizontal über. Mit 1fr 1fr 1fr passiert das nicht, weil fr den gap bereits vorher abzieht. Deshalb ist fr in Grid fast immer die bessere Wahl als Prozent.

Warnung: Mische niemals Prozent mit gap, ohne es zu testen. Das ist die häufigste Ursache für unerwartete horizontale Scrollbalken in Grid-Layouts. Wenn du aus der Flexbox-Welt kommst und reflexartig Prozent verwendest, stelle in Grid bewusst auf fr um.

fr mit minmax kombinieren

fr entfaltet seine volle Stärke erst zusammen mit der Funktion minmax(). Sie definiert eine untere und eine obere Grenze für eine Spur. Das löst gleich zwei Probleme: Spalten werden auf kleinen Bildschirmen nicht beliebig schmal, und gleichzeitig dürfen sie wachsen, wenn Platz da ist.

Das wohl bekannteste Muster für responsive Grids ohne Media Queries sieht so aus:

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

Hier passiert Folgendes: minmax(200px, 1fr) sorgt dafür, dass jede Spalte mindestens 200px breit ist, aber den restlichen Platz (1fr) gleichmäßig ausfüllt. repeat(auto-fit, ...) erzeugt automatisch so viele Spalten, wie nebeneinander passen. Wird der Container schmaler, fallen Karten in die nächste Zeile, ganz ohne Media Query. Dieses Muster ist die Grundlage moderner Karten-Galerien und im Responsive-Tutorial ausführlich erklärt.

Tipp gegen Überlauf: Wenn Inhalte deine fr-Spalten sprengen, ersetze 1fr durch minmax(0, 1fr). Die Null als Minimum erlaubt der Spur, unter ihre Inhaltsgröße zu schrumpfen, sodass lange Wörter oder Bilder das Layout nicht mehr auseinanderdrücken.

Typische Fallstricke mit fr

Drei Stolpersteine begegnen Einsteigern besonders häufig. Wer sie kennt, spart sich viel Debugging-Zeit:

Praxis-Beispiele für den Alltag

Drei Layouts, die du immer wieder brauchst, und die passende fr-Schreibweise dazu. Kopiere sie als Startpunkt oder baue sie visuell im Generator nach.

1. Sidebar plus Hauptinhalt

grid-template-columns: 260px 1fr;
/* Feste Sidebar links, flexibler Inhalt rechts */

2. Drei gleich breite Spalten

grid-template-columns: repeat(3, 1fr);
/* Kurzform für 1fr 1fr 1fr */

3. Asymmetrisches Inhalt-zu-Rand-Verhältnis

grid-template-columns: 1fr 3fr 1fr;
/* Schmale Ränder, breiter Mittelteil (Lese-Layout) */

Wenn du sehen möchtest, wie sich diese Werte live auswirken, öffne den CSS Grid Generator, stelle die Spaltenanzahl ein und wechsle die Einheit pro Spalte zwischen fr, px und auto. Der Live-Code passt sich sofort an, und du siehst genau, wie sich der freie Raum verschiebt.

Häufige Fragen zur fr-Einheit

Was bedeutet fr in CSS Grid?

fr ist eine Einheit für einen Bruchteil (fraction) des verfügbaren Platzes im Grid-Container. 1fr bedeutet einen Anteil am freien Raum, der nach Abzug fester Größen und Abstände übrig bleibt. Bei grid-template-columns: 1fr 1fr 1fr entstehen drei gleich breite Spalten, die sich den Platz teilen.

Was ist der Unterschied zwischen fr und Prozent?

Prozent bezieht sich auf die gesamte Containerbreite und ignoriert den gap, wodurch die Summe leicht über 100 Prozent läuft und ein Überlauf entsteht. fr verteilt nur den freien Raum, der nach Abzug von gap und festen Spalten bleibt. Deshalb funktioniert fr mit gap zuverlässig, Prozent nicht.

Wann sollte ich fr und wann px verwenden?

px nimmt man für Spalten mit fester Breite, etwa eine Sidebar oder eine Icon-Spalte. fr nimmt man für flexible Spalten, die den restlichen Platz ausfüllen sollen, etwa den Hauptinhalt. Eine typische Kombination ist grid-template-columns: 240px 1fr, also feste Sidebar plus flexibler Inhalt.

Warum läuft mein Grid mit 1fr trotzdem über?

Das liegt fast immer an Inhalten, die nicht schrumpfen können, etwa langen Wörtern, Bildern ohne max-width oder pre-Blöcken. 1fr respektiert die minimale Inhaltsgröße (min-width: auto). Die Lösung ist minmax(0, 1fr) statt 1fr, damit die Spur unter ihre Inhaltsgröße schrumpfen darf.

Was bedeutet minmax(100px, 1fr)?

minmax(100px, 1fr) definiert eine Spur, die mindestens 100px breit ist und höchstens den verfügbaren freien Raum (1fr) einnimmt. Unterschreitet der Platz 100px, bleibt die Spur bei 100px. Diese Kombination ist die Basis für responsive Grids mit repeat(auto-fit, minmax(...)).

Kann ich fr und px in einer Zeile mischen?

Ja, das ist sogar der Normalfall. grid-template-columns: 200px 1fr 2fr erzeugt eine feste 200px-Spalte, danach werden die restlichen Spalten im Verhältnis 1 zu 2 aus dem freien Raum berechnet. Feste Einheiten und gap werden zuerst abgezogen, der Rest wird auf die fr-Anteile verteilt.

Quellen

Verwandte Artikel

Grundlagen CSS Grid lernen: Der komplette Einsteiger-Leitfaden Responsive Responsive Layouts mit minmax und auto-fit Vergleich CSS Grid vs Flexbox: Wann welches Layout?

fr-Einheit direkt ausprobieren

Stelle Spalten mit fr, px und auto im visuellen Editor ein und exportiere fertigen CSS-Code, kostenlos und ohne Anmeldung.

Zum CSS Grid Generator
Anzeige
Anzeige
Anzeige
Anzeige
Anzeige