1. Was ist Responsive Webdesign?
Stell dir vor, deine Website ist wie Wasser – sie passt sich automatisch jedem Gefäß an, in das du sie gießt. Genau das macht Responsive Webdesign: Deine Seite „reagiert“ (englisch: respond) auf das Gerät, das sie aufruft, und liefert immer eine optimale Darstellung. Vom riesigen 27-Zoll-Monitor bis zum kleinen Smartphone-Display – alles aus einer einzigen Codebasis.
Der Begriff stammt von Ethan Marcotte, der ihn im Mai 2010 in seinem wegweisenden Artikel auf A List Apart prägte. Seine Idee war revolutionär: Statt für jedes neue Gerät eine separate Website zu bauen, sollten wir Websites entwickeln, die sich flexibel anpassen. Der Clou dabei? Marcotte ließ sich von der Architektur inspirieren – genauer gesagt von beweglichen Strukturen, die auf ihre Umgebung reagieren.
Die drei Säulen nach Ethan Marcotte
Marcotte definierte Responsive Webdesign als das Zusammenspiel von genau drei technischen Komponenten:
Das flexible Layout (Fluid Grid) bildet das Rückgrat. Statt feste Pixelwerte zu verwenden, arbeitest du mit Prozentwerten. Ein Element, das im Desktop-Entwurf 300 Pixel breit ist und in einem 960-Pixel-Container liegt, wird nicht mit width: 300px definiert, sondern mit width: 31,25%. So füllt dein Layout den verfügbaren Raum wie eine Flüssigkeit aus – egal wie breit der Bildschirm ist.
Flexible Bilder sorgen dafür, dass deine Medien nicht aus dem Rahmen fallen. Mit der simplen CSS-Regel max-width: 100% stellst du sicher, dass Bilder niemals breiter als ihr Container werden. Sie skalieren dynamisch herunter, wenn der Platz knapp wird, und verhindern so das nervige horizontale Scrollen.
Media Queries sind der sensorische Teil deines Designs. Sie fragen die Eigenschaften des Geräts ab – zum Beispiel: „Ist der Bildschirm schmaler als 768 Pixel?“ Basierend auf diesen Breakpoints kann dein CSS fundamentale Änderungen vornehmen: Eine dreispaltige Ansicht wird einspaltig, die horizontale Navigation verwandelt sich in ein Hamburger-Menü, Schriftgrößen passen sich an.
Warum Responsive mehr ist als nur Technik
Hier kommt der Punkt, den viele übersehen: Responsive Webdesign ist nicht nur eine Sammlung von CSS-Tricks – es ist eine komplette Denkweise. Schon im Jahr 2000 schrieb John Allsopp in seinem Essay „A Dao of Web Design“, dass das Web kein starres Medium ist. Designer müssen die „Ebbe und Flut“ der Browserfenster akzeptieren, statt sie zu bekämpfen.
Das bedeutet konkret: Du gibst die pixelgenaue Kontrolle auf, die du vom Printdesign kennst. Dafür gewinnst du etwas viel Wertvolleres – universelle Zugänglichkeit. Deine Seite funktioniert auf Geräten, die zum Zeitpunkt der Erstellung noch gar nicht existierten. Smartwatches? 8K-Monitore? Kein Problem!
Außerdem zwingt dich Responsive Design zur Fokussierung. Wenn auf dem kleinen Smartphone-Bildschirm weniger Platz ist, musst du entscheiden: Was ist wirklich wichtig? Diese Priorisierung verbessert die User Experience auf allen Geräten, weil du unnötigen Ballast identifizierst und entfernst.
2. Das Web hat sich verändert
Erinnerst du dich noch an die Zeit, als „das Internet“ nur am Desktop-Computer stattfand? Diese Zeiten sind definitiv vorbei. Die Zahlen sprechen eine deutliche Sprache – und sie sollten jeden Webdesigner aufhorchen lassen.
Die Gerätevielfalt ist explodiert
Früher optimierten Webdesigner für eine Bildschirmbreite: 1024×768 Pixel. Heute müssen wir mit Breiten von etwa 300 bis 6.000 Pixel rechnen. Von der Smartwatch am Handgelenk bis zum Ultra-Wide-Monitor im Büro – die Bandbreite ist enorm. Und ständig kommen neue Gerätetypen hinzu.
Aktuelle Statistiken zur mobilen Internetnutzung
Weltweit nutzen laut Statista mittlerweile über 96% aller Internetnutzer ein Mobiltelefon, um online zu gehen. Der mobile Traffic macht global zwischen 59% und 68% des gesamten Web-Traffics aus – Tendenz steigend. Seit 2017, als Mobile erstmals Desktop überholte, wächst dieser Abstand kontinuierlich.
In Deutschland sieht die Situation interessant aus: Laut DataReportal liegt die Internetdurchdringung bei beeindruckenden 93,5% der Bevölkerung. Das sind knapp 79 Millionen Internetnutzer! Die mobile Infrastruktur ist robust – über 110 Millionen aktive Mobilfunkanschlüsse bei einer Bevölkerung von etwa 84 Millionen Menschen.
Was die tägliche Nutzung angeht: Deutsche verbringen durchschnittlich über 6 Stunden täglich im Internet. Die durchschnittliche Smartphone-Nutzung liegt bei etwa 155 Minuten pro Tag, bei der jüngeren Generation (16-29 Jahre) sogar bei über 180 Minuten.
- 5,53 Milliarden Menschen weltweit nutzen das Internet (Stand: Anfang 2025)
- 96% aller Internetnutzer gehen zumindest zeitweise mobil online
- 6 Stunden 38 Minuten verbringen Nutzer weltweit durchschnittlich täglich im Internet
- In Deutschland ist der Desktop-Anteil mit etwa 52-57% noch vergleichsweise hoch – anders als im globalen Durchschnitt
- Die mobile Download-Geschwindigkeit in Deutschland stieg innerhalb eines Jahres um über 24%
Deutschland: Eine Sonderstellung
Hier wird es spannend: Während weltweit Mobile klar dominiert, zeigt sich Deutschland konservativer. Der Desktop-Anteil liegt hierzulande noch bei etwa 47-57% (je nach Quelle und Messart). Damit gehört Deutschland neben Japan, Kanada und den USA zu den Ländern mit der höchsten Desktop-Präferenz.
Was bedeutet das für dich? Eine reine „Mobile Only“-Strategie wäre in Deutschland riskant. Besonders komplexe Transaktionen, berufliche Recherchen und B2B-Kaufprozesse finden weiterhin signifikant am Desktop statt. Dein Responsive Design muss also den Spagat schaffen: exzellent auf dem Smartphone und leistungsstark auf dem Desktop.
Warum Responsive Design heute Standard ist
Die Konsequenz aus all diesen Zahlen ist klar: Responsive Design ist keine Option mehr, sondern Pflicht. Google hat das übrigens auch verstanden – seit Juli 2024 werden nicht-mobiloptimierte Seiten nicht mehr richtig indexiert. Das heißt: Ohne Responsive Design wirst du in den Suchergebnissen praktisch unsichtbar.
Außerdem wechseln Nutzer heute nahtlos zwischen Geräten. Sie beginnen eine Recherche am Smartphone in der U-Bahn, setzen sie am Tablet auf dem Sofa fort und schließen den Kauf am Desktop im Büro ab. Eine Unterbrechung der User Journey durch eine nicht-responsive Seite führt zu Abbrüchen – und die kosten dich bares Geld.
3. Responsive vs. Adaptive Webdesign
Jetzt wird es etwas technischer – aber keine Sorge, ich erkläre es dir verständlich. Responsive und Adaptive Webdesign werden oft synonym verwendet, beschreiben aber zwei fundamental unterschiedliche Ansätze.
Was ist der Unterschied?
Der Unterschied lässt sich am besten mit dem Gegensatzpaar „Fließend“ vs. „Einrasten“ beschreiben.
Responsive Design arbeitet mit einem fluiden Raster. Deine Website verwendet relative Einheiten (Prozent, em, rem) statt fester Pixel. Durch Media Queries passt sich das Layout in Echtzeit und stufenlos an jede Pixelbreite an. Es gibt theoretisch unendlich viele Zustände zwischen den Breakpoints. Stell es dir wie Wasser vor, das in verschiedene Gefäße gegossen wird.
Adaptive Design hingegen nutzt mehrere vordefinierte, starre Layouts für spezifische Geräteklassen. Der Server (oder ein Script) analysiert das anfragende Gerät und liefert das passende Layout aus – zum Beispiel eines für iPhone, eines für iPad, eines für Desktop. Typischerweise werden Layouts für sechs Bildschirmbreiten entwickelt: 320, 480, 760, 960, 1200 und 1600 Pixel. Stell es dir wie einen Setzkasten vor, bei dem für jedes Objekt ein passendes Fach gewählt wird.
| Merkmal | Responsive Design | Adaptive Design |
|---|---|---|
| Flexibilität | Stufenlos, fließend | Springt zwischen festen Breakpoints |
| Codebasis | Eine einzige | Mehrere Templates |
| Wartungsaufwand | Geringer | Höher (mehrere Versionen pflegen) |
| Zukunftssicherheit | Hoch – funktioniert auch auf neuen Geräten | Gering – neue Geräte erfordern neue Templates |
| Performance | Kann herausfordernd sein (Over-Downloading) | Potenziell besser (gerätespezifisch optimiert) |
| SEO | Von Google bevorzugt (Single URL) | Komplexer (erfordert saubere Implementierung) |
| Entwicklungsaufwand | Anfangs höher, langfristig günstiger | Anfangs schneller, langfristig teurer |
Wann welcher Ansatz sinnvoll ist
Für die allermeisten Projekte ist Responsive Design heute die richtige Wahl. Es eignet sich ideal für Content-getriebene Websites wie Blogs, News-Seiten und Corporate Sites, für SEO-fokussierte Projekte (Google liebt Responsive!), für Projekte mit begrenztem Wartungsbudget sowie für Szenarien, in denen ein konsistentes Markenerlebnis Priorität hat.
Adaptive Design hat aber durchaus seine Berechtigung in Nischen: komplexe E-Commerce-Plattformen, bei denen die Kaufabwicklung auf dem Handy radikal anders funktionieren muss, Retrofitting von Legacy-Systemen, wenn die alte Desktop-Seite nicht angerührt werden darf, und geschwindigkeitskritische Märkte mit langsamen Datenverbindungen.
Praxisbeispiel: bahn.de
Ein oft zitiertes Beispiel für Adaptive Webdesign in Deutschland ist die Website der Deutschen Bahn. Hier existieren separate Versionen für Desktop und Mobile – die mobile Seite wirkt fast wie eine native App, strukturell ganz anders als die Desktop-Variante. Wenn du das Desktop-Fenster kleiner ziehst, passiert lange nichts, bis das Layout plötzlich umspringt.
Im Gegensatz dazu stehen Seiten wie der Boston Globe (einer der Pioniere des Responsive Design) oder Microsoft.com – hier fließt das Layout weich, Elemente skalieren stufenlos mit.
4. Kann man Responsive nachträglich einbauen?
Vielleicht hast du eine bestehende Website, die noch nicht responsive ist. Die brennende Frage: Kann man das nachträglich einbauen, ohne alles neu zu machen?
Responsive Retrofitting: Was geht, was nicht
Die kurze Antwort: Ja, technisch ist es möglich. Der Prozess nennt sich „Responsive Retrofitting“ und bedeutet, einer existierenden Desktop-Seite beizubringen, auf verschiedene Viewports zu reagieren. Du injizierst Media Queries, überschreibst starre Containerbreiten mit flexiblen Werten und passt Navigation und Bilder an.
Die längere Antwort ist komplizierter. Laut Smashing Magazine ist Retrofitting keine „magische Lösung“ – der responsive Teil muss trotzdem entwickelt werden. Als Faustregel gilt: Websites, die weniger als drei Jahre alt sind und moderne Webstandards verwenden, eignen sich für ein Retrofit. Bei älteren Seiten wird es schwierig.
Typische Herausforderungen beim Nachrüsten
Der Weg des Retrofittings ist steinig und voller technischer Schulden:
Starrer HTML-Code ist oft das größte Problem. Alte Seiten nutzen häufig Tabellen für Layouts oder tief verschachtelte div-Strukturen mit festen Pixelwerten. Diese lassen sich nur schwer „flüssig“ machen, ohne das Layout zu zerstören.
Performance-Probleme entstehen, weil die Desktop-Seite oft große Bibliotheken und unoptimierte Assets lädt. Beim Retrofitting werden diese mobil nur ausgeblendet (display: none), aber dennoch geladen. Das Ergebnis ist eine langsame mobile Seite – die sogenannte „Fat Mobile Site“.
Mouse-Only-Interaktionen wie Hover-Effekte funktionieren auf Touchscreens nicht. Ein Retrofit muss diese Muster oft komplett per JavaScript umbauen.
Content-Reihenfolge ist ein unterschätztes Problem. Im HTML alter Seiten steht oft die Sidebar vor dem Hauptinhalt. Mobil bedeutet das: Der Nutzer scrollt erst durch endlose Menüs, bevor er den eigentlichen Artikel sieht. Das zu ändern erfordert Eingriffe in die HTML-Struktur – was einem Neubau nahekommt.
Wann lohnt es sich, wann nicht?
Ein Retrofit lohnt sich, wenn:
- Budget knapp: Die Mittel für einen Neubau fehlen und eine schnelle Lösung nötig ist
- Sauberer Code: Die Website eine saubere, semantische Codebasis hat
- Großes Archiv: Es sich um ein riesiges Archiv handelt, dessen Migration unwirtschaftlich wäre
- Übergangsphase: Die Seite als Übergangslösung dienen soll
Ein Neubau ist besser, wenn:
- Tabellen-Layout: Die Seite auf Tabellen-Layouts basiert
- Barrierefreiheit: Accessibility ein Ziel ist (alter Code erfüllt selten WCAG-Standards)
- Schlechte UX: Die User Experience bereits am Desktop mangelhaft ist
- Veraltetes CMS: Das System veraltet ist und Sicherheitsrisiken birgt
- Hohe Kosten: Die Kosten fürs Flicken die Kosten eines sauberen Neubaus übersteigen
In der Praxis ist ein Neubau oft wirtschaftlicher, als man denkt. Retrofitting erfordert extrem zeitaufwendiges Testing, und am Ende hast du immer noch eine Desktop-First-Seite mit angeklebter Mobile-Version.
Warum von Anfang an responsive planen besser ist
Die beste Empfehlung: Plane von Anfang an responsive. Der Mehraufwand in der Konzeptionsphase zahlt sich mehrfach aus. Du sparst dir das mühsame Nachrüsten, bekommst eine saubere Codebasis und eine durchdachte Content-Hierarchie. Außerdem denkst du von Beginn an über die mobile User Experience nach – statt sie als Nachgedanken zu behandeln.
Teil 2: Strategie – Mobile First oder Desktop First?
Jetzt kommen wir zu einer der wichtigsten strategischen Entscheidungen beim Responsive Webdesign: Wo fängst du an? Beim großen Desktop-Bildschirm oder beim kleinen Smartphone? Die Antwort hat weitreichende Konsequenzen für dein gesamtes Projekt.
5. Desktop First (Graceful Degradation)
Was bedeutet Desktop First?
Desktop First war über Jahre der Standard-Workflow der Webindustrie. Du konzipierst und entwickelst dein Projekt vollständig für den größten Bildschirm. Alle Funktionen, hochauflösende Bilder und komplexe Interaktionen werden primär für den Desktop-Nutzer mit Maus und Tastatur gebaut.
Das zugehörige technische Prinzip heißt Graceful Degradation – zu Deutsch etwa „würdevolle Herabstufung“. Die Idee: Du bietest das volle Erlebnis für moderne, große Browser. Für ältere Browser oder kleinere Bildschirme akzeptierst du, dass die Darstellung „degradiert“, also schlechter wird. Du entfernst schrittweise Funktionen oder Layout-Spalten, damit die Seite auf dem Handy zumindest nicht kaputt aussieht.
So funktioniert Graceful Degradation
In der Praxis bedeutet das: Du schreibst erst dein komplettes Desktop-CSS, dann fügst du Media Queries mit max-width hinzu, um Features für kleinere Bildschirme zu entfernen oder anzupassen:
/* Desktop-Styles (Basis) */
.sidebar { width: 300px; float: right; }
/* Tablet: Sidebar schmaler */
@media (max-width: 1024px) {
.sidebar { width: 200px; }
}
/* Mobile: Sidebar ausblenden */
@media (max-width: 768px) {
.sidebar { display: none; }
}
Vorteile von Desktop First
Visuelle Freiheit: Du kannst ohne Einschränkungen arbeiten und beeindruckende „Hero“-Designs mit großen Bildern und komplexen Layouts erstellen. Stakeholder-Buy-In: Kunden und Entscheider arbeiten meist am Desktop – ein beeindruckender Desktop-Entwurf verkauft sich oft leichter. Gewohnter Workflow: Der Ansatz entspricht dem traditionellen Designprozess, den viele Designer kennen. Moderne Features ausreizen: Du kannst von Anfang an mit den neuesten CSS-Technologien arbeiten.
Nachteile von Desktop First
Bloat: Da die Desktop-Version die „Basis“ ist, wird oft der gesamte schwere Code auch ans Smartphone gesendet. Zweitklassige Mobile-UX: Die mobile Version ist oft nur ein „Abfallprodukt“ – Elemente werden lieblos untereinander gestapelt. Performance-Probleme: Mobile Nutzer laden Assets, die sie gar nicht brauchen. Schwierige Wartung: Es ist technisch aufwendiger, Ausnahmen für Mobile in komplexes Desktop-CSS zu schreiben.
Wann ist Desktop First noch sinnvoll?
Desktop First ist heute selten die beste Wahl, kann aber in spezifischen B2B-Szenarien gerechtfertigt sein: komplexe Dashboards und CAD-Web-Anwendungen, Intranets, die zu 95-99% an großen Monitoren genutzt werden, Legacy-Projekte, die modernisiert werden müssen, sowie Situationen, in denen die Analytics eindeutig Desktop-dominante Nutzer zeigen.
6. Mobile First (Progressive Enhancement)
Was bedeutet Mobile First?
Mobile First dreht den Spieß um. Du beginnst mit dem kleinsten, leistungsschwächsten Gerät – dem Smartphone – und erweiterst schrittweise für größere Bildschirme. Der Begriff wurde von Luke Wroblewski im November 2009 geprägt, als er bei Yahoo als Chief Design Architect arbeitete. Sein gleichnamiges Buch erschien 2011 bei A Book Apart.
Das korrespondierende technische Prinzip heißt Progressive Enhancement – fortschreitende Verbesserung. Du baust eine Basisversion, die nur den absoluten Kerninhalt und minimale Styles enthält. Diese funktioniert überall – vom alten Handy bis zum Screenreader. Wenn der Browser leistungsfähiger ist, werden zusätzliche Schichten hinzugefügt: hochauflösende Bilder, mehrspaltige Layouts, Animationen.
So funktioniert Progressive Enhancement
In CSS sieht das so aus: Du schreibst erst die Mobile-Styles (ohne Media Query), dann erweiterst du mit min-width für größere Bildschirme:
/* Mobile-Styles (Basis) */
.container { width: 100%; padding: 1rem; }
/* Tablet: Zwei Spalten */
@media (min-width: 768px) {
.container { display: grid; grid-template-columns: 1fr 1fr; }
}
/* Desktop: Drei Spalten mit Sidebar */
@media (min-width: 1024px) {
.container { grid-template-columns: 1fr 1fr 300px; }
}
Der philosophische Unterschied: Hinzufügen ist einfacher als Wegnehmen. Eine mobile-optimierte Seite funktioniert überall, während Desktop-Designs oft mühsam reduziert werden müssen.
„Start with the small screen first, then expand until it looks like shit. Time for a breakpoint!“ – Das bringt es perfekt auf den Punkt: Du beginnst mit dem kleinen Bildschirm, erweiterst das Layout, und sobald es „beschissen aussieht“, setzt du einen Breakpoint.
Vorteile von Mobile First
- Fokussierung: Der kleine Bildschirm zwingt zur brutalen Priorisierung – nur der wichtigste Content überlebt
- Performance: Mobilgeräte laden standardmäßig nur den minimalen Code – das macht deine Seite extrem schnell
- SEO-Bonus: Google bevorzugt mobile-freundliche Websites und nutzt Mobile-First-Indexierung
- Robuste Codebasis: Die Basisversion ist extrem stabil – wenn ein Script fehlschlägt, bleibt der Inhalt lesbar
- Bessere Usability: Klare Navigation, angepasste Schriftgrößen, touch-optimierte Bedienelemente
- Höhere Conversion-Rates: Nutzer gelangen sofort zum Kernangebot
- Verbesserte Zugänglichkeit: Viele Menschen sind auf Telefone als einziges Gerät angewiesen
Nachteile von Mobile First
Umdenken erforderlich: Der Ansatz erfordert eine grundlegende Änderung der Denkweise. Überzeugungsarbeit: Es ist oft schwer, Kunden von einem simplen Mobile-Wireframe zu begeistern. Planungsaufwand: Du musst Inhalte sehr früh final haben, um Priorisierungsentscheidungen zu treffen. Viele Tests nötig: Umfangreiche Tests über verschiedene Geräte und Breakpoints.
Warum Mobile First heute der bessere Ansatz ist
In einer Welt mit über 60% mobilem Traffic und über 96% mobilem Internetzugang ist Mobile First objektiv überlegen.
Google’s Mobile-First-Index: Seit 2015 („Mobilegeddon“) rankt Google mobile-freundliche Websites höher. Heute nutzt Google primär die mobile Version einer Website für Indexierung und Ranking. Eine Desktop-First-Seite, die mobil langsam ist, verliert Sichtbarkeit.
Nutzererwartungen: Menschen erwarten, dass Websites auf ihren Geräten perfekt funktionieren. Eine schlecht optimierte mobile Erfahrung führt zu Frustration und Absprung – laut verschiedener Studien verlassen über 50% der Nutzer eine Seite, die mobil schlecht funktioniert.
Content-Priorisierung: Mobile First zwingt dich, schwierige Entscheidungen zu treffen. Das Ergebnis sind fokussiertere, klarere Websites, die auch auf Desktop besser funktionieren.
Zukunftssicherheit: Neue Gerätetypen erscheinen ständig. Ein Mobile-First-Ansatz mit progressiver Erweiterung passt sich besser an zukünftige Entwicklungen an.
7. Content First – Inhalte vor Design
Warum Inhalte zuerst kommen sollten
Hier kommt ein Konzept, das Mobile First perfekt ergänzt: Content First. Die Grundidee ist simpel aber radikal: Design ohne Inhalt ist nur Dekoration.
In traditionellen Prozessen erstellten Designer Layouts mit Platzhaltertext („Lorem Ipsum“). Wenn später der echte Inhalt eingefügt wurde, brach das Design oft zusammen – Überschriften zu lang, Bilder im falschen Format, Texte, die nicht in die vorgesehenen Boxen passen.
Content First fordert, dass Text, Bilder und Struktur vorliegen müssen, bevor das visuelle Design beginnt. Der Inhalt diktiert die Form, nicht umgekehrt. Das passt perfekt zu Mobile First: Um zu entscheiden, was auf dem kleinen Screen ganz oben steht, musst du den Inhalt kennen und seine Wichtigkeit bewerten.
Content-Inventur durchführen
Der erste Schritt ist eine vollständige Bestandsaufnahme – die Content-Inventur. Das klingt nach viel Arbeit, ist aber unverzichtbar.
Quantitative Inventur: Liste alle Assets auf – Seiten, PDFs, Bilder, Videos. Tools wie Screaming Frog können das automatisieren. Erfasse URLs, Seitentitel, Metadaten, Wortzahlen, Erstellungsdaten.
Qualitative Inventur (Content Audit): Bewerte jeden Inhalt. Ist er relevant? Aktuell? Hochwertig? Nutze das ROT-Prinzip – ist der Inhalt Redundant, Outdated oder Trivial? Ein Bewertungssystem mit den Kategorien „Behalten“, „Überarbeiten“, „Löschen“ und „Zusammenführen“ hilft bei der Priorisierung.
Für Responsive Design ist das kritisch: Alte Desktop-Seiten haben oft riesige Mengen an „Deep Content“, der mobil niemanden interessiert. Das Audit hilft zu entscheiden: Was wird migriert? Was wird gelöscht? Was muss für mobile Lesbarkeit neu geschrieben werden?
Inhalte priorisieren und strukturieren
Nach der Inventur geht es ans Strukturieren. Definiere primäre Inhalte (Was MUSS der Nutzer sehen?), sekundäre Inhalte (Was ist hilfreich, aber nicht kritisch?) und tertiäre Inhalte (Was ist „nice to have“?). Diese Hierarchie bestimmt später, was auf dem kleinen Mobile-Screen ganz oben steht – und was vielleicht erst nach einem Klick oder Scroll erscheint.
Die richtige Reihenfolge: Inhalt → Darstellung → Verhalten
Content First bedeutet auch eine bestimmte Reihenfolge im Projekt: Zuerst der Inhalt (Was sagen wir? Texte, Bilder, Daten), dann die Darstellung (Wie sieht es aus? Layout, Typografie, Farben), und schließlich das Verhalten (Wie reagiert es? Interaktionen, Animationen). Diese Reihenfolge stellt sicher, dass das Design dem Inhalt dient – nicht umgekehrt.
Teil 3: Workflow – So entsteht eine responsive Website
Die beste Strategie nützt nichts ohne einen funktionierenden Workflow. Und hier hat sich in den letzten Jahren einiges verändert.
8. Der moderne Responsive Workflow
Warum der alte lineare Workflow nicht mehr funktioniert
Kennst du das klassische Wasserfall-Modell? Strategie → Konzept → Design in Photoshop → Abnahme → Entwicklung → Launch. Jede Phase wird abgeschlossen, bevor die nächste beginnt. Das funktionierte, als Websites nur für einen Bildschirm gemacht wurden.
Bei Responsive Design scheitert dieses Modell krachend. Ein einzelnes statisches Bild kann die dynamische Natur einer responsiven Website nicht kommunizieren. Um die Dynamik zu zeigen, wären unrealistisch viele Design-Dateien nötig. Für drei Design-Optionen, drei Seitentypen und drei Breakpoints brauchst du bereits 27 statische Designs!
Außerdem: In Photoshop erstellte Designs zeigen keine Interaktionen, keine Hover-Zustände, keine fließenden Übergänge. Wenn Entwickler erst am Ende involviert werden, stellen sie oft fest, dass das Design technisch nicht umsetzbar oder auf Mobilgeräten unbenutzbar ist. Die Korrekturschleife zurück zum Design wird dann extrem teuer.
Der neue iterative Prozess
Der moderne Workflow ist zyklisch und agil. Statt Phasen isoliert abzuschließen, arbeiten alle Disziplinen parallel. Der Prozess laut Webflow sieht etwa so aus:
- Research & Discovery: Ziele definieren, Zielgruppe verstehen, Inhalte strukturieren
- Sketching & Wireframing: Grobe Skizzen für verschiedene Breakpoints
- Prototyping: Früher Wechsel in den Browser, klickbare Prototypen
- Testing: Überprüfung auf echten Geräten, Feedback sammeln
- Refinement: Visuelles Design und Code parallel verfeinern
Und dann? Zurück zu Schritt 3 oder 4! Der Zyklus wiederholt sich, bis das Ergebnis stimmt.
Konzeption, Design und Technik arbeiten zusammen
Die Silos zwischen „Kreativen“ und „Techies“ müssen fallen. Das ideale Modell ist gleichzeitige Design- und Entwicklungsarbeit, bei der beide Seiten von Anfang an eingebunden sind.
Design-Dev-Handoff: Übergaben sind keine einmaligen Ereignisse („über den Zaun werfen“), sondern laufende Dialoge. Tools wie Figma (mit Dev Mode) unterstützen das.
Gemeinsame Sprache: Designer sollten Grundkenntnisse in CSS haben (Box Model, Flexbox), um umsetzbar zu entwerfen. Entwickler sollten früh Feedback zu Performance und Machbarkeit geben.
Wöchentliche Check-ins: Regelmäßige kurze Meetings, bei denen alle Fragen stellen können, bevor kleine Probleme zu Projekt-Hindernissen werden.
Regelmäßig testen und Feedback einholen
Ein kritischer Punkt: Teste früh und oft! Nicht erst am Ende, wenn Änderungen teuer sind. Zeige Prototypen auf echten Geräten – die Betrachtung am Desktop-Browser unterscheidet sich fundamental von der Nutzung auf dem eigenen Smartphone in der Hand.
9. Projektrahmenbedingungen klären
Bevor du loslegst, musst du die Rahmenbedingungen klären. Ein gutes Briefing spart später Zeit und Nerven.
Die wichtigsten Fragen im Briefing
Wer ist die Zielgruppe? Welche Geräte nutzt sie? Was sind die Hauptziele der Website? (Verkauf, Information, Lead-Generierung?) Welche Inhalte sind bereits vorhanden? Welche müssen erstellt werden? Gibt es ein Corporate Design oder Styleguide? Welche technischen Anforderungen bestehen? (CMS, Shop-System, Integrationen?) Was ist das Budget? Was ist der Zeitrahmen?
Umfang, Zeitrahmen, Budget
Sei realistisch. Ein Responsive-Projekt braucht mehr Zeit als eine reine Desktop-Seite – du planst und testest schließlich für mehrere Breakpoints. Kalkuliere Zeit für Content-Inventur und -Strategie, Wireframes für mindestens drei Breakpoints, Prototyping und Testing, Iterationsschleifen (mindestens 2-3) sowie Cross-Browser- und Cross-Device-Testing.
Erste Designvorgaben und Funktionen
Kläre früh: Welche Navigationsstruktur ist geplant? Gibt es besondere Funktionen (Formulare, Shop, Suche)? Welche Performance-Anforderungen bestehen? Wie wichtig ist Barrierefreiheit?
10. Content-Strategie entwickeln
Inhalte sammeln, bewerten, gliedern
Nutze die Content-Inventur aus Kapitel 7. Sammle alle vorhandenen und geplanten Inhalte. Bewerte sie nach Relevanz und Qualität. Gliedere sie in eine logische Struktur.
Für Responsive Design wichtig: Plane, wie Inhalte auf verschiedenen Bildschirmgrößen priorisiert werden. Welcher Content ist auf Mobile kritisch? Was kann „below the fold“ oder hinter einem Klick versteckt werden?
Navigationsstruktur entwickeln
Die Informationsarchitektur muss für responsive Szenarien „biegsam“ sein. Eine Navigation mit fünf Ebenen und Mega-Menüs ist auf dem Smartphone unbedienbar.
Die Strategie: Flachere Hierarchien, Hub-Pages, klare Labels. Die Navigationsstruktur muss sich elegant von einer horizontalen Leiste (Desktop) in ein vertikales Overlay-Menü (Mobile) transformieren lassen, ohne dass Menüpunkte verloren gehen.
Informationsarchitektur planen
Erstelle eine Sitemap, die zeigt, wie alle Seiten zusammenhängen. Berücksichtige verschiedene Navigationsmuster: Top-Level-Navigation für Hauptbereiche, lokale Navigation innerhalb von Bereichen, Breadcrumbs für Orientierung und eine Suchfunktion für direkten Zugriff.
11. Wireframes erstellen
Was sind Wireframes?
Ein Wireframe ist eine schematische Darstellung deiner Website – quasi ein Grundriss ohne visuelle Gestaltung. Er zeigt, welche Elemente wo platziert werden: Header, Navigation, Hauptinhalt, Sidebar, Footer. Keine Farben, keine Bilder, keine Details – nur Struktur.
Wireframes für verschiedene Bildschirmgrößen
Beim Responsive Design erstellst du nicht einen Wireframe, sondern mehrere – für die wichtigsten Breakpoints:
Small (unter 576px): Smartphone hochkant – Fokus auf Stapelung und Priorisierung. Medium (768-991px): Tablet – beginnende Komplexität, vielleicht zwei Spalten. Large (ab 1024px): Desktop – volle Nutzung der Breite, Sidebar möglich.
Du musst nicht jedes Gerät einzeln zeichnen. Es geht darum, Template-Muster zu definieren, die mehrere Seiten abdecken.
Tools für Wireframing
Figma erlaubt Frames für verschiedene Geräte und ist kollaborativ. Sketch ist ein Klassiker für macOS. Adobe XD ist Teil der Creative Cloud. Und nicht zu vergessen: Stift & Papier – für erste Skizzen oft am schnellsten.
Content-Choreographie planen
Content-Choreographie – ein Begriff von Trent Walton – beschreibt, wie sich Inhalte neu anordnen, wenn sich der Viewport ändert.
Fragen, die du im Wireframe klären solltest: Source Order vs. Visual Order: Steht die Sidebar im HTML unter dem Haupttext? Kannst du sie per CSS Flexbox/Grid auf dem Desktop daneben schieben? Transformation: Wird eine breite Datentabelle auf dem Handy zu einer Liste von Cards oder horizontal scrollbar? Priorisierung: Welche Elemente rücken auf kleinen Screens in den Fokus?
Inhalte zu verstecken ist selten eine gute Lösung! Wenn Content wichtig genug ist, um auf der Desktop-Version zu existieren, sollte er auch mobil zugänglich sein – vielleicht nur anders präsentiert.
12. Prototyp im Browser bauen
Früh im Browser arbeiten – nicht im Grafikprogramm
Hier kommt ein Paradigmenwechsel: „Design in the Browser“ bedeutet, den statischen Grafikeditor so früh wie möglich zu verlassen und direkt in HTML/CSS zu entwerfen.
Warum? Statische Tools lügen. Sie zeigen nicht, wie Schriftarten auf verschiedenen Betriebssystemen rendern, wie sich Hover-Effekte anfühlen, wie schnell eine Seite lädt oder wie sich ein Layout bei verschiedenen Breiten verhält. Nur der Browser zeigt die Wahrheit. Photoshop ist für responsive Layouts schlicht das falsche Werkzeug.
Vorteile von Browser-Prototypen
Echter Kontext: Du kannst den Entwurf auf dem eigenen Handy in der Hand halten und „erfühlen“. Interaktivität: Stakeholder verstehen responsive Verhaltensweisen besser durch Ausprobieren als durch Erklärungen an einem PDF. Effizienz: Der Code des Prototyps wird oft die Basis für das finale Produkt. Frühe Validierung: Usability-Probleme werden sofort sichtbar, nicht erst kurz vor Launch. Bessere Kommunikation: Die Frage „Was passiert mit der Sidebar?“ lässt sich mit einem funktionierenden Prototyp viel einfacher beantworten.
Funktionen und Bedienbarkeit testen
Zeige deinen Prototyp auf echten Geräten – Smartphones, Tablets, verschiedenen Desktop-Browsern. Achte auf Touch-Targets (mindestens 44×44 Pixel für Buttons), Lesbarkeit (Schriftgrößen, Kontraste), Ladezeiten, Navigation und Menüs sowie Formular-Usability.
13. Design entwickeln
Moodboards und Stylescapes statt Pixel-Designs
Da du im responsiven Workflow nicht mehr jede Unterseite als High-Fidelity-Design für drei Breakpoints ausarbeiten kannst (zu teuer!), brauchst du andere Werkzeuge zur visuellen Abstimmung.
Ein Moodboard ist eine Collage aus Inspirationen – Fotos, Texturen, Farben – die eine emotionale Richtung („Stimmung“) festlegt. Es ist abstrakt und zeigt noch kein konkretes Design.
Ein Stylescape (oder Style Tile) geht einen Schritt weiter. Es zeigt die visuelle Sprache der Marke: Typografie, Farben, Button-Stile, Formularelemente, Bildsprache – in einer kollageartigen Zusammenstellung. Es sieht aus wie eine Website, ist aber kein Layout einer spezifischen Seite.
Warum sind Stylescapes besser als Pixel-Designs?
Fokussierte Diskussionen: Man spricht über „Wirkt die Schriftart seriös?“ statt „Warum ist das Logo links oben?“ System-Denken: Wenn der Stylescape freigegeben ist, kann das Design-System auf alle Wireframes angewendet werden. Flexibilität: Stylescapes lassen Raum für Interpretation – perfekt für Responsive Design. Zeit- und Kostenersparnis: Ein Stylescape braucht Stunden, eine pixel-perfekte Homepage Tage. Vermeidung der „Frankenstein-Falle“: Bei drei fertigen Designs kommt oft „Nehmt Farben von A, Layout von B, Typo von C“ – bei Stylescapes entsteht eine klare Richtungsentscheidung.
Design parallel zur Entwicklung
Im modernen Workflow läuft Design nicht mehr in einer isolierten Phase. Während Entwickler den Prototyp bauen, verfeinern Designer die visuellen Details. Die beiden Prozesse laufen parallel und beeinflussen sich gegenseitig.
14. Testen und optimieren
Iterativ arbeiten: Testen, Feedback, verbessern
Der moderne Workflow ist ein Kreislauf: Entwerfen → Bauen → Testen → Feedback einholen → Verbessern → Wiederholen. Jede Iteration bringt dich näher ans Ziel. Teste nicht nur am Ende, sondern kontinuierlich. Kleine, häufige Tests sind wertvoller als ein großer Test am Schluss.
Kunden früh einbeziehen
Binde Kunden und Stakeholder früh ein. Zeige ihnen Prototypen, nicht fertige Designs. So können sie Feedback geben, wenn Änderungen noch günstig sind. Ein Tipp: Rahme Meetings nicht als „Design-Team zeigt Entwicklungs-Team“. Stattdessen: „Ein Team arbeitet gemeinsam am gleichen Problem.“
Auf echten Geräten testen
Simulatoren und Browser-DevTools sind hilfreich, ersetzen aber nicht das Testen auf echten Geräten. Die Bedienung mit dem Finger fühlt sich anders an als mit der Maus. Teste auf verschiedenen Smartphone-Größen (klein und groß), Tablets (Hochformat und Querformat), Desktop mit verschiedenen Bildschirmgrößen, verschiedenen Browsern (Chrome, Safari, Firefox, Edge) und verschiedenen Betriebssystemen (iOS, Android, Windows, macOS).
Achte besonders auf Ladezeiten (besonders mobil mit gedrosselter Verbindung), Touch-Interaktionen, Formular-Usability, Lesbarkeit und Kontraste sowie Navigation und Menüs.
Teil 4: Technische Grundlagen
Jetzt wird’s ein bisschen technischer – aber keine Sorge, ich erkläre dir alles Schritt für Schritt! Denn die technischen Grundlagen sind das Fundament, auf dem dein responsives Webdesign steht. Ohne sie funktioniert einfach nichts richtig.
15. Der Viewport Meta-Tag
Was ist der Viewport?
Der Viewport ist ganz einfach der sichtbare Bereich deiner Webseite im Browserfenster. Stell dir das wie ein Fenster vor, durch das dein Besucher auf deine Website schaut. Auf dem Desktop ist dieses Fenster schön groß – auf dem Smartphone dagegen ziemlich klein.
Das Problem dabei? Mobile Browser sind schlau und denken sich: „Diese Seite ist bestimmt für Desktop gemacht!“ Also rendern sie deine Webseite erstmal in einem virtuellen Viewport von circa 980 Pixeln Breite und schrumpfen dann alles auf die Bildschirmgröße zusammen. Das Ergebnis? Winzige, unleserliche Texte und frustrierte Nutzer.
Der Viewport Meta-Tag erklärt
Hier kommt der Viewport Meta-Tag ins Spiel – dein erster Schritt zu einer responsiven Website:
<meta name="viewport" content="width=device-width, initial-scale=1">
Was passiert hier genau? Mit width=device-width sagst du dem Browser: „Hey, nimm die echte Gerätebreite!“ Und initial-scale=1 bedeutet: „Zeig die Seite mit 100% Zoom an, nicht verkleinert.“
Dieser kleine Schnipsel Code gehört in den <head>-Bereich jeder einzelnen Seite deines Projekts. Vergisst du ihn, funktioniert dein ganzes responsives Design nicht!
Was passiert ohne Viewport-Tag?
Ohne diesen Meta-Tag passiert Folgendes: Der mobile Browser geht davon aus, dass deine Seite für Desktop-Monitore gemacht ist. Er rendert sie bei 980 Pixeln und quetscht das Ganze dann auf den kleinen Smartphone-Screen. Das Resultat?
- Winzig kleine Texte: Die niemand lesen kann
- Horizontales Scrollen: Ist nötig
- Media Queries greifen nicht: Weil der Browser ja bei 980px rechnet!
Warum maximum-scale=1 problematisch ist (Accessibility)
Du hast vielleicht schon mal Code wie diesen gesehen:
<!-- ❌ NICHT VERWENDEN! -->
<meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1, user-scalable=no">
Damit sperrst du die Zoom-Funktion! Menschen mit Sehbehinderungen sind aber darauf angewiesen, Inhalte zu vergrößern. Laut den WCAG-Richtlinien muss Text mindestens auf 200% vergrößert werden können.
Apple hat das übrigens erkannt und ignoriert seit iOS 10 diese Einschränkungen einfach – aus gutem Grund! Also: Lass die Finger von maximum-scale=1 und user-scalable=no. Deine Nutzer werden es dir danken.
16. CSS-Einheiten verstehen
Die Wahl der richtigen CSS-Einheiten macht den Unterschied zwischen einem starren und einem wirklich flexiblen Layout. Lass mich dir die wichtigsten vorstellen!
Absolute Einheiten: px
Pixel sind die bekannteste absolute Einheit – 16px sind immer 16px, egal was kommt. Klingt erstmal praktisch, oder?
Pixel eignen sich gut für Borders (border: 1px solid #ccc;) oder Box-Shadows. Aber für Schriftgrößen? Keine gute Idee! Denn damit überschreibst du die Browser-Einstellungen deiner Nutzer. Jemand mit Sehschwäche, der seine Standardschriftgröße auf 20px erhöht hat, sieht trotzdem deine 16px – nicht barrierefrei!
Relative Einheiten: %, em, rem
Prozent (%) bezieht sich immer auf das Eltern-Element. Bei width: 50% nimmt ein Element die Hälfte der Breite seines Containers ein. Super für flexible Layouts!
em bezieht sich auf die Schriftgröße des Eltern-Elements. Bei verschachtelten Elementen können sich die Werte allerdings multiplizieren – das kann schnell verwirrend werden.
.parent { font-size: 16px; }
.child { font-size: 1.5em; } /* = 24px */
.grandchild { font-size: 1.5em; } /* = 36px! */
rem (root em) ist mein persönlicher Favorit! Bezieht sich immer auf die Schriftgröße des Root-Elements (<html>), standardmäßig 16px. Keine Kaskadierungsprobleme, vorhersagbar, barrierefrei. Win-win-win!
html { font-size: 16px; }
h1 { font-size: 2rem; } /* = 32px */
p { font-size: 1rem; } /* = 16px */
Pixel ÷ 16 = rem. Also: 32px = 2rem, 24px = 1.5rem, 12px = 0.75rem.
Viewport-Einheiten: vw, vh, vmin, vmax
Diese Einheiten basieren auf der Größe des Browserfensters:
| Einheit | Bedeutung |
|---|---|
| vw | 1% der Viewport-Breite |
| vh | 1% der Viewport-Höhe |
| vmin | 1% der kleineren Dimension |
| vmax | 1% der größeren Dimension |
Super praktisch für Hero-Sections, die den ganzen Bildschirm füllen sollen:
.hero {
height: 100vh; /* Füllt die gesamte Viewport-Höhe */
}
Aber Moment – hier gibt’s ein Problem…
Neue Viewport-Einheiten: dvh, svh, lvh (Mobile-Browser-Problem gelöst!)
Das berüchtigte 100vh-Problem hat schon so manchen Entwickler zur Verzweiflung gebracht: Auf mobilen Browsern schließt 100vh den Bereich hinter der Adressleiste ein. Ist die Browser-UI sichtbar, wird dein Content abgeschnitten. Mega nervig!
Die Lösung kam mit den neuen dynamischen Viewport-Einheiten:
| Einheit | Bedeutung |
|---|---|
| svh (Small Viewport Height) | Viewport-Höhe bei vollständig sichtbarer Browser-UI – die sichere Wahl! |
| lvh (Large Viewport Height) | Viewport-Höhe bei ausgeblendeter Browser-UI |
| dvh (Dynamic Viewport Height) | Passt sich dynamisch an, wenn die Browser-UI erscheint oder verschwindet |
.hero {
min-height: 100vh; /* Fallback für ältere Browser */
min-height: 100svh; /* Moderne Lösung */
}
Der Browser-Support liegt mittlerweile bei über 93% – also ruhig verwenden!
Wann welche Einheit verwenden?
| Anwendung | Empfohlene Einheit |
|---|---|
| Typografie | rem |
| Abstände (margin, padding) | rem oder em |
| Element-Breiten | %, vw, fr |
| Full-Screen-Sections | svh/dvh mit vh-Fallback |
| Borders, Shadows | px |
| Line-Height | Ohne Einheit (z.B. 1.5) |
17. Flexible Layouts und Raster
Vom 960-Grid zu flexiblen Rastern
Erinnerst du dich noch an das 960 Grid System? Das war das erste bedeutende CSS-Grid-Framework (2008!) und basierte auf starren 960 Pixeln – perfekt für die damaligen 1024×768-Monitore. Aber feste Pixel-Layouts? Die funktionieren heute auf variierenden Bildschirmgrößen einfach nicht mehr.
Die Evolution führte zu prozentualen Breiten und schließlich zu modernen CSS-Layout-Systemen.
Das 12-Spalten-System
Warum ausgerechnet 12 Spalten? Ganz einfach: 12 ist eine mathematisch geniale Zahl! Sie ist teilbar durch 1, 2, 3, 4, 6 und 12. Das ermöglicht dir supereinfach verschiedene Layouts: Hälften (6 + 6 Spalten), Drittel (4 + 4 + 4 Spalten), Viertel (3 + 3 + 3 + 3 Spalten) oder Zwei Drittel + ein Drittel (8 + 4 Spalten).
Prozentuale Breiten statt Pixel
Früher wurden Spaltenbreiten in Pixeln definiert – heute in Prozent:
.col-4 { width: 33.333%; } /* 1/3 Breite */
.col-6 { width: 50%; } /* 1/2 Breite */
.col-8 { width: 66.666%; } /* 2/3 Breite */
.col-12 { width: 100%; } /* volle Breite */
Beliebte Grid-Systeme: Bootstrap, Foundation, Skeleton
Bootstrap ist wahrscheinlich das bekannteste CSS-Framework überhaupt. Es nutzt ein 12-Spalten-System mit Flexbox-Basis und responsiven Breakpoints:
<div class="container">
<div class="row">
<div class="col-12 col-md-8">Hauptinhalt</div>
<div class="col-12 col-md-4">Sidebar</div>
</div>
</div>
Bootstrap-Breakpoints als Orientierung
- xs:
- sm: ≥ 576px
- md: ≥ 768px
- lg: ≥ 992px
- xl: ≥ 1200px
- xxl: ≥ 1400px
Foundation war das erste Framework mit echtem Mobile-First-Ansatz. Skeleton ist minimalistisch mit nur ca. 11KB – perfekt für kleine Projekte.
18. Float-Layouts (Legacy)
Wie Floats funktionieren
Bevor es Flexbox und Grid gab, haben Entwickler float für mehrspaltige Layouts „missbraucht“. Ursprünglich war float nur dafür gedacht, Text um Bilder fließen zu lassen – wie in einer Zeitung.
.sidebar {
float: left;
width: 25%;
}
.main-content {
float: left;
width: 75%;
}
/* Und dann der berüchtigte Clearfix... */
.clearfix::after {
content: "";
display: table;
clear: both;
}
Warum Floats heute veraltet sind
Float-Layouts hatten jede Menge Probleme, die das Entwickler-Leben zur Hölle machen konnten: Der Eltern-Container „kollabierte“ (Höhe wurde 0), wenn alle Kinder gefloatet waren. Komplexe Clearfix-Hacks waren nötig. Vertikale Zentrierung? Unmöglich! Gleichhohe Spalten? Nur mit fiesen Tricks. Debugging war ein Albtraum.
Wann man sie noch kennen muss (alte Projekte)
Float-Layouts sind zwar veraltet, aber du wirst sie noch in Legacy-Projekten antreffen – besonders in WordPress-Themes, die vor 2017 erstellt wurden. Oder in E-Mail-Templates, wo CSS-Support eingeschränkt ist.
Für den ursprünglichen Zweck – Textumfluss um Bilder – funktionieren Floats allerdings immer noch wunderbar:
.article-image {
float: left;
margin: 0 1rem 1rem 0;
}
19. CSS Flexbox
Jetzt wird’s spannend! Flexbox hat das Float-Chaos endlich beendet und ist heute aus dem Webdesign nicht mehr wegzudenken.
Flex-Container und Flex-Items
Flexbox ist ein eindimensionales Layout-System – es kontrolliert das Layout entweder in einer Zeile ODER einer Spalte. Das klingt nach Einschränkung, ist aber genau seine Stärke!
.container {
display: flex; /* Boom – schon ist es ein Flex-Container! */
}
Alle direkten Kinder werden automatisch zu Flex-Items. Die Hauptachse bestimmt, in welche Richtung die Items fließen.
Die wichtigsten Properties
flex-direction legt die Richtung der Hauptachse fest:
.container {
flex-direction: row; /* Standard: links nach rechts */
flex-direction: row-reverse; /* rechts nach links */
flex-direction: column; /* oben nach unten */
flex-direction: column-reverse; /* unten nach oben */
}
justify-content verteilt Items auf der Hauptachse:
.container {
justify-content: flex-start; /* Items am Anfang */
justify-content: flex-end; /* Items am Ende */
justify-content: center; /* Items zentriert */
justify-content: space-between; /* Gleichmäßiger Abstand ZWISCHEN Items */
justify-content: space-around; /* Gleichmäßiger Abstand UM Items */
justify-content: space-evenly; /* Gleicher Abstand überall */
}
align-items richtet Items auf der Querachse aus:
.container {
align-items: stretch; /* Items strecken sich (Standard) */
align-items: flex-start; /* Items oben/am Anfang */
align-items: flex-end; /* Items unten/am Ende */
align-items: center; /* Items vertikal zentriert */
align-items: baseline; /* Ausrichtung an Textbasislinie */
}
flex-wrap erlaubt Zeilenumbruch bei Platzmangel:
.container {
flex-wrap: nowrap; /* Alles in einer Zeile (Standard) */
flex-wrap: wrap; /* Items umbrechen wenn nötig */
}
Wann Flexbox einsetzen? (Eindimensionale Layouts)
Flexbox ist perfekt für Navigation/Menüs, Button-Gruppen, Card-Layouts mit gleichhohen Karten, Zentrierung von Elementen und generell alle eindimensionalen Anordnungen. Ich selbst nutze Flexbox für gefühlt 80% aller Komponenten-Layouts.
Praktische Code-Beispiele
Perfekte Zentrierung – früher ein Albtraum, heute zwei Zeilen:
.container {
display: flex;
justify-content: center;
align-items: center;
min-height: 100vh;
}
Responsive Navigation:
.navbar {
display: flex;
justify-content: space-between;
align-items: center;
padding: 1rem 2rem;
}
.nav-links {
display: flex;
gap: 2rem;
list-style: none;
}
@media (max-width: 768px) {
.navbar {
flex-direction: column;
gap: 1rem;
}
}
Card-Grid mit Wrap:
.card-container {
display: flex;
flex-wrap: wrap;
gap: 1.5rem;
}
.card {
flex: 1 1 300px; /* grow, shrink, Mindestbreite 300px */
max-width: 400px;
}
20. CSS Grid
Wenn Flexbox eindimensional ist, dann ist CSS Grid die zweidimensionale Königsklasse! Mit Grid kontrollierst du Zeilen UND Spalten gleichzeitig.
Grid-Container und Grid-Items
.container {
display: grid;
}
Wie bei Flexbox werden alle direkten Kinder automatisch zu Grid-Items.
grid-template-columns, grid-template-rows, grid-template-areas
Spalten und Zeilen definieren:
.container {
display: grid;
grid-template-columns: 200px 1fr 200px; /* 3 Spalten */
grid-template-rows: auto 1fr auto; /* 3 Zeilen */
gap: 1.5rem;
}
Die fr-Einheit (fraction) ist super praktisch – sie verteilt den verfügbaren Platz anteilig. 1fr 2fr bedeutet: Die zweite Spalte ist doppelt so breit wie die erste.
Benannte Grid-Bereiche machen dein CSS richtig lesbar:
.container {
display: grid;
grid-template-columns: 200px 1fr 200px;
grid-template-rows: auto 1fr auto;
grid-template-areas:
"header header header"
"sidebar main aside"
"footer footer footer";
}
.header { grid-area: header; }
.sidebar { grid-area: sidebar; }
.main { grid-area: main; }
.aside { grid-area: aside; }
.footer { grid-area: footer; }
auto-fit und auto-fill für flexible Spalten
Das ist der magische Teil! Mit auto-fit und minmax() erstellst du responsive Grids ohne einen einzigen Breakpoint:
.card-grid {
display: grid;
grid-template-columns: repeat(auto-fit, minmax(280px, 1fr));
gap: 1.5rem;
}
Was passiert hier? Der Browser erstellt so viele Spalten wie möglich (mindestens 280px breit) und verteilt den Rest gleichmäßig. Bei schmalem Viewport: eine Spalte. Bei breitem: viele Spalten. Automatisch!
| Eigenschaft | Verhalten |
|---|---|
| auto-fill | Erstellt so viele Spalten wie möglich, behält leere Spalten |
| auto-fit | Erstellt so viele Spalten wie möglich, kollabiert leere Spalten |
In den meisten Fällen willst du auto-fit – die Items expandieren dann auf die volle Breite.
Wann CSS Grid einsetzen? (Zweidimensionale Layouts)
CSS Grid ist ideal für komplexe Seitenlayouts (Header, Sidebar, Main, Footer gleichzeitig), Dashboard-Interfaces, Magazine-Layouts, Bildergalerien und generell alles, wo du präzise Kontrolle über beide Achsen brauchst.
Praktische Code-Beispiele
Einfaches 3-Spalten-Layout:
.grid {
display: grid;
grid-template-columns: 250px 1fr 250px;
gap: 2rem;
}
Responsive Galerie ohne Media Queries:
.gallery {
display: grid;
grid-template-columns: repeat(auto-fit, minmax(250px, 1fr));
gap: 1.5rem;
}
Komplettes Seiten-Layout:
.page {
display: grid;
grid-template-columns: 200px 1fr;
grid-template-rows: auto 1fr auto;
grid-template-areas:
"header header"
"sidebar main"
"footer footer";
min-height: 100vh;
gap: 20px;
}
@media (max-width: 768px) {
.page {
grid-template-columns: 1fr;
grid-template-areas:
"header"
"main"
"sidebar"
"footer";
}
}
Flexbox vs. Grid: Entscheidungshilfe
Klingt kompliziert? Ist es nicht! Hier die Faustregel:
| Aspekt | Flexbox | CSS Grid |
|---|---|---|
| Dimensionen | 1D (Zeile ODER Spalte) | 2D (Zeilen UND Spalten) |
| Ansatz | Content-out (Inhalt bestimmt Layout) | Layout-first (Struktur wird definiert) |
| Haupteinsatz | Komponenten-Level | Seiten-Level |
| Ideal für | Navigation, Card-Reihen, Zentrierung | Komplexe Seitenlayouts, Dashboards |
Grid für das Seitenlayout, Flexbox für die Komponenten darin. Beide zusammen sind unschlagbar!
21. CSS Subgrid
Was ist Subgrid?
Subgrid ist eine relativ neue Erweiterung von CSS Grid, die ein langjähriges Problem löst: Bei verschachtelten Grids wussten die Kind-Elemente bisher nichts vom Eltern-Grid. Die Folge? Überschriften oder Buttons in nebeneinanderliegenden Cards lagen oft nicht auf derselben Linie.
Mit Subgrid kann ein verschachteltes Grid die Spalten- oder Zeilendefinitionen des Eltern-Grids übernehmen:
.card-grid {
display: grid;
grid-template-columns: repeat(3, 1fr);
grid-template-rows: auto 1fr auto; /* 3 Zeilen pro Card */
gap: 2rem;
}
.card {
grid-row: span 3;
display: grid;
grid-template-rows: subgrid; /* Übernimmt Zeilen vom Eltern-Grid! */
}
Perfekte Ausrichtung bei verschachtelten Layouts
Das Ergebnis? Alle Card-Titel sind auf derselben Höhe, alle Buttons ebenfalls – egal wie viel Text in der jeweiligen Card steht. Perfekt für Card-Grids, Formulare oder Dashboard-Widgets!
Browser-Support
Subgrid wird mittlerweile von allen modernen Browsern unterstützt (Firefox 71+, Safari 16+, Chrome 117+, Edge 117+). Der globale Support liegt bei etwa 90%. Für ältere Browser kannst du einen Fallback einbauen:
@supports (grid-template-rows: subgrid) {
.card {
grid-template-rows: subgrid;
grid-row: span 3;
}
}
Wann Subgrid nutzen?
Subgrid ist besonders wertvoll bei Card-Layouts mit konsistenten Elementen (Überschriften, Bilder, Buttons sollen über alle Cards ausgerichtet sein), bei Formularen (Labels und Inputs einheitlich ausgerichtet) und generell bei komplexen verschachtelten Layouts.
Teil 5: Media Queries und Breakpoints
Jetzt kommen wir zu einem der wichtigsten Konzepte im Responsive Webdesign: Media Queries! Damit kannst du dein Layout an verschiedene Bildschirmgrößen anpassen.
22. Was sind Media Queries?
Syntax und Aufbau (@media screen and…)
Media Queries sind wie eine „Wenn-Dann-Funktion“ in CSS. Du sagst dem Browser: „Wenn diese Bedingung erfüllt ist, dann wende diese Styles an.“
@media screen and (min-width: 768px) {
/* Diese CSS-Regeln gelten nur für Bildschirme ab 768px Breite */
}
Die Grundstruktur besteht aus @media (leitet die Media Query ein), screen (der Medientyp, alternativ: print, all), and (logischer Operator) und (min-width: 768px) (die Bedingung).
Wie die „Wenn-Dann-Funktion“ funktioniert
Du kannst mehrere Bedingungen kombinieren:
/* AND – beide Bedingungen müssen zutreffen */
@media screen and (min-width: 768px) and (max-width: 1024px) {
/* Nur für Bildschirme zwischen 768px und 1024px */
}
/* OR (Komma) – eine Bedingung reicht */
@media (orientation: portrait), print {
/* Portrait-Modus ODER Druckansicht */
}
min-width vs. max-width
Das ist die wichtigste Unterscheidung!
min-width: Styles gelten ab einer Mindestbreite (aufwärts). Wird für Mobile First verwendet.
@media (min-width: 768px) {
/* Gilt für Viewports ab 768px aufwärts */
}
max-width: Styles gelten bis zu einer Maximalbreite (abwärts). Wird für Desktop First verwendet.
@media (max-width: 767px) {
/* Gilt für Viewports bis 767px */
}
23. Breakpoints richtig setzen
Breakpoints sind die Schwellenwerte, an denen sich dein Layout ändert. Aber wie setzt du sie richtig?
Content-basierte vs. geräte-basierte Breakpoints
Geräte-basiert (nicht empfohlen): Du orientierst dich an spezifischen Geräten wie iPhone (375px), iPad (768px), Desktop (1024px). Das Problem? Es gibt tausende verschiedene Geräte, und ständig kommen neue hinzu!
Content-basiert (empfohlen): Du setzt Breakpoints dort, wo dein Layout „bricht“ – also wo Textzeilen zu lang werden, Abstände unharmonisch wirken oder Elemente sich überlappen. Das ist zukunftssicher und funktioniert auf allen Geräten.
„Start with the small screen first, then expand until it looks like shit. Time for a breakpoint!“
Typische Breakpoints als Orientierung (nicht als Regel!)
Auch wenn du content-basiert arbeiten solltest, hier ein paar typische Werte zur Orientierung:
| Kategorie | Breite | Typische Geräte |
|---|---|---|
| Extra Small | Smartphones (Portrait) | |
| Small | 576px – 768px | Große Smartphones, kleine Tablets |
| Medium | 768px – 992px | Tablets |
| Large | 992px – 1200px | Laptops, Desktops |
| Extra Large | ≥ 1200px | Große Bildschirme |
Wie viele Breakpoints sind sinnvoll? (3-5 reichen meist)
Weniger ist mehr! Mit 3-5 gut platzierten Breakpoints kommst du in den meisten Projekten aus. Mehr Breakpoints bedeuten komplexeren, schwerer wartbaren Code.
Mein Minimal-Setup für die meisten Projekte:
/* Mobile: Standard-Styles (kein Media Query nötig) */
@media (min-width: 768px) { /* Tablet */ }
@media (min-width: 1024px) { /* Desktop */ }
24. Mobile First Media Queries
Mobile First ist heute der Industriestandard – und das aus gutem Grund!
Von klein nach groß mit min-width
Du schreibst deine Basis-Styles für mobile Geräte (ohne Media Query) und erweiterst dann schrittweise für größere Bildschirme:
/* BASIS-STYLES (Mobile – kein Media Query) */
.container {
width: 100%;
padding: 1rem;
}
.grid {
display: grid;
grid-template-columns: 1fr;
gap: 1rem;
}
/* TABLET (min-width: 768px) */
@media (min-width: 768px) {
.container {
max-width: 720px;
margin: 0 auto;
}
.grid {
grid-template-columns: repeat(2, 1fr);
gap: 1.5rem;
}
}
/* DESKTOP (min-width: 1024px) */
@media (min-width: 1024px) {
.container {
max-width: 960px;
}
.grid {
grid-template-columns: repeat(3, 1fr);
gap: 2rem;
}
}
Warum dieser Ansatz besser ist
Mobile First hat handfeste Vorteile. Performance: Mobile Geräte laden nur das essentielle CSS – keine unnötigen Desktop-Styles, die dann überschrieben werden. Fokus auf das Wesentliche: Die Beschränkungen des kleinen Screens zwingen dich, dich auf die wichtigsten Inhalte zu konzentrieren. Zukunftssicher: Mobile Traffic wächst weiter – laut Statista liegt der mobile Anteil am Web-Traffic weltweit bei über 50%.
25. Desktop First Media Queries
Es gibt aber auch Situationen, in denen Desktop First noch sinnvoll sein kann.
Von groß nach klein mit max-width
Bei Desktop First startest du mit den Desktop-Styles und reduzierst dann für kleinere Bildschirme:
/* BASIS-STYLES (Desktop) */
.grid {
display: grid;
grid-template-columns: repeat(4, 1fr);
gap: 2rem;
}
/* TABLET (max-width: 1024px) */
@media (max-width: 1024px) {
.grid {
grid-template-columns: repeat(2, 1fr);
}
}
/* MOBILE (max-width: 768px) */
@media (max-width: 768px) {
.grid {
grid-template-columns: 1fr;
gap: 1rem;
}
}
Wann noch sinnvoll?
Desktop First kann in bestimmten Situationen Sinn machen. Bei Legacy-Projekten, wenn du responsive Design nachträglich zu einer existierenden Desktop-Seite hinzufügst. Bei Desktop-primären Anwendungen wie Admin-Dashboards oder Enterprise-Tools, die hauptsächlich am Desktop genutzt werden. Oder beim Rapid Prototyping, wenn das Design vom Kunden als Desktop-Mockup geliefert wird.
26. Bildschirmausrichtung abfragen
orientation: portrait vs. landscape
Mit dem orientation-Feature erkennst du, ob das Gerät im Hoch- oder Querformat gehalten wird:
/* Portrait: Höhe >= Breite */
@media (orientation: portrait) {
.hero {
height: 50vh;
}
}
/* Landscape: Breite > Höhe */
@media (orientation: landscape) {
.hero {
height: 100vh;
}
}
Wann relevant?
Orientation-Queries sind besonders nützlich bei Tablets (profitieren am meisten von orientierungsspezifischen Layouts), Video-Playern (Vollbild-Video im Landscape-Modus), Spielen (oft spezifische Ausrichtung erforderlich) und Foto-Galerien (unterschiedliche Thumbnail-Layouts).
Das orientation-Feature basiert auf den Viewport-Dimensionen, nicht auf der physischen Geräteausrichtung. Ein schmales Browser-Fenster auf dem Desktop kann also auch als „portrait“ erkannt werden!
27. Moderne Media Features
Responsivität bedeutet heute viel mehr als nur Bildschirmbreite! Mit modernen Media Features kannst du auf Nutzerpräferenzen und Gerätefähigkeiten reagieren.
pointer (coarse/fine) – Touch vs. Maus erkennen
Mit pointer erkennst du die Genauigkeit des Eingabegeräts:
/* Standard-Größe */
button {
padding: 0.5rem 1rem;
}
/* Touch-Geräte: Größere Touch-Targets */
@media (pointer: coarse) {
button {
padding: 1rem 2rem;
min-height: 44px; /* Apple's Empfehlung für Touch-Targets */
}
}
/* Maus-Nutzer: Kompaktere Elemente möglich */
@media (pointer: fine) {
button {
padding: 0.25rem 0.5rem;
}
}
hover – Hover-Fähigkeit abfragen
Nicht jedes Gerät kann hovern! Touch-Geräte können das nicht wirklich. Mit diesem Feature vermeidest du frustrierende UX:
/* Standard: Keine Hover-Abhängigkeit */
.dropdown-menu {
display: block;
}
/* Hover-Effekte nur für hover-fähige Geräte */
@media (hover: hover) {
.dropdown-menu {
display: none;
}
.dropdown:hover .dropdown-menu {
display: block;
}
}
prefers-color-scheme – Dark Mode erkennen
Dark Mode ist kein Trend mehr, sondern Standard! So erkennst du die Nutzerpräferenz:
/* Light Theme (Standard) */
:root {
--bg-color: #ffffff;
--text-color: #1a1a1a;
--link-color: #0066cc;
}
/* Dark Theme */
@media (prefers-color-scheme: dark) {
:root {
--bg-color: #1a1a1a;
--text-color: #f0f0f0;
--link-color: #66b3ff;
}
}
body {
background-color: var(--bg-color);
color: var(--text-color);
}
prefers-reduced-motion – Animationen reduzieren
Manche Menschen bekommen von Animationen Kopfschmerzen oder Übelkeit (vestibuläre Störungen). Respektiere ihre Einstellung:
/* Standard: Mit Animationen */
.animated {
animation: slide-in 0.5s ease-out;
transition: transform 0.3s ease;
}
/* Reduzierte Bewegung */
@media (prefers-reduced-motion: reduce) {
*,
*::before,
*::after {
animation-duration: 0.01ms !important;
animation-iteration-count: 1 !important;
transition-duration: 0.01ms !important;
scroll-behavior: auto !important;
}
}
prefers-contrast – Hoher Kontrast
Für Nutzer mit Sehbehinderungen, die höhere Kontraste benötigen:
/* Standard */
.card {
background: #f5f5f5;
border: 1px solid #ddd;
}
/* Hoher Kontrast */
@media (prefers-contrast: more) {
.card {
background: #ffffff;
border: 2px solid #000000;
color: #000000;
}
}
Code-Beispiele für alle Features kombiniert
Hier ein praktisches Beispiel, das mehrere Features kombiniert:
.card {
padding: 1rem;
transition: transform 0.3s;
}
/* Größere Touch-Targets */
@media (pointer: coarse) {
.card {
padding: 1.5rem;
}
}
/* Hover-Effekt nur für Maus */
@media (hover: hover) {
.card:hover {
transform: translateY(-4px);
}
}
/* Keine Animation bei reduzierter Bewegung */
@media (prefers-reduced-motion: reduce) {
.card {
transition: none;
}
}
/* Dark Mode */
@media (prefers-color-scheme: dark) {
.card {
background: #2a2a2a;
color: #f0f0f0;
}
}
/* Hoher Kontrast */
@media (prefers-contrast: more) {
.card {
border: 2px solid currentColor;
}
}
Teil 6: Container Queries – Die Zukunft
Jetzt kommen wir zu dem Feature, auf das Webentwickler über 20 Jahre gewartet haben! Container Queries sind ein echter Game-Changer.
28. Was sind Container Queries?
Der Unterschied zu Media Queries
Media Queries reagieren immer auf den Viewport – also die Größe des Browserfensters. Das funktioniert für Seitenlayouts super, aber für Komponenten? Nicht so sehr!
Das Problem: Eine Card-Komponente soll in der schmalen Sidebar kompakt aussehen und im breiten Hauptbereich horizontal. Mit Media Queries müsstest du das über die Viewport-Breite lösen – aber was, wenn die Sidebar auf dem Desktop schmal ist? Dann greift dein „Mobile“-Styling nicht!
Container Queries lösen das: Statt auf den Viewport reagiert die Komponente auf die Größe ihres eigenen Containers.
| Aspekt | Media Queries | Container Queries |
|---|---|---|
| Reagieren auf | Viewport-Größe | Container-Größe |
| Geltungsbereich | Global für gesamte Seite | Lokal für Komponenten |
| Breakpoints | Ein Breakpoint gilt überall | Jeder Container kann eigene Breakpoints haben |
Warum Container Queries ein Game-Changer sind
Container Queries ermöglichen echte komponentenbasierte Responsivität. Eine Komponente kann jetzt fragen: „Wie viel Platz habe ich?“ – statt: „Wie breit ist der Bildschirm?“
Das bedeutet: Du baust eine Card einmal, und sie passt sich automatisch an, egal wo du sie einsetzt – in der Sidebar, im Hauptbereich, in einem Modal. Keine .card--sidebar, .card--main Klassen mehr nötig!
Breakpoints pro Komponente statt pro Seite
Mit Media Queries hattest du globale Breakpoints: „Bei 768px ändert sich alles.“ Mit Container Queries hat jede Komponente ihre eigenen, lokalen Breakpoints. Die Navigation kann bei 400px Container-Breite umbrechen, während die Card bei 500px ihr Layout ändert – völlig unabhängig voneinander!
Perfekt für wiederverwendbare Komponenten
Besonders bei Design Systems und Component Libraries sind Container Queries Gold wert: Komponenten sind self-contained und kontext-unabhängig, du musst beim Bauen der Komponente nicht wissen, wo sie platziert wird, und die Komponente funktioniert überall – automatisch!
29. Container Queries in der Praxis
Jetzt wird’s praktisch! So nutzt du Container Queries in deinen Projekten.
Syntax und Code-Beispiele
Zuerst musst du einen Container definieren:
.card-wrapper {
container-type: inline-size;
}
Mit container-type: inline-size sagst du dem Browser: „Überwache die Breite dieses Elements!“
Dann schreibst du deine Container Query:
/* Standard: gestapeltes Layout (schmal) */
.card {
display: flex;
flex-direction: column;
gap: 1rem;
}
/* Horizontales Layout ab 400px Container-Breite */
@container (min-width: 400px) {
.card {
flex-direction: row;
align-items: center;
}
}
Du kannst Container auch benennen für mehr Kontrolle:
.sidebar {
container-type: inline-size;
container-name: sidebar;
}
/* Abfrage nur für Elemente im sidebar-Container */
@container sidebar (min-width: 300px) {
.nav-item {
padding: 1rem;
}
}
Oder als Shorthand:
.wrapper {
container: card / inline-size; /* Name / Type */
}
Container Query Units: cqw, cqh, cqi, cqb
Analog zu Viewport-Einheiten gibt es Container Query Units:
| Einheit | Bedeutung |
|---|---|
| cqw | 1% der Container-Breite |
| cqh | 1% der Container-Höhe |
| cqi | 1% der Container Inline-Size (meist Breite) |
| cqb | 1% der Container Block-Size (meist Höhe) |
| cqmin | Kleinerer Wert von cqi oder cqb |
| cqmax | Größerer Wert von cqi oder cqb |
Damit kannst du zum Beispiel fluide Typografie basierend auf dem Container erstellen:
.card-wrapper {
container-type: inline-size;
}
.card-title {
font-size: clamp(1rem, 5cqi, 2rem);
}
Die Überschrift skaliert jetzt mit der Container-Breite – nicht mit dem Viewport!
Browser-Support
Die gute Nachricht: Container Queries werden von allen modernen Browsern unterstützt! Chrome ab Version 105, Firefox ab 110, Safari ab 16.0, Edge ab 105. Der globale Support liegt bei etwa 94% – mehr als genug für den produktiven Einsatz.
Für ältere Browser kannst du einen Fallback einbauen:
/* Fallback: Mobile-Layout */
.card {
display: flex;
flex-direction: column;
}
/* Progressive Enhancement */
@supports (container-type: inline-size) {
.card-wrapper {
container-type: inline-size;
}
@container (min-width: 400px) {
.card {
flex-direction: row;
}
}
}
Wann Container Queries einsetzen?
Container Queries sind ideal für: Card-Komponenten mit wechselndem Layout, Dashboard-Widgets in variierenden Spaltenbreiten, Navigation mit ein-/ausblendenden Labels, Formular-Layouts je nach verfügbarem Platz, und generell alle wiederverwendbaren Design-System-Komponenten.
Weiterhin Media Queries nutzen für: Globale Layout-Änderungen (Header/Footer-Sichtbarkeit), User-Preference Queries (prefers-reduced-motion, prefers-color-scheme), Device-Feature Queries (Print-Styles, Hover-Fähigkeit).
Wenn die Styling-Änderung die Komponente selbst betrifft, die sich an ihren Platz anpasst → Container Query. Wenn es um die Seite geht, die auf das Gerät reagiert → Media Query.
Praktisches Beispiel: Vollständige responsive Card
Hier ein komplettes Beispiel, das alles zusammenbringt:
<div class="card-wrapper">
<article class="card">
<img src="thumbnail.jpg" alt="" class="card-image">
<div class="card-content">
<h2 class="card-title">Artikel-Titel</h2>
<p class="card-text">Kurze Beschreibung des Artikels...</p>
<a href="#" class="card-link">Weiterlesen</a>
</div>
</article>
</div>
/* Container definieren */
.card-wrapper {
container: card / inline-size;
}
/* Standard: gestapeltes Layout */
.card {
display: flex;
flex-direction: column;
gap: 1rem;
padding: 1rem;
border-radius: 8px;
background: white;
box-shadow: 0 2px 4px rgba(0,0,0,0.1);
}
.card-image {
width: 100%;
aspect-ratio: 16 / 9;
object-fit: cover;
border-radius: 4px;
}
.card-title {
font-size: clamp(1rem, 3cqi + 0.5rem, 1.5rem);
}
/* Ab 400px: Horizontales Layout */
@container card (min-width: 400px) {
.card {
flex-direction: row;
align-items: flex-start;
}
.card-image {
flex: 0 0 40%;
max-width: 200px;
}
.card-content {
flex: 1;
}
}
/* Ab 600px: Erweiterte Ansicht */
@container card (min-width: 600px) {
.card {
gap: 2rem;
padding: 1.5rem;
}
.card-image {
flex: 0 0 250px;
max-width: 300px;
}
.card-title {
font-size: 1.75rem;
}
}
Diese Card passt sich jetzt automatisch an ihren verfügbaren Platz an – egal ob in einer schmalen Sidebar, im Hauptbereich oder in einem dreispaltigen Grid!
Responsive Bilder und Medien
Du willst eine Website bauen, die auf jedem Gerät perfekt aussieht? Dann bist du hier genau richtig. Denn responsive Webdesign ist längst kein „Nice-to-have“ mehr – es ist absolute Pflicht. Über 60% des weltweiten Web-Traffics kommen mittlerweile von mobilen Geräten, wie Statista regelmäßig zeigt.
Das Problem: Viele denken bei „responsiv“ nur an flexible Layouts. Aber das ist nur die halbe Miete! Die wahre Herausforderung liegt in den Details – responsive Bilder, mobile Navigation, fluide Typografie und touch-optimierte Interaktionen. Genau darum geht’s in diesem Guide.
Bilder machen laut HTTP Archive durchschnittlich über 50% des Datenvolumens einer Website aus. Das ist verdammt viel! Und genau deshalb ist die richtige Bildoptimierung so entscheidend für die Performance deiner Seite – und damit auch für dein Google-Ranking über die Core Web Vitals.
Flexible Bilder – Die Grundlagen
Die einfachste Regel für responsive Bilder kennst du wahrscheinlich schon:
img {
max-width: 100%;
height: auto;
}
Aber Moment – warum max-width und nicht einfach width: 100%? Der Unterschied ist entscheidend: Mit width: 100% würde ein kleines 200px-Bild auf die volle Container-Breite gestreckt werden – und dabei unscharf werden. Die max-width-Variante sagt dem Browser: „Werde nie größer als dein Original, aber schrumpfe bei Bedarf.“
Ein 2000px breites Hero-Bild wird auch auf einem kleinen Smartphone komplett heruntergeladen – obwohl du nur einen Bruchteil der Pixel brauchst. Das frisst mobiles Datenvolumen, verlängert die Ladezeit und ärgert deine Nutzer. Die Lösung heißt srcset und sizes.
Retina-Displays und Pixeldichte verstehen
Moderne Smartphones und Laptops haben hochauflösende Displays. Das iPhone beispielsweise hat ein Device Pixel Ratio (DPR) von 2 oder sogar 3. Was heißt das konkret? Ein CSS-Pixel entspricht nicht einem Hardware-Pixel, sondern zwei oder drei!
Wenn du ein 100px breites Bild auf einem Retina-Display mit DPR 2 anzeigst, braucht der Browser eigentlich 200 echte Pixel. Hat er die nicht, wird das Bild gestreckt und sieht matschig aus. Du kennst das vielleicht von unscharfen Logos auf deinem MacBook.
| DPR | Was es bedeutet | Typische Geräte |
|---|---|---|
| 1 | Standard-Display | Ältere Monitore |
| 2 | Retina/HiDPI | MacBooks, iPhones, viele Android-Geräte |
| 3 | Super Retina | iPhone Pro-Modelle, High-End Android |
Die gute Nachricht: 2x-Bilder reichen in der Regel völlig aus. Der Unterschied zwischen 2x und 3x ist für das menschliche Auge kaum wahrnehmbar – spart aber ordentlich Bandbreite.
srcset und sizes – Lass den Browser entscheiden
Mit dem srcset-Attribut gibst du dem Browser eine Auswahl an Bildgrößen, aus denen er selbstständig wählen kann. Das Geniale daran: Der Browser berücksichtigt automatisch Viewport-Breite, Pixeldichte und sogar die Netzwerkgeschwindigkeit!
<img
srcset="produkt-480.jpg 480w,
produkt-800.jpg 800w,
produkt-1200.jpg 1200w"
sizes="(max-width: 600px) 100vw,
(max-width: 1200px) 50vw,
33vw"
src="produkt-800.jpg"
alt="Produktfoto des neuen Gadgets">
Wie liest sich das? Das srcset listet verfügbare Bilder mit ihren echten Breiten (das „w“ steht für Width in Pixeln). Das sizes-Attribut sagt dem Browser, wie groß das Bild bei verschiedenen Viewport-Breiten dargestellt wird.
Bei Viewports bis 600px nimmt das Bild 100vw (volle Breite) ein. Bis 1200px sind es 50vw (halbe Breite). Darüber nur noch 33vw (ein Drittel). Der Browser rechnet dann: „Okay, bei einem 375px iPhone mit DPR 2 brauche ich ein Bild von 750px Breite“ – und lädt automatisch die 800w-Version.
Das Ergebnis? Laut web.dev kannst du damit 70-90% Bandbreite auf kleinen Geräten einsparen!
Für Bilder mit fixer Größe (wie Logos) gibt’s eine kürzere Schreibweise:
<img
srcset="logo.png 1x, logo@2x.png 2x, logo@3x.png 3x"
src="logo.png"
alt="Firmenlogo">
Art Direction mit dem picture-Element
Manchmal willst du nicht nur verschiedene Größen desselben Bildes liefern – sondern komplett andere Bildausschnitte. Stell dir ein Panoramafoto vor: Auf dem Desktop sieht man die ganze Landschaft mit einer Person in der Mitte. Auf dem Smartphone wäre die Person winzig klein!
Hier kommt das picture-Element ins Spiel:
<picture>
<!-- Mobile: Hochformat-Crop mit Fokus auf der Person -->
<source
media="(max-width: 600px)"
srcset="hero-portrait.jpg">
<!-- Tablet: Angepasster Ausschnitt -->
<source
media="(max-width: 900px)"
srcset="hero-tablet.jpg">
<!-- Desktop: Volle Panorama-Ansicht -->
<img
src="hero-landscape.jpg"
alt="Person am Bergsee">
</picture>
Der Browser geht die source-Elemente von oben nach unten durch und nimmt das erste, dessen Media Query zutrifft. Das img-Tag am Ende ist Pflicht – ohne es wird nichts angezeigt!
Nutze srcset für 90% deiner Bilder – wenn das Motiv gleich bleibt und nur die Auflösung variiert. Das picture-Element brauchst du nur, wenn du den Bildausschnitt oder die Komposition bewusst ändern willst.
Hintergrundbilder responsiv gestalten
CSS-Hintergrundbilder benötigen andere Techniken als HTML-Bilder:
.hero {
background-image: url('hero-mobile.jpg');
background-size: cover;
background-position: center;
min-height: 50vh;
}
@media (min-width: 768px) {
.hero {
background-image: url('hero-desktop.jpg');
min-height: 80vh;
}
}
Die Eigenschaft background-size: cover füllt den Container komplett aus und beschneidet das Bild bei Bedarf. Perfekt für Hero-Sections, wo ein vollflächiger Hintergrund wichtiger ist als jedes Detail. Mit background-position steuerst du, welcher Bereich sichtbar bleibt – zum Beispiel center top für Bilder, wo das Wichtige oben ist.
Die Alternative background-size: contain zeigt das gesamte Bild ohne Beschnitt, kann aber unschöne Leerräume erzeugen. Besser geeignet für Logos oder Produktfotos, wo nichts abgeschnitten werden darf.
SVG – Der skalierbare Alleskönner für Icons und Logos
Für Logos, Icons und Grafiken sind SVGs (Scalable Vector Graphics) die beste Wahl. Als Vektorgrafiken skalieren sie verlustfrei auf jede Größe – keine 2x-Versionen nötig! Außerdem sind sie oft kleiner als vergleichbare PNGs und lassen sich per CSS stylen.
Das Geheimnis responsiver SVGs liegt im viewBox-Attribut:
<svg viewBox="0 0 100 100" width="100%" height="auto">
<circle cx="50" cy="50" r="40" fill="currentColor"/>
</svg>
Die viewBox definiert ein internes Koordinatensystem (hier 100×100 Einheiten). Das SVG skaliert dann proportional auf jede Container-Größe. Ohne viewBox hätte das SVG eine feste Pixelgröße – und wäre nicht responsiv!
| Einbindungsmethode | Vorteile | Nachteile |
|---|---|---|
<img src="icon.svg"> |
Einfach, cacht gut | Nicht per CSS stylebar |
| Inline SVG im HTML | Volle CSS-Kontrolle, currentColor nutzbar | HTML wird größer |
| CSS background-image | Gute Trennung von Inhalt und Design | Keine Farbänderung möglich |
Mein Tipp: Für Icons, die ihre Farbe ändern sollen (z.B. beim Hover), nutze Inline-SVG mit fill="currentColor". So erbt das Icon automatisch die Textfarbe.
Moderne Bildformate: WebP und AVIF
JPEG und PNG waren gestern! Moderne Formate bieten deutlich bessere Kompression bei gleicher oder besserer Qualität.
WebP komprimiert etwa 25-34% besser als JPEG, unterstützt Transparenz und Animation. Der Browser-Support liegt bei über 95% – du kannst es also bedenkenlos einsetzen.
AVIF geht noch weiter: bis zu 50% kleiner als JPEG, mit HDR-Unterstützung und 10-12 Bit Farbtiefe. Der Support liegt mittlerweile bei über 93%, nachdem Safari und Edge nachgezogen haben.
Die optimale Strategie kombiniert beide mit einem JPEG-Fallback:
<picture>
<source srcset="bild.avif" type="image/avif">
<source srcset="bild.webp" type="image/webp">
<img src="bild.jpg" alt="Beschreibung" loading="lazy">
</picture>
Der Browser nimmt automatisch das erste Format, das er unterstützt. Progressive Enhancement at its best!
Lazy Loading und fetchpriority richtig einsetzen
Das Attribut loading="lazy" verzögert das Laden von Bildern, bis sie in den sichtbaren Bereich scrollen:
<img src="produkt.jpg" loading="lazy" alt="Produkt">
Das spart massiv Bandbreite beim initialen Seitenaufbau.
Verwende Lazy Loading niemals für das wichtigste Bild der Seite – das sogenannte LCP-Bild (Largest Contentful Paint). Sonst verschlechterst du deine Core Web Vitals!
Für dein Hero-Bild nutzt du stattdessen fetchpriority:
<!-- Hero-Bild: Hohe Priorität, sofort laden -->
<img src="hero.jpg" fetchpriority="high" alt="Hero-Bild">
<!-- Bilder weiter unten: Verzögert laden -->
<img src="galerie-1.jpg" loading="lazy" alt="Galeriebild">
Laut Google-Tests verbessert sich der LCP damit von 2,6s auf 1,9s – ein enormer Unterschied!
Responsive Videos einbetten
Videos responsiv zu machen war lange Zeit ein Krampf mit dem berüchtigten „Padding-Hack“. Die gute Nachricht: Mit der CSS-Eigenschaft aspect-ratio ist das Geschichte!
iframe, video {
width: 100%;
aspect-ratio: 16 / 9;
height: auto;
}
Für YouTube oder Vimeo sieht das so aus:
<iframe
src="https://www.youtube.com/embed/VIDEO_ID"
style="width: 100%; aspect-ratio: 16/9;"
allowfullscreen>
</iframe>
Falls du ältere Browser unterstützen musst, hier der klassische Padding-Trick als Fallback:
.video-container {
position: relative;
padding-bottom: 56.25%; /* 16:9 = 9/16 = 0.5625 */
height: 0;
}
.video-container iframe {
position: absolute;
top: 0;
left: 0;
width: 100%;
height: 100%;
}
Die Navigation ist das Herzstück jeder Website. Auf kleinen Screens wird sie aber schnell zum Problem – du hast wenig Platz, willst aber trotzdem alle wichtigen Seiten erreichbar machen.
Die Herausforderung mobiler Navigation
Mobile Geräte generieren über 60% des Web-Traffics, bieten aber nur einen Bruchteil des Platzes. Das Grundproblem: Jedes UI-Element konkurriert mit dem eigentlichen Inhalt um wertvollen Bildschirmraum.
Studien der Nielsen Norman Group zeigen: Bei versteckter Navigation sinkt die Nutzung um fast 50%! Nutzer finden Funktionen nicht, die sie nicht sehen. Das berühmte „Out of sight, out of mind“-Problem.
Gleichzeitig führen zu viele sichtbare Optionen zu Entscheidungslähmung. Nutzer verweilen durchschnittlich nur 10-20 Sekunden auf einer Seite – und springen ab, wenn sie überfordert sind.
Das Hamburger-Menü – Segen oder Fluch?
Das ikonische ☰-Symbol (erfunden 1990 von Norm Cox für Xerox) ist platzsparend und weithin erkannt. Aber es hat auch erhebliche Nachteile:
Vorteile:
- Maximale Platzersparnis: Minimaler Footprint im Interface
- Aufgeräumtes Design: Klare, reduzierte Optik
- Erlernter Standard: Besonders bei jüngeren Nutzern etabliert
Nachteile:
- Geringere Nutzung: Versteckte Optionen werden seltener angeklickt
- Zusätzlicher Klick: Höhere Interaktionskosten für den Nutzer
- Verständnisprobleme: 48% der über 45-Jährigen erkennen das Icon nicht sofort
- Versteckte Conversion-Punkte: Wichtige Links wie „Kontakt“ oder „Shop“ verschwinden
Wann ist das Hamburger-Menü sinnvoll?
Das Hamburger-Menü eignet sich für sekundäre Navigation (Einstellungen, Profil), bei mehr als 5-7 Hauptnavigationspunkten und ausschließlich auf mobilen Geräten – nie auf Desktop! Ein zusätzlicher Tipp: Zeige das Wort „Menü“ neben dem Icon. Das erhöht die Klickrate messbar!
Navigationsarten im Überblick
Es gibt nicht DIE eine Lösung für mobile Navigation. Je nach Seitentyp und Zielgruppe eignen sich unterschiedliche Patterns:
Toggle Navigation öffnet das Menü direkt unterhalb des Headers nach unten. Der Seiteninhalt wird nach unten geschoben. Gut für einfache Websites mit 5-8 Menüpunkten.
Off-Canvas Navigation schiebt von der Seite ins Bild. Bietet viel Platz für umfangreiche Menüs mit Unterkategorien:
.sidebar {
position: fixed;
left: -280px;
width: 280px;
height: 100vh;
transition: transform 0.3s ease;
}
.sidebar.open {
transform: translateX(280px);
}
Bottom Navigation / Tab Bar positioniert 3-5 Hauptdestinationen am unteren Bildschirmrand – in der natürlichen „Thumb Zone“. Instagram, YouTube und WhatsApp nutzen dieses Pattern erfolgreich. Vorteile: daumenfreundlich, immer sichtbar, vertraut aus nativen Apps.
.tab-bar {
position: fixed;
bottom: 0;
width: 100%;
height: 56px;
display: flex;
justify-content: space-around;
padding-bottom: env(safe-area-inset-bottom); /* Für iPhone-Notch */
}
Priority+ Pattern zeigt so viele Navigationspunkte wie horizontal Platz ist, der Rest wandert unter einen „Mehr“-Button. Die BBC nutzt dieses Muster erfolgreich. Der entscheidende Vorteil: Die Navigation passt sich dynamisch der verfügbaren Breite an.
Best Practices für mobile Navigation
Touch-Targets sind nicht verhandelbar! Apple empfiehlt mindestens 44×44 Punkte, Google Material Design sogar 48×48dp. Die WCAG 2.2 fordert für Level AA mindestens 24×24px. Elemente unter diesen Größen werden von über 25% der Nutzer falsch getippt – das sogenannte „Fat Finger Problem“.
- Abstände zwischen Touch-Targets: Mindestens 8px zwischen klickbaren Elementen verhindern versehentliche Taps
- Verschachtelungstiefe begrenzen: Maximum 2-3 Ebenen auf Mobile – bei tieferen Strukturen lieber eine Suchfunktion anbieten
- Alternative Navigationswege: Nie nur auf ein Navigationsmuster setzen! Footer-Links, Breadcrumbs und In-Content-Links bieten zusätzliche Orientierung
- Aktuelle Seite kennzeichnen: Laut Baymard tun das 95% der Websites nicht richtig
<a href="/produkte" aria-current="page" class="active">Produkte</a>
Content-Choreographie
Content-Choreographie – der Begriff stammt von Trent Walton – beschreibt das intelligente Umordnen von Inhalten je nach Bildschirmgröße. Das Problem der einfachen Spalten-Stapelung: Die sorgfältig geplante visuelle Hierarchie geht verloren.
Was passiert beim simplen Stapeln?
Stell dir ein 3-spaltiges Desktop-Layout vor: Links der Hauptinhalt, in der Mitte eine Promotion-Box, rechts die Sidebar. Wenn du die Spalten einfach untereinander stapelst, landet die wichtige Promotion ganz unten – außerhalb des sichtbaren Bereichs!
Mit Content-Choreographie kannst du stattdessen die Promotion zwischen zwei Inhaltsbereichen einfügen, wo sie auf Mobile mehr Aufmerksamkeit bekommt.
Inhalte priorisieren – Was ist auf Mobile wichtiger?
Nicht alles, was auf Desktop sinnvoll ist, braucht auf Mobile denselben Platz. Hier eine grobe Orientierung:
| Hohe Priorität auf Mobile | Niedrigere Priorität |
|---|---|
| Telefonnummer (Click-to-Call!) | Dekorative Bilder |
| Haupt-CTA (Kaufen, Kontakt) | Sekundäre Navigation |
| Kerninhalt des Artikels | Sidebar-Widgets |
| Kontaktformular | Ausführliche FAQs |
Elemente können mit display: none auf Mobile ausgeblendet werden – aber Vorsicht: Verstecke nie wichtige Informationen! Google indexiert versteckte Inhalte zwar, gewichtet sie aber geringer.
.sidebar-widget {
display: block;
}
@media (max-width: 768px) {
.sidebar-widget {
display: none;
}
}
Flexbox order und CSS Grid für die Umordnung
Mit Flexbox kannst du Elemente visuell umordnen, ohne das HTML zu ändern:
.container {
display: flex;
flex-direction: column;
}
/* Mobile: CTA ganz oben, dann Inhalt, dann Sidebar */
.cta-box { order: 1; }
.content { order: 2; }
.sidebar { order: 3; }
/* Desktop: Klassische Reihenfolge */
@media (min-width: 768px) {
.container { flex-direction: row; }
.cta-box, .content, .sidebar { order: 0; }
}
CSS Grid bietet noch mehr Kontrolle mit grid-template-areas:
.page {
display: grid;
grid-template-areas:
"header"
"main"
"sidebar"
"footer";
}
@media (min-width: 768px) {
.page {
grid-template-columns: 1fr 300px;
grid-template-areas:
"header header"
"main sidebar"
"footer footer";
}
}
.header { grid-area: header; }
.main { grid-area: main; }
.sidebar { grid-area: sidebar; }
Während CSS die visuelle Darstellung ändert, folgen Screenreader und Tastaturnavigation der HTML-Quellreihenfolge. Die WCAG 1.3.2 verlangt: Die Lesereihenfolge muss auch ohne CSS sinnvoll sein. Nutze CSS-Umordnung nur für kleine visuelle Anpassungen!
Visuelle Hierarchie auf allen Geräten bewahren
Headlines müssen auch auf Mobile als Headlines erkennbar sein. Der Fehler vieler Websites: Auf Mobile werden alle Schriftgrößen ähnlich – die Hierarchie verschwindet.
Proportionen beibehalten mit clamp():
h1 { font-size: clamp(2rem, 1.5rem + 2.5vw, 3.5rem); }
h2 { font-size: clamp(1.5rem, 1.2rem + 1.5vw, 2.5rem); }
p { font-size: clamp(1rem, 0.95rem + 0.25vw, 1.25rem); }
Auch Abstände solltest du proportional reduzieren – nicht einfach halbieren. Nutze CSS Custom Properties für konsistentes Spacing:
:root {
--spacing-base: 1rem;
}
@media (max-width: 768px) {
:root {
--spacing-base: 0.75rem;
}
}
.card {
padding: calc(var(--spacing-base) * 2);
margin-bottom: var(--spacing-base);
}
Responsive Typografie
Gute Typografie ist auf jedem Gerät lesbar – ohne Zoomen, ohne Augenkneifen. Die drei entscheidenden Faktoren sind Schriftgröße, Zeilenhöhe und Zeilenlänge. Sie müssen im Einklang sein!
CSS-Einheiten für Schriftgrößen verstehen
px (Pixel) sind absolut und ignorieren Browser-Zoom-Einstellungen. Problematisch für Barrierefreiheit, da über 75% der Nutzer mit Sehbehinderung ihre Standard-Schriftgröße im Browser anpassen.
em ist relativ zum Elternelement. Das Problem: Verschachtelte Elemente multiplizieren sich. Ein Element mit 1.2em in einem Container mit 1.2em ergibt 1.44em vom Root – schwer kontrollierbar!
rem ist relativ zum Root-Element (<html>) und die beste Wahl für Fließtext. Respektiert Browser-Einstellungen und verhält sich vorhersagbar:
html { font-size: 100%; } /* Nicht 16px setzen! */
body { font-size: 1rem; }
h1 { font-size: 2.5rem; }
vw skaliert mit der Viewport-Breite, kann aber auf großen Screens riesig und auf kleinen winzig werden. Außerdem ignoriert vw den Browser-Zoom – ein WCAG-Problem! Nur in Kombination mit clamp() verwenden.
Fluid Typography mit clamp()
Die clamp()-Funktion ermöglicht stufenlose Schriftgrößenanpassung ohne Breakpoints:
font-size: clamp(minimum, bevorzugt, maximum);
Die Schrift skaliert flüssig zwischen Minimum und Maximum, basierend auf dem bevorzugten Wert. Ein praktisches Beispiel:
body {
/* Skaliert von 16px bis 20px */
font-size: clamp(1rem, 0.95rem + 0.25vw, 1.25rem);
}
h1 {
/* Skaliert von 32px bis 56px */
font-size: clamp(2rem, 1.5rem + 2.5vw, 3.5rem);
}
Der Utopia Fluid Type Calculator generiert komplette CSS Custom Properties für Fluid Type Scales!
Konkrete Schriftgrößen-Empfehlungen
| Element | Desktop | Mobile | Zeilenhöhe |
|---|---|---|---|
| Fließtext | 18-20px | 16-18px | 1.5-1.6 |
| Kleiner Text | 14-16px | 14px | 1.4-1.5 |
| H1 | 36-48px | 28-32px | 1.1-1.3 |
| H2 | 28-36px | 24-28px | 1.2-1.3 |
| H3 | 22-28px | 20-24px | 1.3-1.4 |
Optimale Zeilenlänge: 60-75 Zeichen auf Desktop, 35-45 Zeichen auf Mobile. Zu lange Zeilen ermüden das Auge beim Zurückspringen zur nächsten Zeile. Umsetzung mit max-width: 65ch;
Schriftgröße in Formularfeldern nie unter 16px! iOS Safari zoomt automatisch in Felder mit kleinerer Schrift – und zerschießt dabei oft dein Layout.
Webfonts und Performance
font-display: swap zeigt sofort den Fallback-Font und tauscht dann gegen den Webfont:
@font-face {
font-family: 'MeineSchrift';
src: url('/fonts/meine-schrift.woff2') format('woff2');
font-display: swap;
}
Variable Fonts vereinen alle Schriftstärken in einer Datei – statt 9 separate Dateien für Regular, Medium, Bold etc.:
@font-face {
font-family: 'InterVariable';
src: url('/fonts/Inter-Variable.woff2') format('woff2-variations');
font-weight: 100 900;
font-display: swap;
}
body {
font-family: 'InterVariable', sans-serif;
font-weight: 450; /* Beliebiger Wert möglich! */
}
Die Performance-Ersparnis ist erheblich: Source Sans Pro mit allen Weights wiegt ~1.170KB, die Variable-Version nur ~405KB – eine Reduktion um 65%!
Das LG München urteilte im Januar 2022: Externe Einbindung von Google Fonts ohne Einwilligung ist rechtswidrig. Die Lösung: Webfonts selbst hosten.
Responsive Formulare und Tabellen
Formulare und Tabellen sind auf Mobile besonders knifflig. Beide brauchen oft mehr Platz, als ein Smartphone bietet.
Touch-optimierte Formulare gestalten
Mobile Formular-Eingaben scheitern oft an zu kleinen Touch-Targets. Die Mindestgrößen aus verschiedenen Richtlinien:
| Richtlinie | Mindestgröße |
|---|---|
| Apple iOS | 44×44 pt |
| Google Material | 48×48 dp |
| WCAG 2.2 (AA) | 24×24 px |
| WCAG 2.2 (AAA) | 44×44 px |
input, select, textarea {
min-height: 44px;
padding: 12px 16px;
font-size: 16px; /* Verhindert iOS-Zoom beim Fokus! */
}
button {
min-width: 44px;
min-height: 44px;
padding: 12px 24px;
}
Die richtigen Input-Types verwenden
HTML5 Input-Types triggern gerätespezifische Tastaturen – ein enormer Usability-Gewinn!
<!-- E-Mail: Tastatur mit @-Symbol -->
<input type="email" autocomplete="email">
<!-- Telefon: Numerisches Tastenfeld -->
<input type="tel" autocomplete="tel">
<!-- Zahlen: Ziffernblock (ohne Spinner) -->
<input type="text" inputmode="numeric" pattern="[0-9]*">
<!-- Datum: Nativer Datepicker -->
<input type="date" autocomplete="bday">
Labels gehören über das Feld – nicht daneben! Auf Mobile ist der Platz seitlich zu knapp. Studien zeigen: Single-Column-Formulare werden 15 Sekunden schneller ausgefüllt als Multi-Column.
Autocomplete-Attribute beschleunigen die Eingabe um bis zu 30% und sind für WCAG 2.1 AA erforderlich:
<input type="text" autocomplete="given-name"> <!-- Vorname -->
<input type="text" autocomplete="family-name"> <!-- Nachname -->
<input type="text" autocomplete="street-address">
<input type="text" autocomplete="postal-code">
Sie verschwinden beim Tippen, haben oft schlechten Kontrast und belasten das Kurzzeitgedächtnis. Nutze Placeholder nur für Formatbeispiele wie „beispiel@domain.de“.
Responsive Tabellen – Drei Strategien
Tabellen mit vielen Spalten passen nicht auf schmale Displays. Hier sind drei bewährte Lösungsansätze:
Strategie 1: Horizontal scrollen – die einfachste Lösung für Datenvergleiche:
<div class="table-wrapper">
<table>...</table>
</div>
<p class="scroll-hint">← Für mehr Spalten wischen →</p>
.table-wrapper {
overflow-x: auto;
-webkit-overflow-scrolling: touch;
}
Strategie 2: Spalten ausblenden – wenn nicht alle Daten gleich wichtig sind:
@media (max-width: 599px) {
.hide-mobile { display: none; }
}
Strategie 3: Zeilen zu Karten stapeln – ideal für Kontaktlisten und Warenkörbe:
<tr>
<td data-label="Name">Max Mustermann</td>
<td data-label="E-Mail">max@beispiel.de</td>
</tr>
@media (max-width: 600px) {
thead {
position: absolute;
left: -9999px; /* Visuell verstecken */
}
tbody tr {
display: block;
margin-bottom: 1rem;
border: 1px solid #ddd;
border-radius: 8px;
padding: 1rem;
}
tbody td {
display: flex;
justify-content: space-between;
padding: 8px 0;
}
tbody td::before {
content: attr(data-label);
font-weight: bold;
}
}
| Strategie | Geeignet für | Nicht geeignet für |
|---|---|---|
| Horizontal scrollen | Datenvergleiche, viele Spalten | Einfache Listen |
| Spalten ausblenden | Primäre/sekundäre Daten | Wenn alle Spalten wichtig |
| Zeilen zu Karten | Kontaktlisten, Warenkorb | Komplexe Datenvergleiche |
Touch und Interaktion
Die Bedienung per Finger folgt komplett anderen Regeln als die präzise Maussteuerung. Das musst du beim Design berücksichtigen!
Touch vs. Maus – Die fundamentalen Unterschiede
Der menschliche Finger ist 10-14mm breit und damit deutlich ungenauer als ein pixelgenauer Maus-Cursor. Außerdem verdeckt der Finger beim Tippen das Ziel – du siehst nicht exakt, wo du tippst.
Touch-Geräte haben kein echtes Hover. Es gibt keinen schwebenden Zustand vor dem Tippen. Manche Browser simulieren Hover durch langes Drücken, aber das ist unpraktisch und unintuitiv.
Die Thumb Zone verstehen
75% der Smartphone-Interaktionen erfolgen mit dem Daumen. Steven Hoobers Forschung zur „Thumb Zone“ zeigt, welche Bereiche leicht erreichbar sind:
- Grün (Natural Zone): Leicht erreichbar ohne Strecken – untere Bildschirmmitte
- Gelb (Stretch Zone): Mit etwas Strecken erreichbar – Bildschirmränder
- Rot (Ow Zone): Schwer erreichbar – obere Ecken
Design-Konsequenz: Primäre Aktionen (CTAs, Navigation) in der unteren Bildschirmhälfte platzieren. Deshalb funktionieren Bottom Navigation Bars so gut!
Touch-Targets richtig dimensionieren
Das Icon kann kleiner sein als die Tap-Area! Nutze Padding für größere Klickflächen:
.icon-button {
width: 48px;
height: 48px;
padding: 12px;
display: flex;
align-items: center;
justify-content: center;
}
.icon-button svg {
width: 24px;
height: 24px;
}
Hover-Effekte auf Touch-Geräten lösen
Das Problem: CSS :hover-Styles „kleben“ auf Touch-Geräten. Nach einem Tap bleibt der Hover-Zustand aktiv, bis du woanders tippst. Das verwirrt Nutzer und kann Dropdown-Menüs unbrauchbar machen.
Die Lösung: CSS Media Features für die Erkennung von Input-Geräten:
/* Hover-Effekt NUR auf Geräten mit echtem Hover */
@media (hover: hover) and (pointer: fine) {
.button:hover {
background-color: #005a9c;
}
.card:hover {
transform: scale(1.05);
}
}
/* Größere Touch-Targets für Finger-Bedienung */
@media (pointer: coarse) {
button {
min-height: 48px;
padding: 1em 2em;
}
}
Die Media Feature Werte erklärt
hover: hover – Gerät kann hovern (Maus, Trackpad). hover: none – Gerät kann nicht hovern (Touch). pointer: fine – Präziser Pointer (Maus, Stylus). pointer: coarse – Ungenauer Pointer (Finger).
Für Dropdown-Menüs brauchst du komplett unterschiedliche Patterns:
/* Desktop: Hover öffnet Dropdown */
@media (hover: hover) {
.nav-item:hover .dropdown {
display: block;
}
}
/* Touch: Erster Tap öffnet, zweiter navigiert */
@media (hover: none) {
.dropdown {
display: none;
}
.nav-item.active .dropdown {
display: block;
}
}
Statt Hover-Effekte zu nutzen, kannst du Inhalte auf Tap einblenden, Info-Icons statt Tooltips verwenden (explizite Buttons für Zusatzinfos) oder Hilftexte direkt sichtbar machen statt sie zu verstecken.
Teil 13: Responsive mit WordPress
Du hast deine WordPress-Website fertig aufgebaut, das Design sieht auf deinem Desktop fantastisch aus – und dann der Schock: Auf dem Smartphone ist alles verrutscht, Texte laufen über den Rand, und deine schöne Hero-Section sieht aus wie ein Trümmerhaufen. Kommt dir das bekannt vor?
Keine Sorge, das muss nicht sein! WordPress bietet dir heute verdammt mächtige Werkzeuge, um deine Website auf jedem Gerät perfekt aussehen zu lassen. Ob du mit einem klassischen Theme arbeitest, Elementor nutzt, auf Divi schwörst oder den nativen Gutenberg-Editor bevorzugst – in diesem Teil zeige ich dir Schritt für Schritt, wie du responsive Design in WordPress wirklich meisterst.
Laut aktuellen Statistiken kommen mittlerweile über 60% des gesamten Web-Traffics von mobilen Geräten. Und Google bewertet deine Website primär nach ihrer mobilen Version (Mobile-First-Indexierung). Responsive Design entscheidet direkt über deinen Erfolg.
55. Responsive WordPress Themes
Bevor du überhaupt an Page Builder denkst, solltest du die Basis verstehen: Dein Theme ist das Fundament deiner responsiven Website. Ein schlecht programmiertes Theme kann dir später richtig Kopfschmerzen bereiten – egal wie viel Mühe du dir mit den Breakpoints gibst.
Worauf beim Theme achten für gute Responsivität?
Ein wirklich gutes responsive Theme erkennst du an mehreren technischen Merkmalen. Das Theme sollte auf CSS Flexbox oder Grid setzen statt auf starre Pixel-Layouts. Moderne Themes nutzen saubere Media Queries für mindestens drei Breakpoints (typischerweise um 320px, 768px und 1024px) und unterstützen responsive Bilder mit dem srcset-Attribut.
- Mobile-First-Ansatz: Das Theme wurde primär für kleine Bildschirme entwickelt und dann für größere erweitert – nicht umgekehrt
- Schlanke Codebasis: Themes wie Astra, GeneratePress oder Neve kommen mit unter 50 KB aus und laden blitzschnell
- Flexible Layouts: Container und Spalten passen sich automatisch an, ohne dass du jede Seite manuell anpassen musst
- Touch-freundliche Navigation: Buttons und Menüs sind groß genug für Fingerspitzen (mindestens 44×44 Pixel)
- Plugin-Kompatibilität: Das Theme spielt gut mit Page Buildern zusammen, ohne CSS-Konflikte zu verursachen
Ein Kollege von von-der-see.de bringt es auf den Punkt: „Ein gutes Theme ist responsiv, SEO-freundlich und kompatibel mit den von dir gewünschten Plugins.“ Genau diese drei Punkte solltest du vor dem Kauf prüfen.
Woran erkennt man ein gut responsives Theme?
Klingt vielleicht offensichtlich, aber: Teste das Theme vor der Installation! Die meisten Premium-Themes bieten Demo-Seiten an. Öffne diese Demo in deinem Browser und mach Folgendes:
Browser-DevTools nutzen: Drück F12 (Chrome/Firefox), klick auf das „Toggle Device Toolbar“-Icon und simuliere verschiedene Geräte. Kritische Breakpoints testen: Prüfe besonders bei 320px (kleine Smartphones), 375px (iPhone), 768px (iPad Portrait) und 1024px (iPad Landscape). Auf echten Geräten checken: Browser-Simulation ist gut, echte Geräte sind besser – leih dir notfalls ein Android-Handy.
Was solltest du dabei beobachten? Der Text muss ohne Zoomen lesbar sein. Bilder sollten sich sauber skalieren, ohne über den Rand hinauszuragen. Die Navigation muss auf Touch-Geräten einwandfrei funktionieren. Und ganz wichtig: Es darf kein horizontales Scrollen geben!
Zusätzlich empfehle ich dir den Google Mobile-Friendly Test. Der zeigt dir objektiv, ob eine Seite die grundlegenden Mobile-Anforderungen erfüllt. Premium-Themes sollten hier problemlos durchkommen.
Theme vs. Page Builder – Vor- und Nachteile
Das ist die Gretchenfrage im WordPress-Universum: Reicht ein gutes Theme aus, oder brauchst du einen Page Builder? Die ehrliche Antwort: Es kommt drauf an.
Wenn ein reines Theme ausreicht: Ein Theme ohne Page Builder ist perfekt für dich, wenn du einen klassischen Blog, eine Content-Website oder eine einfache Firmenwebsite baust. Die Vorteile liegen auf der Hand: schnellere Ladezeiten (oft 1,2 Sekunden vs. 1,5+ mit Page Builder), sauberer Code ohne Plugin-Abhängigkeiten, und weniger Wartungsaufwand. Außerdem bist du nicht in ein Ökosystem eingesperrt – du kannst das Theme wechseln, ohne dass dein Content kaputtgeht.
Wann ein Page Builder Sinn macht: Für individuelle Landing Pages, komplexe Marketing-Websites oder wenn du pixelgenaue Kontrolle über jedes Element brauchst, führt kaum ein Weg an Elementor, Divi oder einem anderen Builder vorbei. Du bekommst damit granulare responsive Einstellungen pro Gerät, kannst Spalten umkehren, Elemente auf bestimmten Geräten ausblenden und Typografie für jeden Breakpoint einzeln anpassen.
Nutze ein leichtgewichtiges Theme wie Hello Elementor oder Astra für die Grundstruktur und setze Page Builder nur für die Seiten ein, die wirklich individuelle Layouts brauchen. So hältst du die Performance hoch und hast trotzdem maximale Gestaltungsfreiheit, wo es drauf ankommt.
56. Responsive mit Elementor
Elementor ist nicht ohne Grund der beliebteste Page Builder für WordPress. Mit über 5 Millionen aktiven Installationen und einer intuitiven Oberfläche hat sich das Tool als Standard etabliert. Und gerade beim responsiven Design bietet Elementor verdammt viel Kontrolle.
Ich selbst arbeite bei den meisten Kundenprojekten mit Elementor, weil die responsive Werkzeuge einfach unschlagbar sind. Lass mich dir zeigen, wie du das Maximum rausholst.
Der Responsive Modus erklärt
Elementor arbeitet mit einem kaskadierenden System: Was du auf dem Desktop einstellst, wird automatisch auf Tablet und Mobile übertragen. Tablet-Einstellungen fließen weiter zu Mobile. Das klingt erstmal kompliziert, ist aber genial – du musst nur die Abweichungen einstellen, nicht jedes Mal von vorne anfangen.
Die Geräte-Icons findest du an zwei Stellen: In der oberen Toolbar siehst du standardmäßig drei Icons für Desktop, Tablet und Mobile. In der unteren linken Ecke öffnet das Responsive-Mode-Icon eine Leiste, mit der du die Vorschau dynamisch anpassen kannst.
Der Clou: In der Tablet- und Mobile-Ansicht erscheinen Anfasser an den Rändern, mit denen du die Vorschaubreite frei ziehen kannst. So siehst du nicht nur die Standard-Breakpoints, sondern auch alle Zwischengrößen.
Nicht jede Einstellung in Elementor ist responsive anpassbar! Du erkennst responsive-fähige Optionen am kleinen Geräte-Icon neben dem Eingabefeld. Nur dort kannst du separate Werte für Desktop, Tablet und Mobile eingeben.
Eigene Breakpoints definieren
Elementors Standard-Breakpoints sind: Mobile ≤ 767px, Tablet ≤ 1024px und Desktop > 1024px. Das reicht für viele Projekte. Aber was, wenn du zusätzlich große Monitore oder kleine Laptops abdecken willst? Seit Elementor 3.4 kannst du bis zu 7 Breakpoints nutzen – und das sogar in der kostenlosen Version!
So aktivierst du Custom Breakpoints
Geh im WordPress-Dashboard zu Elementor → Einstellungen → Features und aktiviere „Additional Custom Breakpoints“ (falls noch nicht aktiv). Speichern und den Editor neu laden. Im Editor klickst du auf das Hamburger-Menü (☰) oben links und navigierst zu Website-Einstellungen → Layout → Breakpoints. Klick auf das „+“ bei „Active Breakpoints“ und wähle z.B. „Laptop“ oder „Widescreen“.
Nach dem Speichern musst du unter Elementor → Werkzeuge → Allgemein noch „CSS regenerieren“ klicken – sonst greifen die neuen Breakpoints nicht.
| Breakpoint | Empfohlener Wert | Anwendungsfall |
|---|---|---|
| Mobile Extra | ~880px | Große Smartphones im Querformat |
| Tablet Extra | ~1200px | Tablets im Querformat |
| Laptop | ~1366px | Kleinere Laptops (13-14 Zoll) |
| Widescreen | ≥2400px | 4K-Monitore und Ultrawides |
Elemente pro Gerät ein-/ausblenden
Manchmal brauchst du komplett unterschiedliche Layouts für Desktop und Mobile. Statt alles in einem Element zu quetschen, kannst du mit der Responsive Visibility arbeiten: Wähle das Element aus (Container, Spalte oder Widget), geh zum Erweitert-Tab, scroll runter zum Bereich Responsive und aktiviere die gewünschten Schalter: „Auf Desktop ausblenden“, „Auf Tablet ausblenden“, „Auf Mobilgerät ausblenden“.
Versteckte Elemente werden nur visuell ausgeblendet (display: none), aber trotzdem geladen! Wenn du einen fetten Slider auf Mobile versteckst, wird der trotzdem heruntergeladen und bremst die Seite. Für wirklich große Unterschiede zwischen Desktop und Mobile solltest du daher zwei separate Sections bauen – eine mit „Hide on Mobile“ und eine schlanke Version mit „Hide on Desktop/Tablet“.
Spalten und Container responsive anpassen
Mit den neuen Flexbox Containern hat Elementor das responsive Design auf ein neues Level gehoben. Die wichtigste Einstellung ist die Direction: Container auswählen, Layout-Tab → Items → Direction öffnen und pro Breakpoint zwischen „Row“ (nebeneinander) und „Column“ (untereinander) wechseln.
Für Mobile stellst du die Direction auf „Column“, und schon stapeln sich deine Elemente sauber untereinander. Noch besser: Mit „Column Reversed“ oder „Row Reversed“ kannst du die Reihenfolge umkehren – perfekt, wenn du auf Desktop „Bild links, Text rechts“ hast, aber auf Mobile der Text zuerst erscheinen soll.
Die Spaltenbreiten passt du im Layout-Tab unter Width an. Klick auf das Geräte-Icon und gib für Mobile z.B. 100% ein, während Desktop bei 50% bleibt.
Typografie pro Breakpoint einstellen
Zu große Überschriften sind der Klassiker-Fehler auf Mobile. Eine 60px-Headline, die auf dem Desktop imposant wirkt, sprengt auf dem Smartphone jeden Rahmen.
So passt du Schriftgrößen an: Wähle dein Text-Element (Heading, Text Editor, etc.), geh zum Stil-Tab → Typografie und klick auf das Stift-Icon neben Typografie. Bei „Größe“ siehst du das Geräte-Icon – klick drauf, wähle „Tablet“ oder „Mobile“ und gib einen kleineren Wert ein.
| Element | Desktop | Tablet | Mobile |
|---|---|---|---|
| H1 (Hero) | 60-80px | 40-50px | 28-36px |
| H2 | 40-48px | 32-36px | 24-28px |
| Fließtext | 18px | 16px | 16px |
Dasselbe Prinzip gilt für Zeilenhöhe, Buchstabenabstand und Wortabstand – überall wo du das Geräte-Icon siehst.
Abstände (Padding/Margin) pro Gerät anpassen
Großzügige Abstände sehen auf großen Bildschirmen elegant aus, verschwenden aber auf Mobile wertvollen Platz. Die Lösung: Element auswählen, Erweitert-Tab → Margin oder Padding öffnen, auf das Geräte-Icon klicken und den Breakpoint wählen. Dann reduzierte Werte eingeben.
Als Faustregel: Halbiere deine Desktop-Abstände für Mobile. Wenn du auf Desktop 80px Padding oben und unten hast, sind 40px für Mobile meist ein guter Startpunkt. Nutze relative Einheiten wie % oder vw für horizontale Abstände auf Mobile – so passt sich das Padding automatisch an die Bildschirmbreite an.
Praktisches Beispiel: Hero-Section responsive bauen
Genug Theorie – lass uns eine Hero-Section bauen, die auf allen Geräten rockt!
Schritt-für-Schritt-Anleitung
Schritt 1: Grundstruktur (Desktop)
Füge einen Flexbox Container hinzu, stell die Breite auf „Full Width“ und die Min-Höhe auf 80vh. Direction auf Row setzen (für Bild und Text nebeneinander) und Justify Content auf Space Between. Füge ein Hintergrundbild hinzu mit Position „Center Center“ und Size „Cover“.
Schritt 2: Inhalte einfügen
Heading-Widget mit deiner Headline (z.B. 60px, fett), Text-Editor-Widget für die Beschreibung (18px) und zwei Buttons nebeneinander in einem verschachtelten Container.
Schritt 3: Tablet anpassen
Wechsle in den Tablet-Modus (Icon in der Toolbar), reduziere die Headline auf 42px und verringere das Container-Padding von 100px auf 60px. Prüfe, ob alles noch gut aussieht.
Schritt 4: Mobile optimieren
Wechsle in den Mobile-Modus. Ändere die Container-Direction auf Column (Elemente stapeln sich). Headline runter auf 32px mit zentrierter Ausrichtung. Buttons auf 100% Breite stellen. Padding auf 40px oben/unten und 20px links/rechts. Min-Höhe auf 60vh reduzieren.
Schritt 5: Feinschliff
Dekorative Elemente unter Erweitert → Responsive → Hide on Mobile ausblenden. Alle drei Ansichten durchklicken und prüfen. Im Frontend mit echten Geräten testen.
Häufige Elementor-Responsive-Fehler
Nach hunderten Elementor-Projekten kenne ich die typischen Stolperfallen:
Diese Fehler solltest du vermeiden:
- Kaskadierung nicht verstanden: Du änderst etwas auf Mobile, und plötzlich ist Desktop anders? Das liegt daran, dass du versehentlich auf Desktop warst. Immer zuerst den Breakpoint wählen, dann den Wert ändern!
- Feste Pixelwerte überall: Ein Container mit
width: 400pxwird auf einem 360px-Smartphone zum Albtraum. Nutze %, vw oder max-width statt fester Breiten. - CSS nicht regeneriert: Nach Breakpoint-Änderungen musst du unter Elementor → Werkzeuge das CSS neu generieren.
- Zu viele versteckte Elemente: Drei Desktop-Sections verstecken und drei komplett neue Mobile-Sections bauen? Das verdoppelt die Ladezeit. Optimiere lieber ein responsives Layout als zwei getrennte.
- Nur im Editor testen: Der Elementor-Vorschau-Modus ist praktisch, aber nicht perfekt. Teste immer auch im Frontend und auf echten Geräten.
57. Responsive mit Divi
Divi von Elegant Themes ist der ewige Konkurrent von Elementor – und hat seine eigene Herangehensweise an responsives Design. Statt einer festen Sidebar nutzt Divi schwebende Panels, die du frei auf dem Bildschirm verschieben kannst.
Responsive Editing in Divi erklärt
Der Divi Visual Builder zeigt dir die Geräte-Icons in der unteren linken Ecke des Editors. Klick dort auf Desktop, Tablet oder Phone, um die entsprechende Vorschau zu sehen.
Aber hier kommt der Knackpunkt: Das Umschalten der Vorschau allein ändert noch nichts am Design! Du musst zusätzlich in die Modul-Einstellungen gehen und dort das responsive Icon aktivieren.
Divis System funktioniert so: Hover mit der Maus über eine Einstellung (z.B. Schriftgröße) im Design-Tab. Es erscheint ein kleines Smartphone-Symbol. Klick drauf, und es öffnen sich drei Tabs: Desktop, Tablet, Phone. Erst hier kannst du separate Werte eingeben.
Die drei Geräte-Ansichten
Divi verwendet diese Standard-Breakpoints: Desktop ≥ 981px, Tablet 768px – 980px und Phone ≤ 767px.
Divis Desktop-Breakpoint liegt bei 981px statt 1025px. Das bedeutet, dass ein 1000px-Bildschirm in Divi bereits als Tablet gilt, während Elementor ihn noch als Desktop behandelt. Behalte das im Hinterkopf, wenn du zwischen beiden Buildern wechselst.
In Divi 4 sind diese Breakpoints fest codiert – du kannst sie nur via Custom CSS mit Media Queries anpassen. Die gute Nachricht: Divi 5 (aktuell in Beta) bringt endlich bis zu 7 anpassbare Breakpoints direkt im Visual Builder. Damit zieht Divi mit Elementor gleich.
Module responsive anpassen
Der Workflow für responsive Anpassungen in Divi: Klick auf das Zahnrad-Icon eines Moduls, um die Einstellungen zu öffnen. Navigiere zum Design-Tab, hover über die gewünschte Einstellung (z.B. „Text Size“) und klick auf das erscheinende Phone-Icon. Wähle zwischen Desktop, Tablet und Phone und gib deinen gerätespezifischen Wert ein.
Das Prinzip gilt für nahezu alle Style-Einstellungen: Breiten, Abstände, Schriftgrößen, Hintergrundbilder und mehr.
Sichtbarkeit pro Gerät steuern: Modul-Einstellungen öffnen, zum Advanced-Tab wechseln, Bereich Visibility öffnen und bei „Disable on“ die gewünschten Geräte ankreuzen: Phone, Tablet oder Desktop.
Praktisches Beispiel: Text-Modul responsive anpassen
Hier ein konkreter Workflow für ein Text-Modul: Text-Modul auswählen und Einstellungen öffnen. Design-Tab → Text → Text Size hovern, Phone-Icon klicken und „Phone“ auswählen. Schriftgröße von 18px auf 16px reduzieren. Dasselbe für Line Height: von 1.8em auf 1.6em. Dann Advanced-Tab → Spacing → Padding anpassen – Phone-Icon klicken und Padding von 40px auf 20px verringern.
Divi erlaubt sogar unterschiedliche Bilder pro Gerät. Im Bild-Modul kannst du per Phone-Icon ein optimiertes Hochformat-Bild für Mobile laden, während Desktop das Querformat zeigt. Perfekt für Hero-Sections!
Unterschiede zu Elementor
| Aspekt | Divi | Elementor |
|---|---|---|
| Panel-Position | Schwebendes Popup, frei verschiebbar | Fixe Sidebar links |
| Responsive-Zugang | Hover über Einstellung → Icon erscheint | Permanentes Icon in der Sidebar |
| Custom Breakpoints | Nur in Divi 5 (Beta) | Seit Version 3.4 verfügbar |
| Anzahl Breakpoints | 3 (Divi 4) / 7 (Divi 5) | Bis zu 7 |
| Desktop-Breakpoint | 981px | 1025px |
Divi punktet mit mehr Platz auf dem Canvas, weil das Panel nicht permanent sichtbar ist. Elementor bietet dafür eine strukturiertere Oberfläche, die besonders für Einsteiger intuitiver sein kann.
Mein Fazit: Wenn du bereits Divi-Nutzer bist, bleib dabei – das Tool ist mächtig genug für professionelles responsive Design. Für Neueinsteiger würde ich persönlich Elementor empfehlen, weil die responsive Werkzeuge etwas zugänglicher sind.
58. Responsive mit Gutenberg
Der native WordPress Block-Editor (Gutenberg) hat sich in den letzten Jahren stark weiterentwickelt. Aber ich muss ehrlich sein: Bei den responsive Funktionen hinkt Gutenberg noch deutlich hinter den Page Buildern her.
Welche Blocks sind von Haus aus responsive?
Die gute Nachricht: Die meisten Standard-Blocks sind grundsätzlich responsive. Sie passen sich automatisch an verschiedene Bildschirmgrößen an – allerdings ohne dass du viel Einfluss darauf hast.
Vollständig responsive Blocks: Absatz (Paragraph) – Text umbricht automatisch; Bild (Image) – skaliert proportional dank srcset-Attribut; Überschrift (Heading) – passt sich der Container-Breite an; Button – Touch-freundlich und skalierbar; Galerie – reduziert automatisch die Spaltenanzahl auf Mobile; Gruppe (Group) – Container mit automatischer Anpassung; Cover – Hintergrundbilder skalieren mit (aber: fixierte Hintergründe funktionieren nicht auf iOS!).
Teilweise responsive Blocks: Spalten (Columns) stapelt automatisch bei
Spalten-Block responsive nutzen
Der Spalten-Block ist einer der wichtigsten Layout-Blocks in Gutenberg. Sein responsives Verhalten: Auf Desktop werden Spalten wie eingestellt nebeneinander angezeigt, auf Mobile (
Du kannst das Stapeln über den Toggle „Stack on mobile“ in den Block-Einstellungen (rechte Sidebar) steuern. Aktiviert = Spalten stapeln sich. Deaktiviert = Spalten bleiben nebeneinander (was auf kleinen Screens meist keine gute Idee ist).
Du hast keine Kontrolle über die Stapelreihenfolge! Wenn du auf Desktop „Bild links, Text rechts“ hast, erscheint auf Mobile das Bild oben. Willst du, dass der Text zuerst kommt? Pech gehabt – zumindest ohne Workaround.
CSS-Workaround für umgekehrte Spaltenreihenfolge
Wähle den Spalten-Block (Parent-Element) und geh in der rechten Sidebar zu Erweitert → Zusätzliche CSS-Klasse(n). Gib eine Klasse ein, z.B. spalten-umgekehrt. Füge dann im Customizer → Zusätzliches CSS diesen Code ein:
@media only screen and (max-width: 767px) {
.spalten-umgekehrt {
flex-direction: column-reverse;
}
}
Schon wird die Reihenfolge auf Mobile umgekehrt. Nicht elegant, aber funktioniert.
Einschränkungen und Lösungen
Ich sag’s direkt: Gutenberg hat bei responsive Design noch erhebliche Lücken.
| Was fehlt | Auswirkung |
|---|---|
| Keine gerätespezifischen Breakpoints | Du kannst nicht einstellen, ab wann Spalten umbrechen |
| Keine Block-Visibility pro Gerät | Du kannst Blocks nicht auf Mobile ausblenden |
| Keine responsiven Abstände | Kein unterschiedliches Padding für Desktop/Mobile |
| Keine responsive Typografie | Schriftgrößen gelten für alle Geräte gleich |
| Fester 600px-Breakpoint | Nicht anpassbar ohne Custom CSS |
Der Spalten-Breakpoint von 600px ist fest codiert. Willst du das ändern, brauchst du Custom CSS:
@media (max-width: 782px) {
.wp-block-columns .wp-block-column {
flex-basis: 100% !important;
}
}
Fluid Typography seit WordPress 6.1: Es gibt aber auch Positives: WordPress unterstützt seit Version 6.1 fließende Typografie. Schriftgrößen können automatisch zwischen einem Minimum und Maximum skalieren – ohne harte Breakpoints. Das funktioniert über die theme.json und nutzt CSS clamp(). Allerdings musst du dafür ein Block-Theme verwenden oder selbst in die Theme-Dateien eingreifen.
Plugins für bessere Responsive-Kontrolle
Wenn du Gutenberg responsive nutzen willst, ohne zum Page Builder zu greifen, kommst du an Plugins kaum vorbei. Hier meine Empfehlungen:
Kadence Blocks (400.000+ Installationen) ist mein persönlicher Favorit für Gutenberg-Erweiterungen. Kadence fügt allen wichtigen Blöcken responsive Controls hinzu – du kannst Schriftgrößen, Abstände und Spaltenanzahl pro Breakpoint einstellen. Die Pro-Version bietet sogar Device Visibility (Blocks auf bestimmten Geräten ausblenden).
Stackable bietet 40+ Custom Blocks mit anpassbaren Breakpoints. Besonders stark bei der Sichtbarkeitssteuerung – du kannst Blocks per Toggle für Phone, Tablet oder Desktop ausblenden. In der Pro-Version kannst du sogar eigene Breakpoint-Werte definieren.
GenerateBlocks verfolgt den minimalistischen Ansatz: Nur 6 Blöcke (Container, Grid, Headline, Button, Image, Query Loop), aber alle mit voller responsive Kontrolle. Extrem performance-optimiert und perfekt für Entwickler, die sauberen Code schätzen.
Spectra (ehemals UAG) wurde vom Astra-Team entwickelt und hat über 1 Million Installationen. Es integriert sich nahtlos mit dem Astra Theme und bietet gerätespezifische Einstellungen für praktisch alle Styling-Optionen.
Block Responsive (für Core-Blöcke) ist ideal, wenn du keine neuen Blöcke willst, sondern nur die Standard-Gutenberg-Blöcke responsive erweitern möchtest. Dieses Plugin fügt den Core-Blöcken Farben, Typografie und Dimensionen pro Gerät hinzu.
| Plugin | Responsive Controls | Custom Breakpoints | Device Visibility | Performance |
|---|---|---|---|---|
| Kadence Blocks | ⭐⭐⭐⭐⭐ | ✅ (Pro) | ✅ (Pro) | ⭐⭐⭐⭐⭐ |
| Stackable | ⭐⭐⭐⭐⭐ | ✅ (Pro) | ✅ | ⭐⭐⭐⭐ |
| GenerateBlocks | ⭐⭐⭐⭐⭐ | ✅ | ✅ (Pro) | ⭐⭐⭐⭐⭐ |
| Spectra | ⭐⭐⭐⭐ | ✅ (Pro) | ✅ | ⭐⭐⭐⭐ |
Kadence Blocks bietet die beste Balance aus Funktionsumfang, Performance und Benutzerfreundlichkeit. Du bekommst damit fast Page-Builder-ähnliche responsive Kontrolle, ohne die Performance-Nachteile.
Am Ende gilt: Gutenberg ist perfekt für content-lastige Websites mit Standard-Layouts. Sobald du präzise responsive Kontrolle brauchst, führt der Weg entweder zu einem Block-Plugin wie Kadence – oder doch zurück zu Elementor/Divi.
Teil 14: Testing und Tools
Du hast dein responsives Layout gebaut, die Media Queries sitzen, alles sieht auf deinem Monitor super aus. Aber halt – hast du das Ganze auch wirklich getestet? Nicht nur im Browser-Fenster, das du kurz kleiner gezogen hast, sondern richtig?
Hier kommt der Punkt, an dem viele Projekte ins Straucheln geraten. Denn was im Chrome Device Mode perfekt aussieht, kann auf einem echten iPhone plötzlich ganz anders wirken. Lass uns also mal schauen, welche Tools dir wirklich helfen.
Browser DevTools nutzen
Die gute Nachricht: Du brauchst erstmal kein teures Tool. Die Entwicklertools deines Browsers sind schon verdammt mächtig!
Chrome DevTools Device Mode erreichst du mit Ctrl+Shift+M (Windows) oder Cmd+Shift+M (Mac). Du kannst damit vordefinierte Geräte-Profile von iPhone bis Samsung Galaxy simulieren, Touch-Events testen, das Netzwerk drosseln und CPU-Throttling aktivieren, um schwächere Smartphones zu simulieren. Außerdem lassen sich Media Queries als farbige Balken visualisieren.
Firefox Responsive Design Mode funktioniert genauso mit Ctrl+Shift+M. Der Vorteil hier: Du kannst eigene Geräte mit individuellen User-Agent-Strings anlegen, und Firefox hat mehr Netzwerk-Presets – von GPRS bis WiFi.
Beide Tools können nicht alles simulieren! Die CPU-Architektur bleibt die deines Desktop-Rechners. Ein ARM-Chip auf einem echten Smartphone verhält sich anders. Safari-spezifische Bugs auf iOS? Die siehst du hier nicht.
Testing-Tools
Wenn dir die Browser-DevTools nicht reichen, gibt es spezialisierte Helferlein:
Responsively App ist mein persönlicher Favorit für den Einstieg – und das Beste: komplett kostenlos und Open Source! Du siehst mehrere Geräte gleichzeitig, Klicks und Scrollen werden synchronisiert, und du hast volle DevTools-Unterstützung. Download unter responsively.app.
Sizzy und Polypane sind die Premium-Varianten. Polypane punktet mit über 80 integrierten Accessibility-Tests und kostet ab etwa 9€ pro Monat. Sizzy liegt bei 15€/Monat und hat Features wie Device-Frames mit echter OS-Simulation – perfekt für Marketing-Screenshots.
BrowserStack ist der Rolls-Royce unter den Testing-Plattformen. Zugriff auf über 30.000 echte physische Geräte in der Cloud – kein Emulator, echte Hardware! Preise starten bei 39$/Monat für Desktop-Browser, 49$/Monat inklusive Mobilgeräte. Lohnt sich vor allem für Teams und wenn du kein eigenes Device Lab aufbauen willst.
Am I Responsive? unter ami.responsivedesign.is ist ein schneller, kostenloser Check für Präsentationen. Aber Vorsicht: Das ist kein echtes Testing-Tool, sondern nur eine visuelle Vorschau.
Google Tools
Google hat ein paar kostenlose Werkzeuge, die du kennen solltest:
Der Mobile-Friendly Test wurde übrigens am 4. Dezember 2023 eingestellt. Google meint, Mobile-Freundlichkeit sei mittlerweile Standard. Als Ersatz nutzt du jetzt Lighthouse oder das URL Inspection Tool der Search Console.
PageSpeed Insights unter pagespeed.web.dev ist nach wie vor Gold wert. Du bekommst zwei Arten von Daten: Field Data aus echten Chrome-Nutzern und Lab Data aus Lighthouse-Simulationen. Nur die Field Data beeinflusst übrigens deine Rankings!
Lighthouse in den Chrome DevTools prüft Performance, Accessibility, Best Practices, SEO und PWA-Fähigkeit. Die Scores sind keine direkten Ranking-Faktoren – aber die zugrundeliegenden Core Web Vitals schon.
Auf echten Geräten testen
Klingt aufwändig? Ist es auch. Aber es ist unverzichtbar. Emulatoren können einfach nicht alles: Echte Touch-Empfindlichkeit und Multi-Touch-Gesten, tatsächliche Hardware-Performance, Browser-spezifisches Rendering wie Safari auf iOS oder Samsung Internet, und echte Netzwerkbedingungen.
| Kategorie | Geräte |
|---|---|
| iOS | iPhone SE (kleinstes Display), iPhone 15, iPad |
| Android | Samsung Galaxy A54, Google Pixel 8, ein Budget-Gerät (3+ Jahre alt) |
Das muss nicht alles dir gehören. Leih dir Geräte von Freunden, nutze Cloud-Services wie BrowserStack für die breite Abdeckung, und teste die wirklich kritischen Sachen auf 3-5 echten Geräten. Schau auch in deine Analytics, welche Geräte deine Nutzer tatsächlich verwenden – die Top-80% solltest du abdecken.
Teil 15: Performance
Performance auf Mobile ist kein Nice-to-have – es ist absolut geschäftskritisch. Eine Studie zeigt: 53% der Mobile-Nutzer verlassen Seiten, die länger als 3 Sekunden laden.
Warum Performance auf Mobile wichtiger ist
Deine Mobile-Nutzer haben es schwerer als Desktop-Nutzer. Hier ist die harte Realität:
Langsamere Verbindungen: Selbst 4G LTE erreicht real oft nur 12-30 Mbps – und in vielen Regionen der Welt surfen Nutzer noch mit 3G. Schlechtes WLAN, überlastete Netze, Provider-Drosselung nach dem Datenvolumen… das alles bremst.
Schwächere Hardware: Mobile Prozessoren sind auf Energieeffizienz optimiert, nicht auf rohe Leistung. Sie sind 3-5x langsamer als Desktop-CPUs! Dazu kommt thermische Drosselung – wenn das Handy heiß wird, taktet der Prozessor runter.
Und das Wichtigste: Seit Juli 2024 indexiert Google alle Websites ausschließlich mit dem Smartphone-Bot. Websites ohne mobile Optimierung werden schlicht nicht mehr indexiert. Mobile-First ist nicht mehr optional.
Core Web Vitals: LCP, CLS, INP
Google hat drei Metriken definiert, die deine Nutzererfahrung messen – und die beeinflussen auch dein Ranking:
| Metrik | Was sie misst | Gut | Verbesserungswürdig | Schlecht |
|---|---|---|---|---|
| LCP | Wann das größte Element geladen ist | ≤ 2,5s | 2,5 – 4,0s | > 4,0s |
| INP | Wie schnell die Seite auf Eingaben reagiert | ≤ 200ms | 200 – 500ms | > 500ms |
| CLS | Wie stabil das Layout ist | ≤ 0,1 | 0,1 – 0,25 | > 0,25 |
Wichtig: INP hat im März 2024 offiziell FID (First Input Delay) ersetzt. Der Unterschied? FID maß nur die erste Interaktion, INP misst alle Interaktionen während des gesamten Seitenbesuchs. Deutlich aussagekräftiger!
Eine Seite gilt als „gut“, wenn mindestens 75% aller Seitenaufrufe die Schwellenwerte erreichen. Aktuell schaffen das nur etwa 47% aller Websites.
Dass das Business Impact hat, zeigen echte Zahlen: Vodafone erreichte durch 31% besseres LCP satte 8% mehr Verkäufe. Pinterest steigerte durch 40% schnellere wahrgenommene Ladezeit SEO-Traffic und Anmeldungen um je 15%.
Performance-Optimierung
Bilder optimieren – dein größter Hebel!
Bilder machen oft 50-70% der Seitengröße aus. Hier liegt dein größtes Einsparpotential:
<picture>
<source srcset="hero.avif" type="image/avif">
<source srcset="hero.webp" type="image/webp">
<img src="hero.jpg" alt="Beschreibung"
width="800" height="600"
loading="lazy">
</picture>
AVIF bietet bis zu 50% bessere Kompression als JPEG bei 89% Browser-Support. WebP liegt bei 25-34% Ersparnis mit 97% Support. Nutze beide mit Fallback!
Lazy Loading mit loading="lazy" hat über 95% Browser-Support. Aber Achtung: Dein Hero-Image (das LCP-Element!) darfst du nicht lazy-loaden! Das muss sofort geladen werden.
CSS und JavaScript minimieren
Entferne Whitespace und Kommentare, bundle deine Dateien. Tools wie Terser (JS) und cssnano (CSS) machen das automatisch.
Critical CSS – das CSS für den sichtbaren Bereich („above the fold“) – solltest du direkt im <head> einbetten. Maximal 14 KB. Der Rest lädt dann asynchron nach:
<head>
<style>
/* Critical CSS hier inline */
</style>
<link rel="preload" href="styles.css" as="style"
onload="this.onload=null;this.rel='stylesheet'">
</head>
Caching nutzen – setze Browser-Caching für statische Assets, nutze ein CDN wie Cloudflare. Wiederkehrende Besucher laden dann nicht alles neu.
Webfonts optimieren – nutze font-display: swap für sofortige Textanzeige, WOFF2 für beste Kompression, und preloade kritische Schriften:
<link rel="preload" href="font.woff2" as="font" type="font/woff2" crossorigin>
Mehr zur PageSpeed Optimierung für WordPress
Teil 16: Accessibility (Barrierefreiheit)
Responsive Design und Barrierefreiheit – das gehört zusammen wie Pech und Schwefel! Warum? Beide verfolgen dasselbe Ziel: Inhalte für alle Nutzer zugänglich machen, egal auf welchem Gerät oder mit welchen Einschränkungen.
Responsive und barrierefrei
Hier ist eine interessante Sache: WCAG 2.1 Success Criterion 1.4.10 „Reflow“ erfordert faktisch responsives Design. Inhalte müssen bei 320 CSS Pixel Breite (entspricht 400% Zoom) ohne horizontales Scrollen funktionieren. Klingt bekannt, oder?
Die WCAG-Konformitätsstufen kurz erklärt: Level A ist die Mindestanforderung, Level AA ist gesetzlich gefordert (ADA, EAA, BITV 2.0) und für die meisten Organisationen relevant, Level AAA ist das Maximum, aber nicht für alle Inhalte praktikabel.
Ab 28. Juni 2025 tritt der European Accessibility Act (EAA) in Kraft – spätestens dann wird Barrierefreiheit für viele Websites rechtlich verpflichtend!
Touch-Targets und Abstände
Kennst du das? Du willst auf einen Link tippen und triffst stattdessen den daneben? Das passiert, wenn Touch-Targets zu klein sind.
WCAG 2.2 Kriterium 2.5.8 „Target Size (Minimum)“ fordert für Level AA mindestens 24×24 CSS Pixel. Noch besser sind 44×44 Pixel (Level AAA) – das ist auch das, was Apple und Google empfehlen.
| Standard | Mindestgröße | Empfehlung |
|---|---|---|
| WCAG 2.5.8 (AA) | 24×24 px | Minimum |
| WCAG 2.5.5 (AAA) | 44×44 px | Empfohlen |
| Apple iOS | 44×44 pt | Standard |
| Google Material | 48×48 dp | Standard |
/* Touch-freundliche Buttons */
button, a.btn {
min-width: 44px;
min-height: 44px;
padding: 10px;
}
Zwischen Touch-Elementen solltest du mindestens 8 Pixel Abstand haben – bei destruktiven Aktionen (Löschen etc.) sogar 16-24 Pixel.
Zoom und Textvergrößerung
WCAG 1.4.4 fordert: Text muss auf 200% vergrößert werden können, ohne dass Funktionalität verloren geht. Das bedeutet: Du darfst den Zoom nicht blockieren!
Das hier ist ein absolutes No-Go:
<!-- ❌ NIEMALS so! -->
<meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1, user-scalable=no">
maximum-scale=1 und user-scalable=no sind WCAG-Verstöße! Menschen mit Sehbehinderungen müssen zoomen können. iOS Safari ignoriert diese Einschränkungen seit iOS 10 bewusst, aber Android-Browser halten sich dran.
So ist es richtig:
<!-- ✅ Richtig -->
<meta name="viewport" content="width=device-width, initial-scale=1">
Für barrierefreie Typografie nutze relative Einheiten (rem, em), da Pixel-Werte Browser-Schriftgrößen-Einstellungen ignorieren.
Fokus-Zustände
Alle interaktiven Elemente brauchen einen sichtbaren Fokus-Indikator. Warum? Tastatur-Nutzer müssen sehen können, wo sie sich befinden!
Niemals einfach die Outline entfernen:
/* ❌ Gefährlich! */
button:focus {
outline: none;
}
Die moderne Lösung ist :focus-visible – der Fokus-Ring erscheint nur bei Tastaturnavigation, nicht bei Mausklicks:
/* ✅ Moderne Lösung */
button:focus-visible {
outline: 3px solid #005fcc;
outline-offset: 3px;
}
button:focus:not(:focus-visible) {
outline: none;
}
WCAG 1.4.11 fordert für Fokus-Indikatoren einen Kontrast von mindestens 3:1.
Wenn du order oder flex-direction: row-reverse verwendest, änderst du nur die visuelle Reihenfolge – die Tab-Reihenfolge folgt weiterhin dem DOM! Das kann Tastatur-Nutzer verwirren. Lösung: Passe lieber die DOM-Reihenfolge an als CSS order zu nutzen.
Teil 17: Dark Mode
Dark Mode ist längst kein Trend mehr – er ist eine Erwartung. Und das aus guten Gründen: Er reduziert Augenbelastung bei schwachem Licht, spart Akku auf OLED-Displays, und viele Nutzer bevorzugen ihn schlicht.
Was ist Dark Mode?
Mit der CSS Media Query prefers-color-scheme kannst du auf die Systemeinstellung des Nutzers reagieren. Hat jemand auf seinem Gerät Dark Mode aktiviert? Dann zeigst du automatisch die dunkle Variante.
@media (prefers-color-scheme: dark) {
/* Dunkle Styles hier */
}
Browser-Support? Über 95% – das kannst du bedenkenlos nutzen!
Dark Mode umsetzen
Der eleganteste Weg: CSS-Variablen kombiniert mit der Media Query.
:root {
/* Light Mode (Standard) */
--bg-color: #ffffff;
--text-color: #1a1a1a;
--primary-color: #0066cc;
}
@media (prefers-color-scheme: dark) {
:root {
/* Dark Mode Override */
--bg-color: #121212;
--text-color: #e0e0e0;
--primary-color: #4da6ff; /* Hellere Nuance für besseren Kontrast */
}
}
body {
background-color: var(--bg-color);
color: var(--text-color);
transition: background-color 0.3s, color 0.3s;
}
a {
color: var(--primary-color);
}
- Kein reines Schwarz: #000000 ist zu hart – Dunkelgrau (#121212) ist besser
- Off-White für Text: Reines Weiß (#FFFFFF) kann Halo-Effekte verursachen – #E0E0E0 ist angenehmer
- Gesättigte Farben entsättigen: Sie wirken auf dunklem Hintergrund zu intensiv
- WCAG-Kontrast einhalten: 4.5:1 für normalen Text, 3:1 für großen Text
Neu seit Mai 2024: Die light-dark() Funktion macht es noch einfacher:
:root {
color-scheme: light dark;
--bg-color: light-dark(#ffffff, #121212);
--text-color: light-dark(#1a1a1a, #e0e0e0);
}
Browser-Support liegt bei über 86% – Tendenz steigend.
Dark Mode Toggle bauen
Manche Nutzer wollen den Modus manuell wechseln. So baust du einen Toggle mit localStorage-Speicherung:
const STORAGE_KEY = 'preferredColorScheme';
function setColorScheme(mode) {
document.documentElement.dataset.theme = mode;
localStorage.setItem(STORAGE_KEY, mode);
}
// Beim Laden gespeicherte Präferenz wiederherstellen
const saved = localStorage.getItem(STORAGE_KEY);
if (saved) {
setColorScheme(saved);
}
// Toggle-Button
document.querySelector('.theme-toggle').addEventListener('click', () => {
const current = document.documentElement.dataset.theme;
const newMode = current === 'dark' ? 'light' : 'dark';
setColorScheme(newMode);
});
Dein CSS reagiert dann auf das data-theme-Attribut:
[data-theme="dark"] {
--bg-color: #121212;
--text-color: #e0e0e0;
}
[data-theme="light"] {
--bg-color: #ffffff;
--text-color: #1a1a1a;
}
Teil 18: Responsive und SEO
Hier wird’s richtig wichtig für dein Business: Responsive Design ist nicht nur gut für User Experience – es ist ein direkter Ranking-Faktor.
Mobile-First Indexing
Seit dem 5. Juli 2024 crawlt Google alle Websites ausschließlich mit dem Googlebot Smartphone. Die mobile Version deiner Website bestimmt, wie du indexiert und gerankt wirst – auch in den Desktop-Suchergebnissen!
Das bedeutet konkret: Gibt es etwas nur auf deiner Desktop-Version, sieht Google es nicht. Ist deine Mobile-Version langsam oder kaputt? Dann leidet dein gesamtes Ranking.
Content Parity
„Content Parity“ bedeutet: Mobile und Desktop brauchen denselben Inhalt. Google erwartet gleichen primären Inhalt, gleiche Überschriftenstruktur (H1, H2, H3…), gleiche Meta-Daten (Title, Description) und gleiche strukturierte Daten (Schema.org).
Was ist mit versteckten Inhalten?
Eine häufige Frage: Werden Inhalte mit display: none indexiert? Kurze Antwort: Ja, aber…
Google crawlt sie, stuft sie aber möglicherweise als weniger wichtig ein. Tabs, Accordions und „Mehr lesen“-Buttons sind grundsätzlich okay – der Inhalt muss aber im HTML vorgeladen sein!
Was nicht funktioniert: „Load More“-Buttons ohne echte URLs, die Inhalte erst per JavaScript nachladen. Das wird nicht indexiert.
Core Web Vitals als Ranking-Faktor
Core Web Vitals sind seit Juni 2021 offizieller Ranking-Faktor. Aber wie wichtig sind sie wirklich?
Google-Mitarbeiter John Mueller bestätigte: „Relevanz ist nach wie vor viel wichtiger.“ Die Vitals fungieren als Tie-Breaker bei ähnlich relevantem Content.
Was das heißt: Der Sprung von „poor“ zu „good“ hat spürbaren Einfluss. Weitere Optimierung innerhalb von „good“ bringt kaum zusätzliche Ranking-Vorteile.
Wichtig zu wissen: Google bewertet Core Web Vitals separat für Mobile und Desktop. Nur Field Data aus echten Nutzern beeinflusst Rankings – Lighthouse-Scores nicht. Änderungen brauchen etwa 28 Tage, bis sie sich in Rankings widerspiegeln.
Mehr dazu: Google Rankings verbessern
Teil 19: Häufige Fehler vermeiden
Aus hunderten Code-Reviews und Projekten haben sich bestimmte Fehler herauskristallisiert, die immer wieder auftauchen. Hier sind die 12 größten Stolperfallen – und wie du sie vermeidest.
1. Desktop First statt Mobile First
Das Problem: Du designst für den großen Monitor und versuchst dann, alles „runterzubrechen“. Das Ergebnis: Überladene mobile Ansichten und kompliziertes CSS.
Die Lösung: Starte mit Mobile, erweitere mit min-width:
/* Mobile zuerst (Standard) */
.container {
padding: 1rem;
}
/* Dann für größere Screens erweitern */
@media (min-width: 768px) {
.container {
padding: 2rem;
}
}
2. Geräte-basierte statt Content-basierte Breakpoints
Das Problem: Du setzt Breakpoints bei 375px (iPhone), 768px (iPad), 1024px (iPad Pro)… und wenn Apple nächstes Jahr ein neues Format rausbringt?
Die Lösung: Setze Breakpoints dort, wo dein Content bricht – nicht bei willkürlichen Gerätegrößen. Zieh dein Browserfenster langsam zusammen und schau, wo das Layout unschön wird. Genau da kommt der Breakpoint hin.
Noch besser: Nutze CSS Grid mit auto-fit, dann brauchst du oft gar keine Breakpoints:
.grid {
display: grid;
grid-template-columns: repeat(auto-fit, minmax(280px, 1fr));
gap: 1rem;
}
3. Fixe Pixel statt relativer Einheiten
Das Problem: font-size: 16px skaliert nicht mit Nutzereinstellungen. Menschen, die im Browser eine größere Schrift eingestellt haben, sehen keinen Unterschied.
Die Lösung: Nutze rem für Typografie, % für Container-Breiten, ch für optimale Lesebreiten (45-75 Zeichen):
body {
font-size: 1rem; /* Respektiert Browser-Einstellung */
}
.container {
width: min(90%, 1200px);
}
p {
max-width: 65ch; /* Optimale Lesebreite */
}
4. Touch-Targets zu klein
Das Problem: 12px große Icon-Buttons, die auf dem Desktop mit der Maus funktionieren, sind auf Touch-Geräten der Horror.
Die Lösung: Mindestens 44×44 Pixel für alle interaktiven Elemente:
button, a.btn, .icon-button {
min-width: 44px;
min-height: 44px;
}
5. Horizontales Scrollen
Das Problem: Irgendwo auf der Seite ist ein Element breiter als der Viewport – und schon scrollt die ganze Seite horizontal. Super nervig!
Ursachen und Lösungen: Bilder ohne max-width: 100%, fixe Breiten größer als der Viewport, Tabellen, die nicht in einen Container passen.
/* Global setzen */
* {
box-sizing: border-box;
}
img {
max-width: 100%;
height: auto;
}
.table-container {
overflow-x: auto;
}
6. Hover-Effekte ohne Alternative
Das Problem: Dein Dropdown-Menü öffnet sich nur bei Hover. Auf Touch-Geräten? Geht nicht.
Die Lösung: Nutze die hover Media Query:
/* Nur für Geräte mit Hover-Fähigkeit */
@media (hover: hover) {
.dropdown:hover .dropdown-menu {
display: block;
}
}
Und biete immer eine Touch-Alternative (Tap zum Öffnen).
7. Viewport-Tag vergessen
Das Problem: Ohne Viewport-Tag rendert der Browser deine Seite als ob sie 980px breit wäre und skaliert runter. Winzige Schrift, nichts funktioniert.
Die Lösung: Immer einbinden:
<meta name="viewport" content="width=device-width, initial-scale=1">
8. Bilder nicht optimiert
Das Problem: Ein 3MB Hero-Image auf Mobile? Das dauert auf 3G eine gefühlte Ewigkeit.
Die Lösung: Responsive Images mit srcset und moderne Formate:
<picture>
<source media="(max-width: 640px)"
srcset="hero-mobile-400.webp 400w,
hero-mobile-600.webp 600w"
type="image/webp">
<source media="(min-width: 641px)"
srcset="hero-desktop-800.webp 800w,
hero-desktop-1200.webp 1200w"
type="image/webp">
<img src="hero-desktop-800.jpg"
alt="Hero"
loading="lazy"
width="1200"
height="600">
</picture>
9. Inhalte nur ausblenden statt anpassen
Das Problem: Du packst Content in display: none für Mobile. Der Content wird trotzdem geladen, verbraucht Bandbreite – und der Nutzer bekommt ihn nie zu sehen.
Die Lösung: Strukturiere Content um, statt ihn zu verstecken. Eine Desktop-Sidebar kann auf Mobile zur horizontalen Leiste werden. Oder nutze Conditional Loading mit JavaScript.
10. Navigation zu komplex
Das Problem: Mega-Menüs mit 4 Ebenen mögen auf Desktop funktionieren – auf Mobile sind sie eine Katastrophe.
Die Lösung: Flache Hierarchien, Off-Canvas-Menüs, Accordion-Submenüs. Weniger ist mehr!
11. Zu viele Breakpoints
Das Problem: 8 verschiedene Breakpoints für jeden erdenklichen Gerätetyp? Das wird unwartbar.
Die Lösung: Maximal 3-5 Breakpoints. Besser noch: Intrinsisches Design mit CSS Grid und auto-fit, das sich automatisch anpasst.
12. Nicht auf echten Geräten testen
Das Problem: Im Chrome Device Mode sieht alles super aus. Auf dem echten iPhone? Bugs überall.
Die Lösung: Teste mindestens auf einem iPhone, einem Android-Gerät und einem Tablet. Es gibt keine Abkürzung.
Teil 20: Moderne CSS-Techniken
CSS hat sich in den letzten Jahren rasant entwickelt. Features, die früher JavaScript oder komplizierte Workarounds brauchten, sind jetzt nativ verfügbar. Hier sind die Game-Changer.
Fluid Sizing mit clamp(), min(), max()
clamp() ist wie Magie für responsive Werte. Die Syntax: clamp(MINIMUM, BEVORZUGT, MAXIMUM).
Fluid Typography – Schrift, die mit dem Viewport wächst, aber nie zu klein oder zu groß wird:
h1 {
font-size: clamp(1.8rem, 2.5vw + 1rem, 3rem);
}
p {
font-size: clamp(1rem, 0.9rem + 0.5vw, 1.25rem);
}
Responsive Spacing:
.section {
padding: clamp(1rem, 5vw, 4rem);
margin-bottom: clamp(2rem, 8vh, 6rem);
}
Container-Breiten mit min():
.container {
width: min(90%, 1200px);
margin-inline: auto;
}
Browser-Support? Ca. 96% – das kannst du ohne Bedenken einsetzen!
aspect-ratio für Seitenverhältnisse
Früher musstest du für ein 16:9-Video diesen Padding-Hack nutzen:
/* Der alte Weg – umständlich! */
.video-container {
position: relative;
padding-top: 56.25%; /* 9/16 */
height: 0;
}
.video-container iframe {
position: absolute;
top: 0;
left: 0;
width: 100%;
height: 100%;
}
Jetzt geht’s so:
/* Der neue Weg – easy! */
.video-container {
aspect-ratio: 16 / 9;
width: 100%;
}
.square {
aspect-ratio: 1 / 1;
}
.portrait {
aspect-ratio: 3 / 4;
}
Zusätzlicher Bonus: aspect-ratio verhindert Layout Shifts, wenn Bilder laden – perfekt für CLS! Browser-Support liegt bei etwa 95%.
CSS Logical Properties
Logical Properties sind ein Paradigmenwechsel: Statt physischer Richtungen (left, right, top, bottom) nutzt du logische, die sich automatisch an die Schreibrichtung anpassen.
Warum ist das wichtig? Für internationale Websites! Arabisch und Hebräisch werden von rechts nach links geschrieben (RTL). Mit Logical Properties musst du nicht zwei verschiedene Stylesheets pflegen.
| Physisch | Logisch |
|---|---|
| margin-left | margin-inline-start |
| margin-right | margin-inline-end |
| padding-top | padding-block-start |
| padding-bottom | padding-block-end |
| width | inline-size |
| text-align: left | text-align: start |
.card {
padding-inline: 1.25rem; /* links + rechts */
padding-block: 1.5rem; /* oben + unten */
border-inline-start: 4px solid blue;
margin-block-end: 1rem;
}
Das funktioniert automatisch für LTR (Deutsch, Englisch) und RTL (Arabisch, Hebräisch). Browser-Support: ca. 92%.
Teil 21: Spezialfälle
Nicht jede Website ist gleich. Landing Pages, Online-Shops und neue Geräteformen wie Foldables haben ihre eigenen Herausforderungen.
Responsive Landing Pages
Hero-Section responsive gestalten
Der Hero ist oft das LCP-Element – und damit kritisch für Performance und ersten Eindruck.
.hero {
min-height: 60vh; /* Mobile: nicht zu hoch */
display: flex;
flex-direction: column;
justify-content: center;
padding: 2rem 1rem;
}
@media (min-width: 768px) {
.hero {
min-height: 70vh;
padding: 4rem 2rem;
}
}
Nutze srcset für Hero-Images, damit Mobile-Nutzer keine Desktop-Assets laden müssen!
Call-to-Actions prominent halten
CTAs gehören in die „Thumb Zone“ – den Bereich, den du bequem mit dem Daumen erreichst:
.cta-button {
/* Groß und tappbar */
min-height: 48px;
padding: 1rem 2rem;
width: 100%; /* Full-width auf Mobile */
/* In der Thumb Zone fixieren */
position: sticky;
bottom: 1rem;
}
@media (min-width: 768px) {
.cta-button {
position: static;
width: auto;
}
}
Formular-Optimierung für Mobile
Einspaltiges Layout und die richtigen Input-Types für dynamische Keyboards sind entscheidend:
<input type="email" inputmode="email" autocomplete="email">
<input type="tel" inputmode="tel" autocomplete="tel">
<input type="number" inputmode="numeric">
Mindestens 16px Font-Size für Inputs (verhindert Auto-Zoom auf iOS!) und wenige Felder – jedes zusätzliche Feld senkt die Conversion.
Responsive Online-Shops
Mobile Commerce macht einen riesigen Anteil der Verkäufe aus – aber über 70% der Warenkörbe werden abgebrochen. Responsive Design kann helfen.
Produktbilder und Zoom auf Mobile
Pinch-to-Zoom muss funktionieren (40% der E-Commerce-Sites unterstützen das nicht!), Swipe-Navigation für Bildergalerien und High-Resolution-Bilder auch für Mobile bereitstellen.
- Maximal 3-4 Schritte: Jeder zusätzliche Schritt kostet Conversions
- Guest Checkout: Als Standard anbieten
- Express-Checkout: Apple Pay, Google Pay prominent platzieren
- Transparente Kosten: Früh zeigen – versteckte Versandkosten sind Conversion-Killer
Filter und Navigation in Shops
Off-Canvas-Filter, die von der Seite einschieben, funktionieren auf Mobile besser als Dropdown-Selects. Das „Priority+“ Pattern ist ideal für lange horizontale Navigationen.
Mehr dazu: WooCommerce Optimierung
Foldable Devices
Samsung Galaxy Z Fold, Surface Duo – faltbare Geräte sind keine Nische mehr. Sie erfordern neue Ansätze.
Die Viewport Segments API (ab Chrome 138+) ermöglicht die Anpassung an Dual-Screen-Layouts:
@media (horizontal-viewport-segments: 2) {
/* Gerät ist aufgeklappt wie ein Buch */
.container {
display: grid;
grid-template-columns:
env(viewport-segment-width 0 0)
env(viewport-segment-width 1 0);
gap: 24px; /* Platz für das Scharnier */
}
}
Der Markt wächst: Prognosen sagen über 100 Millionen Foldables bis 2028. Wenn deine Zielgruppe Early Adopter und Tech-affine Nutzer umfasst, lohnt sich die Optimierung.
Teil 22: Praxis – Responsive Design Patterns
Manche Probleme wurden schon tausendmal gelöst. Warum das Rad neu erfinden? Hier sind bewährte Design Patterns.
Layout-Patterns
Luke Wroblewski hat die klassischen Responsive Layout-Patterns definiert:
Mostly Fluid – das populärste Pattern. Ein Multi-Column-Layout, das bei kleinen Screens zu einer Spalte wird:
.container {
width: min(90%, 1200px);
margin: 0 auto;
}
.grid {
display: grid;
grid-template-columns: repeat(auto-fit, minmax(300px, 1fr));
gap: 1.5rem;
}
Ideal für Content-lastige Websites und Blogs.
Column Drop – Spalten „fallen“ bei schmalerem Viewport untereinander. Anders als Mostly Fluid behalten Elemente ihre Größe:
.columns {
display: flex;
flex-wrap: wrap;
}
.column {
flex: 1 1 300px;
}
Ideal für Dashboards und Feature-Übersichten.
Layout Shifter – komplett unterschiedliche Layouts pro Breakpoint. Maximale Kreativität, maximaler Aufwand:
.layout {
display: grid;
grid-template-areas:
"header"
"main"
"sidebar"
"footer";
}
@media (min-width: 768px) {
.layout {
grid-template-areas:
"header header"
"main sidebar"
"footer footer";
grid-template-columns: 2fr 1fr;
}
}
Component-Patterns
Card UI – flexible, umordbare Karten:
.card-grid {
display: grid;
grid-template-columns: repeat(auto-fit, minmax(280px, 1fr));
gap: clamp(1rem, 3vw, 2rem);
}
.card {
display: flex;
flex-direction: column;
background: white;
border-radius: 8px;
overflow: hidden;
}
Accordion – Inhalte platzsparend verstecken:
<details class="accordion-item">
<summary>Frage 1</summary>
<div class="accordion-content">
<p>Antwort auf Frage 1</p>
</div>
</details>
Das native <details>-Element funktioniert ohne JavaScript und ist barrierefrei!
.accordion-item summary {
padding: 1.25rem;
font-weight: 600;
cursor: pointer;
min-height: 48px; /* Touch-freundlich */
}
.accordion-content {
padding: 0 1.25rem 1.25rem;
}
Tabs responsive umsetzen – horizontale Tabs auf Desktop, Accordion auf Mobile:
/* Mobile: Accordion-Style */
.tabs-nav {
display: flex;
flex-direction: column;
}
/* Desktop: Horizontale Tabs */
@media (min-width: 768px) {
.tabs-nav {
flex-direction: row;
border-bottom: 2px solid #e0e0e0;
}
}
Teil 23: Checkliste und Ressourcen
Vor dem Launch solltest du diese Punkte abhaken. Druck dir die Liste aus oder speicher sie – sie erspart dir peinliche Bugs in Produktion!
Responsive Webdesign Checkliste
- Mobile First: Als Strategie festgelegt?
- Content-Inventur: Was ist wirklich wichtig?
- Wireframes: Für 3 Breakpoints (Mobile, Tablet, Desktop)?
- Flexibles Grid: Flexbox/Grid vorhanden?
- Content-basierte Breakpoints: Statt Geräte-basiert?
- Viewport Meta-Tag: Korrekt gesetzt?
- Kein horizontales Scrollen: Bei 320px geprüft?
- Mobile Navigation: Funktional?
- Touch-Targets: Min. 44×44px?
- Keyboard-Navigation: Möglich?
- srcset/sizes: Für responsive Bilder?
- Lazy Loading: Für Below-the-fold-Bilder aktiviert?
- Moderne Formate: WebP/AVIF mit Fallback?
- Width/Height Attribute: Gesetzt (verhindert CLS)?
- Lesbar: Auf allen Geräten (min. 16px Body-Text)?
- Zeilenlänge: Angemessen (45-75 Zeichen)?
- Relative Einheiten: rem statt Pixel?
- Input-Types: Richtig für mobile Keyboards?
- Touch-freundliche Größen: Vorhanden?
- Font-Size: Min. 16px (verhindert iOS Auto-Zoom)?
- Core Web Vitals: Geprüft (LCP
- Bilder komprimiert: Ja?
- CSS/JS minimiert: Ja?
- Critical CSS: Inline?
- 200% Zoom: Funktioniert ohne Layout-Bruch?
- Fokus-Zustände: Sichtbar?
- Kontrast: WCAG AA konform (4.5:1)?
- Kein maximum-scale=1: Im Viewport-Tag?
- Echte Geräte: Getestet (min. 1 iOS, 1 Android, 1 Tablet)?
- Verschiedene Browser: Chrome, Safari, Firefox, Edge?
- Portrait und Landscape: Beide geprüft?
- 3G-Simulation: Durchgeführt?
Nützliche Ressourcen
Testing-Tools: Responsively App (kostenlos, Open Source), BrowserStack (Cloud-Testing auf echten Geräten), Chrome DevTools (F12).
CSS-Referenzen: MDN Web Docs (die Bibel für Webentwickler), CSS-Tricks (praktische Tutorials), web.dev (Google’s Best Practices).
Frameworks: Bootstrap (Klassiker), Tailwind CSS (Utility-First), Foundation (Enterprise-ready).
Fluid Typography: Utopia (Fluid Type Scale Generator).
Bücher: „Responsive Web Design“ – Ethan Marcotte (das Original!), „Mobile First“ – Luke Wroblewski.
Weiterführende Artikel: Elementor Tutorial, WordPress Themes, PageSpeed Optimierung, Landing Page Tipps, Google Rankings verbessern.
Teil 24: FAQ
Was ist Responsive Webdesign?
Responsive Webdesign ist ein Ansatz, bei dem sich Websites automatisch an verschiedene Bildschirmgrößen und Geräte anpassen. Statt separate Versionen für Mobile und Desktop zu bauen, nutzt du flexible Layouts, relative Einheiten und CSS Media Queries, um eine Website für alle Geräte zu optimieren.
Warum ist Responsive Webdesign wichtig?
Drei Gründe: Erstens, über 60% des Web-Traffics kommt von Mobilgeräten. Zweitens, Google nutzt Mobile-First Indexing – deine mobile Version bestimmt dein Ranking. Drittens, Nutzer erwarten es. Eine nicht-responsive Website wirkt heute unprofessionell.
Was sind die grundlegenden Bausteine?
Die drei Säulen sind: Flexible Grids (mit relativen Einheiten wie %, fr, rem), Media Queries (um Layouts an Viewport-Größen anzupassen) und Flexible Medien (Bilder und Videos, die sich anpassen).
Was ist der Unterschied zwischen Responsive und Adaptive Design?
Responsive Design nutzt fließende Layouts, die sich kontinuierlich anpassen. Adaptive Design arbeitet mit festen Layouts für bestimmte Breakpoints. In der Praxis werden beide Ansätze oft kombiniert.
Was bedeutet Mobile First?
Mobile First bedeutet, dass du zuerst für den kleinsten Screen designst und dann mit min-width Media Queries für größere Screens erweiterst. Das zwingt dich, auf das Wesentliche zu fokussieren, und ist performanter.
Kann man eine bestehende Website nachträglich responsive machen?
Ja, aber es ist aufwändig. Du musst fixe Breiten durch flexible ersetzen, Media Queries hinzufügen, Navigation anpassen, und Bilder responsive machen. Je nach Komplexität der bestehenden Website kann ein Neuaufbau effizienter sein.
Wie wichtig ist die Navigation?
Extrem wichtig! Eine schlechte mobile Navigation ist einer der häufigsten Abbruchgründe. Nutze Hamburger-Menüs, Off-Canvas-Navigation oder Bottom-Navigation – und teste mit echten Nutzern.
Wie wichtig ist Typografie?
Sehr wichtig für Lesbarkeit und User Experience. Nutze mindestens 16px für Fließtext, relative Einheiten (rem), und achte auf angemessene Zeilenlänge (45-75 Zeichen). Fluid Typography mit clamp() skaliert elegant zwischen Screen-Größen.
Welche Tools helfen beim Testen?
Browser DevTools für schnelle Tests, Responsively App für Multi-Device-Vorschau, BrowserStack für echte Geräte in der Cloud. Aber: Mindestens 3-5 echte Geräte solltest du immer testen.
Wie viele Breakpoints brauche ich?
Weniger ist mehr. 3-5 Breakpoints reichen meist aus. Wichtiger: Setze Breakpoints dort, wo dein Content bricht, nicht bei willkürlichen Gerätegrößen. Noch besser: Nutze intrinsisches Design mit CSS Grid und auto-fit, das sich automatisch anpasst.
Was sind Container Queries?
Container Queries sind ein Game-Changer! Statt auf den Viewport zu reagieren, reagieren Komponenten auf die Größe ihres Containers. Das macht Komponenten portabel – sie funktionieren überall. Browser-Support liegt bei ca. 93%.
Ist Responsive Webdesign die Zukunft?
Responsive Design ist der aktuelle Standard. Die Zukunft geht in Richtung „Intrinsic Web Design“ – Layouts, die sich intelligent an Content und Container anpassen, statt starr auf Breakpoints zu reagieren. Container Queries, CSS Subgrid und Features wie :has() machen das möglich.





