Responsive Design

Responsive Design

Responsive Design sorgt dafür, dass ein Layout auf jedem Bildschirm funktioniert. Ein Viewport-Tag, fluide Einheiten und Mobile-First Media Queries decken die große Mehrheit aller Anwendungsfälle ab.

beginner15 min readUpdated 15. Sept. 2026
responsive.css
css
/* responsive.css */
.page {
  padding: clamp(1rem, 4vw, 2.5rem);
}

.grid {
  display: grid;
  gap: 1.5rem;
  grid-template-columns: 1fr;
}

@media (min-width: 768px) {
  .grid { grid-template-columns: repeat(2, 1fr); }
}

@media (min-width: 1024px) {
  .grid { grid-template-columns: repeat(3, 1fr); }
}
Viewport
width=device-width
Ansatz
Mobile first
Breakpoints
min-width media queries
Einheiten
%, rem, vw, fr
Fluide Typografie
clamp()
Modern
Container queries

Warum es wichtig ist

Warum Responsive Design der Standard ist

Eine Codebasis

Ein einziges Layout passt sich von kleinen Telefonen bis hin zu Ultrawide-Monitoren an, anstatt separate Seiten pflegen zu müssen.

Bessere User Experience

Inhalte bleiben in jeder Größe lesbar und bedienbar, was die Usability und die Conversion-Rate verbessert.

In CSS integriert

Flexbox, Grid, fluide Einheiten und Container Queries bewältigen die Responsivität ganz ohne JavaScript.

Das Gesamtbild

Die drei Säulen des Responsive Design

Ein fluides Basis-Layout, Breakpoints für strukturelle Änderungen und flexible Medien, die niemals überlaufen.

Die Basis

Fluid

Beginne mit einem einspaltigen, fluiden Layout, das überall funktioniert.

Breakpoints

Adapt

Füge Media Queries dort hinzu, wo das Layout seine Struktur ändern muss.

Medien

Flex

Bilder, Videos und Grids, die schrumpfen, ohne überzulaufen.

Responsive Design auf einen Blick

Die Kerntechniken

Viewport Tag

Weist mobile Browser an, die Gerätebreite zu verwenden, anstatt herauszuzoomen.

Mobile first

Schreibe Basis-Styles für kleine Bildschirme und ergänze größere mit min-width.

Breakpoints

Setze sie dort, wo der Inhalt bricht, nicht basierend auf Gerätegrößen.

Fluide Einheiten

Prozent, rem, vw und fr skalieren mit dem Viewport.

clamp()

Lege Minimum, Wunschwert und Maximum in einer einzigen Deklaration fest.

Container queries

Reagiere auf die Größe einer Komponente selbst, nicht auf den Viewport.

Eine kurze Geschichte

Von festen Breiten zum Intrinsic Layout

  1. 2001

    Fluide Layouts

    Prozentbasierte Layouts beginnen, Tabellen mit fester Breite zu ersetzen.

    01
  2. 2010

    Responsive Web Design

    Ethan Marcotte benennt die Kombination aus fluiden Grids, flexiblen Bildern und Media Queries.

    10
  3. 2012

    Mobile first

    Das Design primär für kleine Bildschirme wird zum empfohlenen Ansatz.

    12
  4. 2017

    Flexbox und Grid

    Native Layout-Systeme machen responsive Strukturen wesentlich einfacher.

    17
  5. Heute

    Intrinsic und Container Queries

    Komponenten reagieren auf ihre eigene Größe, was viewport-abhängigen Code reduziert.

    Heute

Der vollständige Leitfaden

Responsive Design: Alles was Sie wissen müssen

Was ist Responsive Design?

Responsive Design ist der Ansatz, ein einziges Layout zu erstellen, das sich an jeden Bildschirm anpasst. Anstatt eine separate mobile Seite zu bauen, schreiben Sie ein fluides Basis-Layout, fügen Breakpoints hinzu, an denen sich die Struktur ändern muss, und lassen Medien schrumpfen oder wachsen, um optimal zu passen.

Es hat sich als Standard durchgesetzt, weil es schlichtweg besseres Engineering ist: eine Codebase, ein Satz an Inhalten und eine einzige URL für das Ranking und zum Teilen. Modernes CSS — Flexbox, Grid, fluide Einheiten und Container Queries — macht die Umsetzung einfacher als je zuvor.

Der Viewport-Tag

Alles beginnt mit dem Viewport-Meta-Tag.

<!-- index.html -->
<meta name="viewport" content="width=device-width, initial-scale=1" />

Ohne diesen Tag nehmen mobile Browser eine Viewport-Breite für Desktops an und zoomen heraus, wodurch Texte winzig werden und deine Breakpoints nicht mehr funktionieren. Mit dem Tag entspricht die CSS-Pixelbreite dem Gerät, sodass Media Queries vorhersehbar reagieren.

Mobile-first

Schreibe deine Basis-Styles für kleine Bildschirme und erweitere sie anschließend für größere Displays mithilfe von min-width.

/* mobile-first.css */
.grid {
  display: grid;
  grid-template-columns: 1fr;
  gap: 1rem;
}

@media (min-width: 768px) {
  .grid {
    grid-template-columns: repeat(2, 1fr);
  }
}

@media (min-width: 1024px) {
  .grid {
    grid-template-columns: repeat(3, 1fr);
  }
}

Mobile-first führt tendenziell zu einfacherem CSS: Du fügst Regeln hinzu, während der Bildschirm größer wird, anstatt bestehende Regeln zu überschreiben. Zudem bleibt die Experience auf kleinen Bildschirmen die Baseline – was entscheidend ist, da der Großteil des Traffics über mobile Geräte erfolgt.

Breakpoints

Breakpoints definieren die Stellen, an denen sich das Layout ändern muss, und nicht die Maße eines bestimmten Geräts.

  • Verändern Sie langsam die Fenstergröße und achten Sie auf Probleme: zu lange Zeilen, zu schmale Spalten oder kollidierende Elemente.
  • Fügen Sie an dem Punkt, an dem das Layout bricht, eine min-width-Query hinzu.
  • Verwenden Sie projektweit einen kleinen Satz an Breakpoints, um Konsistenz zu gewährleisten.
  • Lassen Sie die auto-fit- und minmax()-Funktionen von Grid viele Fälle ohne jegliche Query handhaben.
/* auto.css */
.cards {
  display: grid;
  gap: 1.5rem;
  grid-template-columns: repeat(auto-fit, minmax(240px, 1fr));
}

Diese einzelne Regel ersetzt mehrere Breakpoints, indem sie so viele Spalten erstellt, wie hineinpassen.

Fluide Einheiten

Fixe Pixelbreiten sind nicht anpassungsfähig. Verwende bevorzugt Einheiten, die skalieren:

  • % relativ zum Elternelement.
  • rem relativ zur Root-Schriftgröße, ideal für Abstände und Typografie.
  • vw / vh relativ zum Viewport.
  • fr Bruchteile des verfügbaren Platzes in Grid.
  • ch etwa die Breite eines Zeichens, nützlich für die Zeilenlänge.
/* fluid.css */
.page {
  width: min(100% - 2rem, 64rem);
  margin-inline: auto;
}

.prose {
  max-width: 65ch;
}

h1 {
  font-size: clamp(1.75rem, 5vw, 3rem);
}

clamp(min, preferred, max) ist besonders nützlich: Es skaliert mit dem Viewport, unterschreitet aber nie das Minimum und überschreitet nie das Maximum. Damit ersetzt es eine Vielzahl von Media Queries für fluide Typografie und Abstände.

Flexible Medien

Bilder und Videos dürfen niemals über ihren Container hinausragen.

/* media.css */
img,
video {
  max-width: 100%;
  height: auto;
}

Für eine optimale Performance sollten Sie zudem passend skalierte Bilder mittels srcset und sizes bereitstellen sowie width und height (oder aspect-ratio) setzen, damit das Layout beim Laden nicht springt. Der Web Performance Guide behandelt responsive Bilder ausführlich.

Container Queries

Viewport-Media-Queries zwingen Komponenten dazu, Informationen über die gesamte Seite zu haben. Container Queries ermöglichen es einer Komponente stattdessen, auf ihren eigenen Container zu reagieren.

/* container.css */
.card-list {
  container-type: inline-size;
}

.card {
  display: grid;
  gap: 1rem;
}

@container (min-width: 30rem) {
  .card {
    grid-template-columns: 8rem 1fr;
  }
}

Nun passt sich dieselbe Karte an, egal ob sie in einer schmalen Sidebar oder einer breiten Hauptspalte platziert ist, was Komponenten wirklich wiederverwendbar macht. Die Unterstützung ist mittlerweile breit genug, um sie in der Produktion einzusetzen.

Touch, Targets und Typografie

  • Gestalten Sie Tap-Targets mit einer Größe von mindestens 44×44 CSS-Pixeln.
  • Halten Sie den Fließtext auf mindestens 16px, damit mobile Browser beim Fokussieren nicht automatisch zoomen.
  • Begrenzen Sie die Zeilenlänge auf etwa 45–75 Zeichen, um die Lesbarkeit zu verbessern.
  • Vermeiden Sie Interaktionen, die ausschließlich auf Hover basieren; bieten Sie touch-freundliche Alternativen an.
  • Testen Sie die Bedienung mit der Tastatur und auf einem echten Gerät, nicht nur in einem verkleinerten Browserfenster.

Testing

  • Nutze den Responsive-Modus des Browsers, um verschiedene Breiten schnell zu prüfen.
  • Teste auf echten Telefonen; die Emulation bildet die tatsächliche Performance und das Touch-Verhalten nicht vollständig ab.
  • Prüfe sowohl den Landscape- als auch den Portrait-Modus.
  • Zoome auf 200 % und stelle sicher, dass nichts zerschossen wird.
  • Teste lange Inhalte und nicht nur den “Happy Path” mit kurzen Strings.

Best Practices

  • Füge immer den Viewport-Meta-Tag hinzu.
  • Designe Mobile-First und erweitere das Layout mit min-width-Queries.
  • Nutze auto-fit und minmax() von Grid, um viele Breakpoints zu ersetzen.
  • Verwende fluide Einheiten und clamp() für Typografie und Abstände.
  • Sorge dafür, dass Bilder und Medien mit max-width: 100% skalieren.
  • Nutze Container Queries für wiederverwendbare Komponenten.
  • Halte Tap-Targets groß und den Fließtext gut lesbar.

Häufige Fehler

  • Das Vergessen des Viewport-Meta-Tags.
  • Desktop-First-Design und das anschließende Anhäufen von Overrides.
  • Die Ausrichtung an spezifischen Geräte-Breakpoints statt an inhaltsgesteuerten Breakpoints.
  • Fixe Pixelbreiten, die auf kleinen Bildschirmen zu Overflows führen.
  • Interaktionen, die nur auf Hover basieren und auf Touch-Displays nicht funktionieren.
  • Tests, die ausschließlich in einem verkleinerten Desktop-Fenster durchgeführt werden.

Wie es weitergeht

Responsive Design ist die Grundlage für jede moderne Benutzeroberfläche. Bau auf den CSS-Grundlagen auf, nutze Flexbox und CSS Grid für das Layout und ergänze CSS Variables für konsistente Abstände und Themes. Nimm dir anschließend eine bekannte Seite vor und skaliere sie langsam vom Smartphone-Format bis zum Desktop-Bildschirm, während du jeden Layout-Bruch Schritt für Schritt behebst.

Media Queries schreiben

Mobile-First Basis-Styles plus min-width Queries skalieren sauber nach oben. Desktop-First max-width Queries neigen dazu, zu viele Overrides anzuhäufen.

Bevorzugt
.grid {
  display: grid;
  grid-template-columns: 1fr;
}

@media (min-width: 768px) {
  .grid {
    grid-template-columns: repeat(2, 1fr);
  }
}
Vermeiden
.grid {
  grid-template-columns: repeat(3, 1fr);
}

@media (max-width: 768px) {
  .grid {
    grid-template-columns: 1fr;
  }
}

Inhalte dimensionieren

Fluide Dimensionierung passt sich zwischen einem Minimum und Maximum an, ohne für jeden Schritt eine Media Query zu benötigen.

Bevorzugt
h1 {
  font-size: clamp(1.75rem, 5vw, 3rem);
}

.page {
  width: min(100% - 2rem, 64rem);
  margin-inline: auto;
}
Vermeiden
h1 { font-size: 48px; }
.page { width: 1024px; }
/* overflows on phones */

Häufig gestellte Fragen

Häufig gestellte Fragen

Keep learning

Related topics from the roadmap.

$ Lernen Sie jetzt

Bereit, Responsive Design zu lernen?

Unser interaktives Tutorial führt Sie Schritt für Schritt durch Responsive Design — mit Quizzen und echtem Code, den Sie im Browser ausführen können.