Responsives Webdesign

Erstelle Webseiten, die auf Smartphones, Tablets und Desktopcomputern gut funktionieren. Lege den Viewport so fest, dass mobile Browser die tatsächliche Bildschirmbreite verwenden, bestimme Text- und Boxgrößen mit relativen und Viewport-Einheiten und ändere Layouts mit Medienabfragen nach dem Mobile-First-Prinzip. Nutze Container-Abfragen, damit sich Komponenten an den verfügbaren Platz anpassen, stelle mit srcset, sizes und <picture> passende Bilder für jeden Bildschirm bereit und teste Seiten bei unterschiedlichen Breiten und Zoomstufen sowie mit Touchbedienung und verschiedenen Lesereinstellungen.

AnfängerEinheit 6 von 8 in Kurs: HTML und CSS – barrierefreie, responsive Webseiten erstellen

Was du lernst

  1. Erkläre responsives Webdesign, sorge dafür, dass mobile Browser eine Seite in der tatsächlichen Gerätebreite darstellen, und lege Text- und Boxgrößen mit skalierbaren Einheiten fest.
    • Erkläre responsives Webdesign und lege den Viewport fest
      Beschreibe, was responsives Webdesign bewirkt, wie CSS-Pixel und Gerätepixel zusammenhängen und warum jede responsive Seite das Viewport-Meta-Tag braucht.
    • Lege Text- und Boxgrößen mit relativen Einheiten fest
      Nutze Prozentangaben, em, rem und ch, damit Boxen ihrem Container und Text der Schriftgrößeneinstellung der Lesenden folgen.
    • Nutze Viewport-Einheiten und fließende Größen
      Lege Elementgrößen mit vw, vh und den neueren Einheiten für den kleinen, großen und dynamischen Viewport fest und setze mit min(), max() und clamp() Grenzen.
  2. Schreibe Medienabfragen, erstelle Stile nach dem Mobile-First-Prinzip mit inhaltsbasierten Breakpoints und gestalte Flexbox- und Grid-Layouts so, dass sie sich an den Bildschirm anpassen.
    • Schreibe Medienabfragen
      Nutze Medientypen, Breitenbedingungen, logische Operatoren und andere Medienmerkmale und platziere Medienabfragen passend in der Kaskade.
    • Entwickle nach dem Mobile-First-Prinzip mit inhaltsbasierten Breakpoints
      Schreibe Grundstile für kleine Bildschirme, ergänze bei zunehmendem Platz min-width-Abfragen und setze Breakpoints dort, wo der Inhalt sie braucht.
    • Gestalte Flexbox- und Grid-Layouts responsiv
      Ändere Layouts an Breakpoints und nutze intrinsische Grid- und Flexbox-Muster, die sich ohne Medienabfrage anpassen.
  3. Deklariere Abfragecontainer, gestalte Komponenten mit Container-Abfragen und Container-Einheiten und wähle zwischen Medienabfragen, Container-Abfragen und intrinsischen Layouts.
    • Richte Container ein und schreibe Container-Abfragen
      Deklariere mit container-type einen Abfragecontainer, schreibe @container-Regeln, benenne Container und vermeide häufige Einrichtungsfehler.
    • Lege Größen mit Container-Einheiten fest und wähle das passende Werkzeug
      Nutze Container-Abfrageeinheiten für Größen, die einem Container folgen, und entscheide, wann eine Medienabfrage, eine Container-Abfrage oder ein intrinsisches Layout passend ist.
  4. Halte Bilder und eingebettete Medien innerhalb ihrer Container, lass den Browser mit srcset und sizes eine passende Datei wählen und ändere den Bildausschnitt oder das Format mit dem picture-Element.
    • Gestalte Bilder und eingebettete Medien flexibel
      Verhindere, dass Bilder und Videos über ihren Container hinausragen, behalte ihre Proportionen bei, reserviere vor dem Laden Platz und steuere den Bildausschnitt mit object-fit.
    • Lass den Browser mit srcset und sizes eine Bildgröße auswählen
      Biete dasselbe Bild in mehreren Dateien an, beschreibe seine Anzeigebreite und bestimme, welche Datei der Browser lädt.
    • Ändere Bildausschnitt oder Bildformat mit dem picture-Element
      Nutze picture und source, um bei unterschiedlichen Breiten einen anderen Bildausschnitt zu zeigen oder moderne Bildformate mit einem Ersatzformat anzubieten.
  5. Prüfe Seiten bei unterschiedlichen Breiten und Zoomstufen sowie auf echten Geräten, finde und behebe Überläufe und passe die Seiten an Touchbedienung und die Einstellungen der Lesenden an.
    • Teste bei unterschiedlichen Breiten und behebe Überläufe
      Nutze die Werkzeuge des Browsers für responsives Design und echte Geräte, prüfe den Umbruch bei 320 CSS-Pixeln und finde die Ursachen für horizontales Scrollen.
    • Berücksichtige Touchbedienung, Zoom und Benutzereinstellungen bei der Gestaltung
      Gestalte Steuerelemente groß genug für die Bedienung mit Fingern, vermeide Interaktionen, die nur per Hover funktionieren, unterstütze Zoom und Ausrichtung und reagiere auf reduzierte Bewegung, Farbschema und Druck.

Responsives Webdesign einfach erklärt

5 Kapitel

1

Bereite eine Seite auf unterschiedliche Bildschirmgrößen vor

Gutes responsives Verhalten beginnt bei dem Platz, von dem der Browser ausgeht, und der Bezugsgröße jeder Größenangabe. Richte den mobilen Viewport ein, unterscheide CSS-Pixel von Bildpunkten und wähle dann Einheiten für Text, Boxen und bildschirmhohe Abschnitte. Ein Container, der schrumpfen kann, und Text, der die Einstellungen der Lesenden berücksichtigt, schaffen eine zuverlässige Grundlage für spätere Layoutänderungen.

1.1 Eine Seite, viele Bildschirmbreiten

Responsives Webdesign lässt eine HTML-Seite auf Änderungen des verfügbaren Platzes reagieren. Ein hochkant gehaltenes Smartphone, ein quer gedrehtes Tablet und ein Desktopfenster mit veränderter Größe sollten alle lesbaren Text, bedienbare Steuerelemente und passende Bilder zeigen. Du gestaltest für einen stufenlosen Bereich von Breiten, auch zwischen vertrauten Gerätegrößen.

Ethan Marcotte führte den Begriff 2010 für drei Techniken ein: fließende Layouts, flexible Bilder und Medienabfragen. Flexbox, Grid, Container-Abfragen und HTML für responsive Bilder erweitern diesen Werkzeugkasten heute. Jedes Werkzeug löst einen anderen Teil der Aufgabe; eine Seite braucht mehr als eine einzelne Einstellung.

Die richtigen Pixel zählen

Ein CSS-Pixel ist eine Layouteinheit und entspricht nicht unbedingt einem Bildpunkt auf dem Bildschirm. CSS definiert 96px als gleich 1in; auf einem Bildschirm garantiert dieses Verhältnis keinen gemessenen physischen Zoll. Ein Bildschirm mit hoher Pixeldichte verwendet mehrere Gerätepixel pro CSS-Pixel. Das Gerätepixelverhältnis beschreibt dieses Verhältnis.

Ein Smartphone mit 390 CSS-Pixeln Breite und einem Verhältnis von 3 ist 1170 Gerätepixel breit. Eine Breitenabfrage sieht weiterhin 390px. Die zusätzlichen Bildpunkte helfen, Text und Bilder scharf darzustellen; sie geben einem Layout nicht dreimal so viel Platz. Dieser Unterschied ist wichtig, wenn du später Bilddateien auswählst.

Der Viewport ist der Browserbereich, in dem die Seite angezeigt wird, ohne die Symbolleisten des Browsers. Wenn du die Fenstergröße änderst oder ein Gerät drehst, ändert sich der verfügbare Platz. Auf Smartphones kann auch das Ein- und Ausblenden der Symbolleisten die sichtbare Höhe ändern.

Mobilen Browsern die beabsichtigte Breite mitteilen

Mobile Browser können eine Seite ohne entsprechende Einstellung in einem breiten virtuellen Viewport von häufig etwa 980 CSS-Pixeln darstellen und sie dann auf Bildschirmgröße verkleinern. Auf einem 390px breiten Smartphone beträgt der Skalierungsfaktor etwa 0,4. Text mit der Angabe 16px wirkt dann etwa 6,4px hoch, und eine Abfrage für schmale Breiten trifft möglicherweise nie zu, weil der Layout-Viewport weiterhin breit ist.

Setze dies in das <head> des Dokuments:

<meta name="viewport" content="width=device-width, initial-scale=1">

width=device-width fordert die Gerätebreite in CSS-Pixeln an. initial-scale=1 beginnt mit normalem Zoom. Lade danach die Seite in einer Browseransicht in Smartphone-Größe neu und prüfe sowohl den Text als auch die aktiven Breitenabfragen.

Lass Zoom verfügbar. Füge weder user-scalable=no noch maximum-scale=1 hinzu. Menschen mit Sehbehinderung müssen Inhalte vergrößern können; Text muss eine Vergrößerung auf 200 % unterstützen, ohne dass Inhalte oder Funktionen verloren gehen. Einige mobile Browser ignorieren Zoom-Beschränkungen, aber die Seite sollte Zoom selbst unterstützen.

Auch das Layout prüfen

Das Viewport-Tag ändert keine Box mit fester Breite. Eine .page mit width: 960px ragt weiterhin über einen 390px breiten Viewport hinaus. Ersetze starre Breiten durch begrenzte fließende Breiten, mache Medien flexibel und ändere das Layout dort, wo der Inhalt es braucht.

Um die Ursache einer winzigen mobilen Seite zu finden, prüfe zuerst das <head> auf das Viewport-Tag. Bei einer normal großen Seite, die seitlich scrollt, untersuche die Boxen, die über die verfügbare Breite hinausragen. Diese Symptome weisen auf unterschiedliche Ursachen hin.

Wichtige Erkenntnisse

  • Responsive Seiten passen sich einem stufenlosen Bereich von Breiten an.
  • Das Layout verwendet CSS-Pixel; das Gerätepixelverhältnis beschreibt die Pixeldichte des Bildschirms.
  • Setze das Viewport-Meta-Tag in das head-Element des Dokuments.
  • Lass Zoom aktiviert und gestalte Inhalte mit fester Breite flexibel.

1.2 Größen, die Text und Containern folgen

Wähle eine Einheit anhand der Frage, woran sich die Größe orientieren soll. Eine Spalte folgt meist ihrem umschließenden Block. Der Innenabstand einer Schaltfläche kann ihrem Text folgen. Die Zeilenlänge eines Absatzes folgt der Schriftart. Mit der richtigen Bezugsgröße greifen Änderungen ineinander.

EinheitBezugsgrößeSinnvolle Anwendung
%Eine prozentuale Breite folgt der Breite des umschließenden BlocksFließende Boxen und Spalten
emSchriftgröße des Elternelements für font-size; eigene Schriftgröße für andere EigenschaftenInnenabstand von Schaltflächen und Symbole
remSchriftgröße des WurzelelementsText und gemeinsame Abstände
chBreite des Zeichens „0“ der SchriftartEine gut lesbare Begrenzung der Zeilenlänge
pxCSS-ReferenzpixelEin dünner Rahmen
Prozentangaben und das Boxmodell

Eine Box mit width: 50% ist in einem 600px breiten umschließenden Block 300px breit und in einem 360px breiten Block 180px. Prozentuale Innen- und Außenabstände, einschließlich der oberen und unteren Werte, beziehen sich bei normaler horizontaler Schreibrichtung ebenfalls auf die Breite des umschließenden Blocks. Somit ergibt padding-top: 10% in einem 600px breiten Elternelement 60px.

Bei der Höhe ist es anders. Eine prozentuale Höhe braucht eine festgelegte Bezugshöhe. Ergibt sich die Höhe eines gewöhnlichen Elternelements aus seinem Inhalt, verhält sich height: 50% im Allgemeinen wie auto. Lass Textboxen mit ihrem Inhalt wachsen, statt sie über prozentuale Höhen zu steuern.

Verwende einen fließenden Container mit einer Maximalbreite:

.page {
  box-sizing: border-box;
  width: 100%;
  max-width: 70rem;
  margin-inline: auto;
  padding-inline: 1rem;
}

Auf einem schmalen Bildschirm füllt die Box die verfügbare Breite, wobei der Innenabstand innerhalb der Box liegt. Auf einem breiten Bildschirm wächst sie höchstens auf 70rem und die automatischen Außenabstände in Inline-Richtung zentrieren sie. Bei einer Schriftgröße des Wurzelelements von 16px beträgt ihre maximale äußere Breite 1120px. Bei border-box sind Innenabstand und Rahmen in der angegebenen Breite enthalten; bei content-box würden 100 % Breite plus Innenabstand überlaufen. Eine feste Angabe width: 70rem würde das Schrumpfen ebenfalls verhindern.

Ein 340px breites umschließendes Element mit border-box und jeweils 16px Innenabstand auf beiden Seiten hat zum Beispiel 308px für seinen Inhalt übrig, wenn kein Rahmen vorhanden ist. Die angegebene Breite beschreibt die Außenseite dieser Box. Änderst du dieselbe Deklaration zu content-box, ist allein der Inhalt 340px breit und die äußere Breite beträgt 372px. Wenn du diese unterschiedlichen Breiten in den Entwicklerwerkzeugen untersuchst, erkennst du Überläufe durch Innenabstände leichter.

Texteinstellungen weitergeben

Belasse die Schriftgröße des Wurzelelements beim Standardwert der Lesenden oder verwende einen Prozentwert wie 100%. Bei einer Schriftgröße des Wurzelelements von 16px sind 1.5rem gleich 24px; bei 20px sind es 30px. Ein festes html { font-size: 16px; } verhindert, dass sich diese bevorzugte Standardschriftgröße auf Größen überträgt, die sich am Wurzelelement orientieren.

Für font-size verwendet em die Schriftgröße des Elternelements. Verschachtelte Listen, für die jeweils 1.2em festgelegt ist, vervielfachen daher die Schriftgröße: Aus 16px werden 19,2px und dann 23,04px. Verwende rem, wenn alle Verschachtelungsebenen dieselbe Größe behalten sollen.

In anderen Eigenschaften verwendet em die eigene Schriftgröße des Elements. Eine Schaltfläche mit padding: 0.5em 1em erhält mehr Innenabstand, wenn ihr Text wächst. So bleibt der Abstand ohne eigenen Breakpoint proportional.

Für Absätze bietet max-width: 65ch eine sinnvolle Begrenzung der Zeilenlänge. Die Einheit misst die Breite der „0“ und zählt die Zeichen in einer Proportionalschrift daher nicht genau. Eine gängige Empfehlung für die Lesbarkeit sind etwa 45 bis 75 Zeichen pro Zeile; prüfe die tatsächliche Schriftart und den Text im Browser.

Wichtige Erkenntnisse

  • Mit Prozentangaben folgen Breiten ihrem umschließenden Block.
  • Nutze border-box, damit der Innenabstand innerhalb einer angegebenen Breite bleibt.
  • rem folgt der Schriftgröße des Wurzelelements, ohne sich bei Verschachtelung zu vervielfachen.
  • em kann Abstände innerhalb einer Komponente proportional zu deren eigenem Text halten.
  • ch bietet eine schriftbasierte Begrenzung der Zeilenlänge.

1.3 Fließende Größen mit sinnvollen Begrenzungen

Viewport-Einheiten folgen dem Viewport des Browsers, selbst wenn ein Element innerhalb einer kleineren Box liegt. 1vw ist 1 % der Viewport-Breite; 1vh ist 1 % seiner Höhe. vmin verwendet das kleinere Maß und vmax das größere. In einem 800px breiten Viewport sind 50vw gleich 400px. In einem 300px hohen Viewport sind 70vh gleich 210px.

Diese Bezugsgröße ist wichtig. Eine Seitenleiste kann in einem 1400px breiten Fenster nur 260px breit sein. Ein Kindelement mit width: 50vw fordert 700px an und passt daher nicht in diese Seitenleiste. Verwende eine Prozentangabe, wenn das Kindelement seinem Elternelement folgen soll. Für einen gewöhnlichen Block über die volle Breite ist width: 100% vorzuziehen: 100vw kann die Breite einer Desktop-Bildlaufleiste einschließen und seitliches Scrollen verursachen.

Die passende mobile Höhe wählen

Die Symbolleisten mobiler Browser können den sichtbaren Seitenbereich verkleinern. Die Viewport-Höheneinheiten unterscheiden drei Zustände:

EinheitHöhe als BezugsgrößeWesentlicher Kompromiss
svhKleiner Viewport mit eingeblendeten SymbolleistenStabile Größe, die in diesem Zustand passt
lvhGroßer Viewport mit ausgeblendeten SymbolleistenKann hinter sichtbare Symbolleisten ragen
dvhAktueller dynamischer ViewportKann beim Scrollen seine Größe ändern

Das einfache vh entspricht dem großen Viewport. Es gibt auch Breitenvarianten wie svw, lvw und dvw. Für einen hohen Einstiegsbereich setzt min-height: 100svh ein stabiles Minimum und lässt längeren Inhalt mitwachsen. Bei einer festen height ragt überlaufender Inhalt heraus, wenn er höher wird. Dynamische Einheiten können Änderungen der Symbolleisten folgen, aber die Aktualisierung kann stufenweise erfolgen und das Layout bewegen.

Wähle die Bezugsgröße für die Höhe nach dem gewünschten Verhalten. Ein stabiler Einstiegsbereich kann auch nach dem Ausblenden der Symbolleisten den kleinen Viewport verwenden; er muss sich nicht erneut strecken, nur weil mehr Platz sichtbar wird. Ein Bereich, der diesem wechselnden Platz folgen soll, kann dynamische Einheiten verwenden und die mögliche Bewegung in Kauf nehmen. In beiden Fällen lässt eine Mindesthöhe zu, dass zusätzlicher Inhalt den Abschnitt im normalen Dokumentfluss verlängert.

Einen fließenden Wert begrenzen

min() wählt den kleineren Wert und kann eine Breite nach oben begrenzen: width: min(100%, 40rem) füllt das Elternelement, bis 40rem erreicht sind. max() wählt den größeren Wert und setzt eine Untergrenze. clamp() gibt in dieser Reihenfolge eine Untergrenze, einen bevorzugten Wert und eine Obergrenze an.

.title {
  font-size: clamp(1rem, 0.5rem + 2vw, 2rem);
}

Bei einer Schriftgröße des Wurzelelements von 16px liegt die Untergrenze bei 16px, die bevorzugte Größe bei 8px plus 2 % der Viewport-Breite und die Obergrenze bei 32px. Gehe die Grenzen durch:

  1. Bei 375px beträgt die bevorzugte Größe 15,5px, also gilt das Minimum von 16px.
  2. Bei 1000px beträgt die bevorzugte Größe 28px und liegt damit innerhalb der Grenzen.
  3. Bei 1400px beträgt die bevorzugte Größe 36px, also gilt das Maximum von 32px.

Dieselben Funktionen akzeptieren Berechnungen wie min(100% - 2rem, 70rem). Achte auf kompatible Längenwerte und Leerzeichen um den Subtraktionsoperator.

Text, dessen Größe nur in vw festgelegt ist, kann auf schmalen Bildschirmen winzig und auf breiten riesig werden. Der Zoom auf dem Desktop verkleinert außerdem den Viewport in CSS-Pixeln, was die Vergrößerung dieses Textes aufheben kann. Ergänze einen schriftbezogenen Anteil und sinnvolle Grenzen und teste dann die Textvergrößerung: Ein gemischter Ausdruck aus rem und vw garantiert allein keine vollständige Vergrößerung auf 200 %.

Wichtige Erkenntnisse

  • Viewport-Einheiten folgen dem Fenster, auch innerhalb eines schmalen Elternelements.
  • Nutze svh für den kleinen Viewport und dvh für die sich ändernde sichtbare Höhe.
  • min() begrenzt einen Wert nach oben; max() gibt ihm eine Untergrenze.
  • clamp() legt ein Minimum, einen bevorzugten Wert und ein Maximum fest.
  • Teste fließende Schriftgrößen sowohl mit Zoom als auch bei unterschiedlichen Fensterbreiten.
2

Passe Layouts mit Medienabfragen an

Ein Layout muss funktionieren, während sich das Fenster ändert, auch zwischen seinen größeren Anordnungen. Schreibe Bedingungen, die CSS zum richtigen Zeitpunkt anwenden, beginne mit einer brauchbaren schmalen Seite und ergänze Spalten, sobald der Inhalt Platz dafür hat. Flexbox und Grid können viele Änderungen automatisch übernehmen; explizite Breakpoints regeln die Stellen, an denen sich die Anordnung selbst ändern muss.

2.1 Bedingungen, die CSS-Regeln umschalten

Eine Medienabfrage wendet CSS an, wenn eine Bedingung zur Ausgabe, zum Viewport oder zu den Einstellungen der Lesenden erfüllt ist. Der Browser prüft erneut, wenn sich relevante Bedingungen ändern. So kann eine Änderung der Fenstergröße die Stile wechseln, ohne die Seite neu zu laden.

.heading { font-size: 1.25rem; }

@media (min-width: 40em) {
  .heading { font-size: 2rem; }
}

Bei der üblichen Browserstandardgröße von 16px entsprechen 40em genau 640px. Die größere Überschrift gilt ab dieser Breite aufwärts. In Medienabfragen beruhen em und rem auf der anfänglichen Schriftgröße des Browsers, nicht auf einer von der erstellenden Person für <html> festgelegten Größe. Bei einem Standardwert von 20px erfolgt derselbe Wechsel bei 800px.

Bedingungen genau lesen

min-width schließt seinen Grenzwert ein: 600px erfüllt min-width: 600px. Auch max-width schließt seinen Grenzwert ein. Die Bereichssyntax macht den Vergleich ausdrücklich:

@media (width >= 600px) { /* wider layout */ }
@media (600px <= width < 900px) { /* middle band */ }

Kombinierst du max-width: 600px mit min-width: 600px, treffen bei 600px beide zu. Mit 599px und 600px entsteht dagegen eine Lücke bei gebrochenen Breiten wie 599,5px. Abfragen mit aufsteigenden Mindestbreiten vermeiden diese Lücke; einander ergänzende Bereiche wie < 600px und >= 600px sind eine weitere Möglichkeit.

Medientypen bestimmen die Ausgabe: screen, print oder der Standardwert all. @media print kann die Navigation entfernen und dunklen Text auf weißem Papier verwenden. Bedingungen lassen sich auf nützliche Weise kombinieren:

FormBedeutung
screen and (min-width: 40em)Ausgabetyp und Breite müssen beide zutreffen
(max-width: 30em), printEine schmale Ausgabe oder der Druck trifft zu
not printDie Ausgabe ist kein Druck

only hat in aktuellen Browsern keine nützliche Wirkung. Breite und Höhe beschreiben den Viewport; orientation: portrait bedeutet, dass seine Höhe mindestens seiner Breite entspricht. Andere Merkmale prüfen Eingabegenauigkeit, Hover, Auflösung, reduzierte Bewegung und Farbschema. Ein Viewport im Querformat verrät nicht, ob die lesende Person eine Maus hat.

Für eine praktische Bedingung verlangt @media (hover: hover) and (pointer: fine) ein hauptsächliches Eingabegerät, das Hover und präzises Anvisieren beherrscht. Ein schmales, mit der Maus bedientes Fenster kann die Bedingung erfüllen, ein breites Gerät mit vorrangiger Touchbedienung dagegen möglicherweise nicht. Nutze die Abfrage für optionale Zeigereffekte; halte die zugrunde liegende Aktion über die normalen Steuerelemente der Seite verfügbar.

Die Kaskade im Blick behalten

Eine Medienabfrage erhöht die Spezifität eines Selektors nicht. In einem normalen Stylesheet mit gleich spezifischen Regeln setzt sich die spätere zutreffende Deklaration durch. Steht die .heading-Grundregel nach der obigen Regel für breite Bildschirme, setzt sie sich auch bei großen Breiten durch. Setze Grundregeln zuerst und die Abfragen, die sie ändern, danach.

Du kannst eine Bedingung auch in HTML angeben. <link rel="stylesheet" href="print.css" media="print"> wendet seine Regeln beim Drucken an, aber ein Browser kann die Datei dennoch mit geringerer Priorität herunterladen. Das media-Attribut eines <source>-Elements nutzt Bedingungen, um eine Bildquelle auszuwählen.

Wichtige Erkenntnisse

  • Medienabfragen reagieren auf Ausgabe, Viewport-Merkmale und Benutzereinstellungen.
  • min-width und max-width schließen ihre Grenzwerte ein.
  • Bei and müssen alle Bedingungen erfüllt sein; ein Komma bietet Alternativen.
  • Auch für Regeln in Abfragen gelten die normale Kaskade und Spezifität.
  • Relative Einheiten in Abfragen beruhen auf der anfänglichen Schriftgröße des Browsers.
  • Einander ergänzende Bereiche vermeiden Lücken bei gebrochenen Breiten.

2.2 Ergänze das Layout, sobald Platz verfügbar ist

CSS nach dem Mobile-First-Prinzip beginnt mit dem schmalen Layout als gewöhnlichen Regeln außerhalb jeder Abfrage. Abfragen mit Mindestbreiten ergänzen dann Änderungen, sobald der Platz es erlaubt. Das passt zum normalen Dokumentfluss: Blöcke stehen bereits senkrecht untereinander, sodass die Grundseite oft wenig Layoutcode braucht.

CSS nach dem Desktop-First-Prinzip beginnt mit Regeln für breite Bildschirme und nimmt sie mit Abfragen nach Maximalbreiten zurück. Beide Ansätze können funktionieren, aber beim Mobile-First-Prinzip lassen sich die Grundlage und jede spätere Änderung meist leichter nachvollziehen.

Mit einer Spalte beginnen
.cards {
  display: grid;
  gap: 1rem;
}

@media (min-width: 40em) {
  .cards { grid-template-columns: 1fr 1fr; }
}

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

Bei einem Standardwert von 16px erfolgen die Änderungen bei 640px und 1024px. Ein 500px breiter Viewport zeigt eine Spalte. Bei 800px trifft die erste Abfrage zu und ergibt zwei Spalten. Bei 1200px treffen beide Abfragen zu; die spätere Regel ergibt drei Spalten.

Die Abfrage für größere Breiten schaltet die frühere Abfrage nicht aus. Drehst du ihre Reihenfolge um, steht die 40em-Regel zuletzt und reduziert das breite Layout auf zwei Spalten. Ordne Abfragen mit aufsteigenden Mindestbreiten aufsteigend an, wenn sie dieselbe Eigenschaft mit derselben Spezifität ändern.

Den Breakpoint im Inhalt finden

Ein Breakpoint ist die Stelle, an der eine Abfrage das Layout ändert. Beginne mit dem tatsächlichen Inhalt in einem schmalen Fenster und verbreitere es dann langsam. Achte darauf, ob die Navigation ungünstig umbricht, Absätze zu lang werden oder Karten über eine sinnvolle Lesebreite hinaus gedehnt werden. Ergänze dort eine Änderung, wo sie diesen Inhalt verbessert.

Wähle einen Breakpoint nicht nur deshalb, weil ein bekanntes Gerät diese Breite hat. Bildschirme unterscheiden sich, Desktopfenster können jede Größe haben und eine größere Schrift kann dazu führen, dass dieselbe Navigation mehr Platz braucht. Breakpoints in relativen Einheiten können dem Layout helfen, auf die Standardtextgröße der Lesenden zu reagieren.

Teste nach jeder Änderung beide Seiten des Breakpoints und mehrere Breiten zwischen den Änderungen. Ein Layout, das nur bei 375px, 768px und 1280px richtig aussieht, hat noch viele Möglichkeiten zu scheitern. Fließende Breiten, Umbrüche und automatische Grid-Spalten bewältigen einen großen Teil der dazwischenliegenden Breiten.

Teste die Navigation und die Kartenliste zusammen, nachdem du eine Seitenleiste hinzugefügt hast. Das Fenster ist breiter geworden, aber die Hauptspalte möglicherweise schmaler, weil sie sich den Platz nun teilt. Ein Kartenlayout, das knapp unterhalb des Seiten-Breakpoints funktioniert hat, kann knapp darüber scheitern. Hier ist es sinnvoll, Karten umbrechen zu lassen oder in automatische Spalten einzupassen, während die Seite selbst eine explizite Abfrage nutzt.

Inhalt und Downloads sinnvoll halten

Auch Smartphone-Nutzende brauchen den Inhalt der Seite. Nimmt eine zweitrangige Erklärung zu viel Platz ein, ordne sie weiter unten an oder setze sie in ein natives aufklappbares <details>-Element, das Lesende öffnen können. Entferne notwendige Informationen nicht nur, damit ein schmaler Screenshot aufgeräumt aussieht.

Ein schmaler Einstieg hilft dir auch, eine schlanke Standardseite zu wählen. Das Ausblenden eines großen Bildes mit CSS verhindert seinen Download nicht zuverlässig; verwende HTML für responsive Bilder, um passende Dateien anzubieten. Eine lesbare einspaltige Seite mit einem kleineren Bild ist ein guter Ausgangspunkt; breitere Layouts schaffen dann Platz und ordnen den Inhalt neu an.

Wichtige Erkenntnisse

  • Schreibe Grundregeln für schmale Bildschirme außerhalb von Abfragen.
  • Ergänze passende min-width-Änderungen in aufsteigender Reihenfolge.
  • Setze Breakpoints dort, wo der Inhalt eine Layoutänderung braucht.
  • Teste Breiten zwischen Breakpoints, auch mit größerem Text.
  • Ordne nützliche Inhalte für Smartphones neu an und liefere passende Bilddateien.

2.3 Responsive Zeilen und Spalten

Ein Layout kann sich durch eine explizite Abfrage oder durch seine eigenen Größenregeln anpassen. Verwende eine Abfrage, wenn sich die Anordnung an einem gewählten Punkt ändern muss. Nutze ein intrinsisches Layout, wenn Elemente lediglich in den verfügbaren Platz passen müssen.

Grid die Spalten zählen lassen
.tiles {
  display: grid;
  grid-template-columns:
    repeat(auto-fit, minmax(min(15rem, 100%), 1fr));
  gap: 1rem;
}

Bei einer Schriftgröße des Wurzelelements von 16px soll jede Spalte mindestens 240px breit sein. Grid platziert so viele wie möglich, zieht die Abstände ab und verteilt dann die verbleibende Breite mit 1fr. In einem 1000px breiten Container würden vier 240px breite Spalten plus drei Abstände zu 16px insgesamt 1008px brauchen, also passen nur drei hinein. Jede erhält etwa 322,7px. Ein 700px breiter Container erhält zwei Spalten zu 342px; ein 360px breiter erhält eine.

Das innere min(15rem, 100%) ist wichtig, wenn der Container schmaler als 240px ist. Damit kann das Minimum auf die verfügbare Breite sinken. Ohne diese Angabe würde das Minimum von 240px einen Überlauf erzwingen. auto-fit lässt leere Rasterspuren zusammenfallen, sodass sich einzelne Elemente ausdehnen können; auto-fill behält leere Rasterspuren bei und kann diese Elemente schmaler lassen.

Flex-Elemente umbrechen lassen
.links {
  display: flex;
  flex-wrap: wrap;
  gap: 1rem;
}
.links > * { flex: 1 1 15rem; }

Jedes Element beginnt mit einer Basis von 15rem, kann schrumpfen oder wachsen und wechselt in eine neue Zeile, wenn kein weiteres Element in die Zeile passt. Jede Zeile verteilt ihren eigenen verbleibenden Platz. Zwei Elemente in der letzten Zeile können daher breiter werden als die Elemente darüber. Grid ist besser geeignet, wenn die Spaltenbreiten über mehrere Zeilen hinweg übereinstimmen sollen. Auch die Navigation kann umbrechen oder eine Abfrage kann ihre flex-direction auf column umstellen.

Bei Bedarf die ganze Seite ändern

Beginne die Seite im normalen Dokumentfluss. Ergänze dann eine Anordnung mit Seitenleiste:

@media (min-width: 48em) {
  .page {
    display: grid;
    grid-template-columns: 16rem minmax(0, 1fr);
    gap: 1rem;
  }
}

Bei der üblichen Standardgröße von 16px beginnt dies bei 768px. Die erste Spalte ist die Seitenleiste; die zweite nimmt den verbleibenden Platz ein. Das Minimum null lässt die Hauptspur schrumpfen; ihre Inhalte müssen trotzdem passend umbrechen oder scrollbar sein. Benannte Rasterbereiche können eine komplexere Anordnung ausdrücken.

Halte das HTML in einer sinnvollen Lesereihenfolge. Das Flex-order und die Platzierung im Grid ändern, wo Elemente erscheinen, aber Tastaturfokus und Screenreader folgen weiterhin der Quelltextreihenfolge. Teste dies, indem du nach dem Umordnen mit der Tabulatortaste durch die Links gehst.

Eine breite Datentabelle braucht möglicherweise ihre zweidimensionale Struktur. Gib ihr ein eigenes umschließendes Element zum Scrollen mit overflow-x: auto, tabindex="0", role="region" und einem zugänglichen Namen wie aria-label="Event schedule". Nur der Tabellenbereich sollte seitlich scrollen; die umgebende Seite sollte weiterhin umbrechen.

Wichtige Erkenntnisse

  • Intrinsische Layouts brechen ohne Breakpoint um.
  • auto-fit und minmax() passen Spalten ein und verteilen freien Platz.
  • Begrenze die Spaltenmindestbreite auf 100 %, um Überlauf in schmalen Containern zu vermeiden.
  • Flex-Zeilen verteilen Platz unabhängig voneinander; Grid richtet Spalten über Zeilen hinweg aus.
  • Eine visuelle Umordnung ändert weder die HTML-Lesereihenfolge noch die Tabulatorreihenfolge.
  • Halte breite Tabellen in einem erreichbaren, benannten scrollbaren Bereich.
3

Passe Komponenten an ihren Container an

Eine Komponente kann auf derselben Seite in einer breiten Hauptspalte oder einer schmalen Seitenleiste erscheinen. Ihre eigene verfügbare Breite kann wichtiger sein als die Fensterbreite. Deklariere einen Container zum Messen, ändere die Elemente darin und nutze containerbezogene Größen, wenn sie zur Komponente passen. Mit der richtigen Bezugsgröße bleibt eine wiederverwendbare Karte überall dort nutzbar, wo sie eingesetzt wird.

3.1 Eine Karte, die ihrem eigenen Platz folgt

Eine Abfrage der Viewport-Breite liefert für jede Komponente einer Seite dieselbe Antwort. Für eine wiederverwendbare Karte kann das falsch sein: Das Fenster kann 1400px breit sein, während die Seitenleiste der Karte nur 300px gibt. Eine Container-Größenabfrage misst den verfügbaren Platz eines Vorfahrenelements, sodass sich die Karte an ihren tatsächlichen Platz anpassen kann.

Ein umschließendes Element deklarieren und seinen Inhalt gestalten
<div class="card-wrap">
  <article class="card">...</article>
</div>
.card-wrap { container-type: inline-size; }
.card { display: grid; gap: 1rem; }

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

Bei horizontaler Schreibrichtung ist inline-size die Breite. Die Deklaration legt fest, dass das umschließende Element Abfragen zur Inline-Größe beantworten kann. Bei einer Schriftgröße des Wurzelelements von 16px sind 25rem gleich 400px. Eine Karte in einem 300px breiten umschließenden Element bleibt untereinander angeordnet; eine andere in einem 500px breiten Element platziert ihr Bild neben dem Text. Beide können gleichzeitig auf derselben Seite stehen.

Eine Abfrage misst ein Vorfahrenelement des gestalteten Elements. Setzt du container-type nur auf .card und versuchst dann, dieselbe Karte zu ändern, sucht die Abfrage weiterhin oberhalb davon. Nutze ein umschließendes Element als Messbox und die innere Karte als gestaltete Box.

Das gewünschte Vorfahrenelement auswählen

Eine unbenannte Größenabfrage nutzt den nächstgelegenen geeigneten übergeordneten Größencontainer. In einem verschachtelten Layout kann das ein inneres umschließendes Element sein. Mit einem Namen kannst du ein bestimmtes Vorfahrenelement auswählen:

.panel { container: sidebar / inline-size; }

@container sidebar (width >= 30rem) {
  .panel-title { font-size: 1.5rem; }
}

Die Kurzschreibweise legt sowohl den Namen als auch den Typ fest. Gibt es kein geeignetes Vorfahrenelement, trifft die Abfrage nicht zu; die Grundstile gelten weiter. Bedingungen können Bereiche und logische Operatoren wie and, or und not verwenden.

Sicherstellen, dass der Container seine Größe erhält

Das Containment verhindert, dass das abgefragte Maß von genau den Inhalten abhängt, die durch die Abfrage anders gestaltet werden können. Setze container-type auf eine Box, deren Breite sich aus dem übergeordneten Layout ergibt, etwa einen Block, einen Rasterbereich oder ein wachsendes Flex-Element. Eine Box, die auf ihren Inhalt schrumpft, kann zusammenfallen, wenn ihr Inhalt nicht mehr zu ihrer Inline-Größe beiträgt.

container-type: size unterstützt Breiten- und Höhenabfragen, schließt aber auch die Größenberechnung in Blockrichtung ein. Die Höhe braucht eine unabhängige Größenfestlegung, sonst kann sie zusammenfallen. Für gewöhnliche Karten erlaubt inline-size, dass die Höhe weiterhin dem Inhalt folgt. Der Standardwert normal richtet keinen Container für Größenabfragen ein.

Zu den Größenmerkmalen gehören Breite, Höhe, Inline-Größe, Blockgröße, Seitenverhältnis und Ausrichtung, sofern der gewählte Containertyp die jeweiligen Maße unterstützt. Aktuelle gängige Browser unterstützen Größenabfragen. Behalte ein nutzbares Grundlayout mit untereinander angeordneten Inhalten bei, damit die Karte auch funktioniert, wenn ein Browser die Erweiterung ignoriert.

Wichtige Erkenntnisse

  • Setze container-type auf ein umschließendes Vorfahrenelement.
  • inline-size-Abfragen eignen sich für Karten, deren Höhe dem Inhalt folgen soll.
  • Eine Container-Abfrage gestaltet Nachfahrenelemente, nicht ihre eigene Messbox.
  • Benenne einen Container, wenn verschachtelte Vorfahrenelemente die gewünschte Bezugsgröße ändern könnten.
  • Gib einem Abfragecontainer seine Größe über das umgebende Layout.

3.2 Wähle die passende Bezugsgröße für die Aufgabe

Eine responsive Seite kann drei Ansätze kombinieren: automatischen Umbruch, Viewport-Bedingungen und Komponentenbedingungen. Entscheide, welche Informationen das Layout braucht, bevor du eine Abfrage wählst.

BedarfNützliches WerkzeugGrund
Mehrere Karten in eine Zeile einpassenIntrinsisches Grid oder umbrechende FlexboxElemente können ohne Regel mit einem Schwellenwert umbrechen
Eine seitenweite Anordnung mit Seitenleiste ändernMedienabfrageDer verfügbare Fensterplatz steuert die Seite
Eine Karte an verschiedenen Stellen der Seite ändernContainer-AbfrageDie Karte braucht die Größe ihres umschließenden Elements
Reduzierte Bewegung oder Druckausgabe berücksichtigenMedienabfrageDies sind Benutzer- oder Ausgabebedingungen
Größen innerhalb eines Containers festlegen

Container-Abfrageeinheiten beschreiben Prozentanteile eines geeigneten übergeordneten Containers. cqw und cqh beziehen sich auf Breite und Höhe. cqi und cqb beziehen sich auf Inline- und Blockgröße. cqmin und cqmax beziehen sich auf das kleinere beziehungsweise größere der beiden Maße. Bei horizontaler Schreibrichtung ist die Inline-Größe die Breite.

In einem geeigneten 400px breiten Container sind 5cqi gleich 20px. In einem 600px breiten Container sind es 30px. So kann eine Überschrift ihrer eigenen Komponente folgen, selbst wenn die ganze Seite gleich breit bleibt.

Begrenze Textgrößen:

.card-wrap { container-type: inline-size; }
.card h2 {
  font-size: clamp(1rem, 4cqi, 1.5rem);
}

Bei einer Schriftgröße des Wurzelelements von 16px ergibt ein 300px breites umschließendes Element einen bevorzugten Wert von 12px, also gilt das Minimum von 16px. Bei 600px sind 4cqi gleich 24px und entsprechen damit der Obergrenze. Breitere umschließende Elemente können die Überschrift nicht über 24px hinaus vergrößern. Teste neben Änderungen der Größe des umschließenden Elements auch die Vergrößerung; fließender Text muss auch bei Zoom nutzbar bleiben.

Container-Einheiten wählen für die gemessene Richtung das nächstgelegene geeignete Vorfahrenelement. Gibt es keines, greifen sie auf Einheiten des kleinen Viewports zurück. Ein vergessenes container-type kann daher dazu führen, dass sich Text mit dem Fenster ändert, obwohl es zu funktionieren scheint. Untersuche die Vorfahrenelemente, wenn eine Größe dem falschen Bereich zu folgen scheint. Ein Containername in einer Abfrage bewirkt für sich allein nicht, dass alle Container-Einheiten auf dieses benannte Vorfahrenelement bezogen werden.

Die Werkzeuge kombinieren

Eine Medienabfrage kann die Seite bei 48em auf Spalten für Seitenleiste und Hauptbereich umstellen. Innerhalb des Hauptbereichs kann ein automatisches Grid so viele Karten einpassen, wie der Platz erlaubt. Die eigene Container-Abfrage einer Karte kann ihr Bild erst dann neben den Text verschieben, wenn genau dieser Platz breit genug ist.

Ersetze eine Abfrage für reduzierte Bewegung oder Hover nicht durch eine Container-Abfrage. Die Maße einer Box verraten weder die Einstellungen noch das Eingabegerät der lesenden Person. Ebenso bindet das Kopieren der Regeln einer Karte in separate Viewport-Abfragen für jede Stelle der Seite die wiederverwendbare Komponente an jedes umgebende Layout. Lass den örtlich verfügbaren Platz entscheiden, wann sich ihre Anordnung ändert.

Wichtige Erkenntnisse

  • Wähle intrinsischen Umbruch, wenn kein Wechsel der Anordnung nötig ist.
  • Medienabfragen behandeln seitenweite Bedingungen und Benutzereinstellungen.
  • Container-Abfragen berücksichtigen den verfügbaren Platz einer Komponente.
  • Container-Einheiten nutzen für jede gemessene Richtung ein geeignetes Vorfahrenelement.
  • Ohne geeigneten Container greifen Container-Einheiten auf Einheiten des kleinen Viewports zurück.
4

Stelle Bilder und Medien passend für jede Bildschirmgröße bereit

Bilder brauchen sowohl eine flexible Anzeigebox als auch eine sinnvolle Datei zum Herunterladen. Erhalte ihre Form, reserviere Platz für das Laden und entscheide, wann Zuschneiden akzeptabel ist. Beschreibe dann alternative Auflösungen, Ausschnitte und Formate, damit der Browser daraus wählen kann. Wenn HTML für Bilder und CSS-Layout zusammenpassen, bleibt eine Seite auf Bildschirmen mit hoher Pixeldichte klar, ohne unnötige Downloads zu verursachen.

4.1 Flexible Medien ohne Verzerrung

Ein Bild kann breiter sein als der Platz, den das Layout ihm gibt. Beginne mit einer Regel, die es unter Beibehaltung seiner Form schrumpfen lässt:

img, video {
  max-width: 100%;
  height: auto;
}

max-width begrenzt die angezeigte Breite auf den Container, ohne ein kleines Bild zu zwingen, ihn auszufüllen. width: 100% würde ein kleines Logo auf die volle Breite strecken. Die automatische Höhe erhält das Seitenverhältnis, wenn sich die Breite ändert.

Platz vor dem Download reservieren

Behalte die Größenattribute im HTML:

<img src="coast.jpg" width="1200" height="800"
     alt="A rocky coast with a walking path">

Diese Maße ergeben ein Seitenverhältnis von 3:2, sodass der Browser Platz reservieren kann, bevor die Datei eintrifft. Zeigt CSS das Bild 360px breit an, beträgt die passende Höhe 240px. Werden die Attribute entfernt, weil das Bild responsiv ist, geht diese frühe Größeninformation verloren. CSS kann das angezeigte Bild weiterhin kleiner als die Attributmaße darstellen.

Gib bei einem eingebetteten Videoplayer der Box ein eigenes Verhältnis:

iframe {
  width: 100%;
  height: auto;
  aspect-ratio: 16 / 9;
}

So bleibt die Form des Players im Verhältnis 16:9 erhalten, während sich seine Breite ändert. Lass Höhen bei Text vom Inhalt bestimmen; ein festes Seitenverhältnis ist für Medienboxen mit bekannter Form nützlich.

Entscheiden, ob Zuschneiden erlaubt ist

Ein Vorschaubild auf einer Karte muss oft eine einheitliche Box füllen. Gib ihm eine Breite und ein Seitenverhältnis und wähle dann, wie die Quelle eingepasst wird:

.thumbnail {
  width: 100%;
  aspect-ratio: 4 / 3;
  object-fit: cover;
  object-position: top;
}

cover füllt die Box und schneidet Teile ab, die darüber hinausragen. contain zeigt das ganze Bild und kann leere Streifen lassen. Der Standardwert fill streckt das Bild auf die Box, wodurch es verzerrt werden kann. object-position wählt die Ausrichtung beim Einpassen; die Ausrichtung oben hält in diesem Beispiel den oberen Teil sichtbar.

ZielEinstellung
Ein ganzes Diagramm zeigenobject-fit: contain
Eine Vorschaubildbox füllen und einen Zuschnitt zulassenobject-fit: cover
Beim Schrumpfen die natürliche Form erhaltenheight: auto mit einer Breitenbegrenzung

Für einen konkreten Vergleich setze ein Foto mit 400 × 200 in ein Vorschaubild mit 320 × 240. Cover skaliert es auf 480 × 240 und schneidet dann insgesamt 160px der skalierten Breite ab. Contain skaliert es auf 320 × 160, sodass insgesamt 80px Höhe ungenutzt bleiben. Beide erhalten die Proportionen der Quelle; die Entscheidung ist, ob die Box gefüllt werden muss oder das ganze Bild sichtbar bleiben soll.

Inhaltsbilder gehören als <img> mit aussagekräftigem Alternativtext in die Seite. CSS-Hintergründe eignen sich für Dekoration; background-size: cover kann sie zuschneiden, damit sie ihre Box füllen, und Medienabfragen können die Hintergrunddatei wechseln.

Für Bilder unterhalb des zuerst sichtbaren Bereichs kann loading="lazy" den Abruf verzögern, bis die lesende Person in ihre Nähe gelangt. Lass das Hauptbild im Einstiegsbereich sofort laden, damit es früh erscheinen kann. Wird ein 4000 Pixel breites Foto mit CSS verkleinert, wird es dennoch vollständig heruntergeladen; für die Auswahl einer kleineren Datei ist HTML für responsive Bilder nötig.

Wichtige Erkenntnisse

  • Begrenze die Medienbreite und erhalte das Seitenverhältnis.
  • Behalte width- und height-Attribute bei, um Platz für das Laden zu reservieren.
  • cover schneidet zu; contain hält das ganze Bild sichtbar.
  • Nutze img für Inhalte und CSS-Hintergründe für Dekoration.
  • Lade tiefer liegende Bilder verzögert, nicht das Hauptbild im Einstiegsbereich.
  • Die CSS-Anzeigegröße verkleinert die heruntergeladene Datei nicht.

4.2 Biete die passende Bildauflösung an

Ein Foto kann in mehreren Dateien mit demselben Inhalt und denselben Proportionen, aber unterschiedlichen Pixelmaßen vorliegen. Beim Auflösungswechsel wählt der Browser eine Datei anhand der Anzeigegröße, der Bildschirmpixeldichte und seiner Ladeentscheidungen aus. Das spart unnötige Daten und erhält zugleich genügend Details.

Feste Anzeigegröße: Pixeldichtedeskriptoren
<img src="logo-200.png"
     srcset="logo-200.png 1x, logo-400.png 2x"
     width="200" height="80" alt="Northwind Books">

Das Logo wird 200 CSS-Pixel breit angezeigt. Die 200-Pixel-Datei passt zu einem Bildschirm mit dem Verhältnis 1; die 400-Pixel-Datei liefert bei einem Verhältnis von 2 zwei Quellpixel pro angezeigtem CSS-Pixel. Diese Form verwendet x-Deskriptoren und benötigt kein sizes-Attribut.

Veränderliche Anzeigegröße: Breitendeskriptoren
<img src="park-800.jpg"
     srcset="park-480.jpg 480w,
             park-800.jpg 800w,
             park-1600.jpg 1600w"
     sizes="(min-width: 64em) 50vw, 100vw"
     width="1600" height="1000"
     alt="Trees around a park pond">

Jeder w-Wert muss die tatsächliche Pixelbreite der Datei angeben. Er legt keine CSS-Breite fest. Das CSS steuert weiterhin die Box und sizes beschreibt dem Browser die vorgesehene Anzeigebreite.

Die erste zutreffende Bedingung in sizes setzt sich durch. Bei einer Browserstandardgröße von 16px ist der Platz ab 1024px Breite 50vw breit, darunter 100vw. Die letzte Länge ohne Bedingung ist der Ersatzwert. Längen können Viewport-, Pixel- oder Schrifteinheiten und Berechnungen wie calc(100vw - 2rem) verwenden, aber keine Prozentwerte. Fehlt sizes bei Breitendeskriptoren, nimmt der Browser normalerweise 100vw an.

Die nötigen Bilddetails ermitteln

Multipliziere die angegebene Anzeigebreite mit dem Gerätepixelverhältnis. Für die Auswahl der kleinsten ausreichenden Datei vergleiche diesen Zielwert mit den angebotenen Dateibreiten:

  1. Ein 1200px breiter Viewport mit dem Verhältnis 1 nutzt den 50vw breiten Platz: 600 CSS-Pixel. Die 800w-Datei ist die erste ausreichend große Datei.
  2. Ein 390px breiter Viewport mit dem Verhältnis 3 nutzt 390 CSS-Pixel. Er braucht 1170 Quellpixel, daher erfüllt 1600w den Zielwert.
  3. Derselbe schmale Viewport braucht bei einem Verhältnis von 2 insgesamt 780 Quellpixel; 800w erfüllt diesen Wert.

Browser können eine größere Datei aus dem Cache wiederverwenden oder bei eingeschränkten Ladebedingungen eine kleinere bevorzugen. Der HTML-Quelltext liefert Kandidaten und Größeninformationen, keinen unbedingten Befehl zum Abrufen einer bestimmten Datei.

Browser beginnen Bilder abzurufen, bevor das vollständige CSS-Layout verfügbar ist. Deshalb gehört der Größenhinweis ins HTML. Gibt das CSS einem Bild die halbe Viewport-Breite, aber sizes nennt 100vw, lädt der Browser möglicherweise eine zu große Datei. Aktualisiere sizes, wenn sich das Layout ändert. Behalte src als Ersatz und verwende einen einzigen alt-Text. Unterschiedliche Ausschnitte brauchen <picture>, weil gewöhnliche Auflösungskandidaten austauschbare Ansichten desselben Bildes bleiben sollten.

Wichtige Erkenntnisse

  • Nutze x-Deskriptoren für eine feste Anzeigegröße und unterschiedliche Pixeldichten.
  • Nutze w-Deskriptoren für Dateibreiten und sizes für den vorgesehenen Platz.
  • Die erste zutreffende sizes-Bedingung setzt sich durch; Prozentwerte sind keine zulässigen Längen für den Bildplatz.
  • Schätze die benötigte Quellbreite aus Anzeigebreite und Gerätepixelverhältnis.
  • Halte sizes mit dem CSS im Einklang; der Browser behält die Auswahlfreiheit.

4.3 Wähle einen Bildausschnitt oder ein Bildformat

Werden die Pixelmaße eines Fotos reduziert, bleibt der Bildaufbau gleich. Manchmal braucht ein Smartphone einen anderen Bildaufbau: Auf einem breiten Bühnenfoto kann die vortragende Person zu klein sein, um sie zu erkennen. Art Direction ändert den Ausschnitt oder das Bild, damit das wichtige Motiv deutlich bleibt.

Das <picture>-Element bietet eine geordnete Auswahl von Quellen, gefolgt von einem erforderlichen <img>:

<picture>
  <source media="(min-width: 50em)"
          srcset="stage-wide.jpg" width="1600" height="900">
  <img src="stage-close.jpg" width="800" height="1000"
       alt="A speaker presenting on stage">
</picture>

Bei einem Standardwert von 16px wird ab 800px der breite Ausschnitt gewählt; darunter verwendet das Bild den engeren Ausschnitt. Das <img> bleibt das angezeigte Element. Es liefert den Ersatz und den Alternativtext und wird durch dein Bild-CSS gestaltet. Ein <picture> ohne <img> zeigt kein Bild an.

Die spezifischsten Bedingungen zuerst aufführen

Der Browser wählt die erste unterstützte Quelle, deren Bedingungen zutreffen. Angenommen, du bietest Ausschnitte bei 30em und 60em an. Führe zuerst das Minimum von 60em auf, dann 30em und dann den Ersatz. Steht 30em zuerst, trifft es auch auf einen sehr breiten Bildschirm zu und verhindert, dass der Browser 60em erreicht. Bereiche ohne Überschneidung können die beabsichtigte Auswahl ebenfalls verdeutlichen.

Die media-Bedingung einer Quelle ist eine Auswahlanweisung. Gewöhnliche srcset-Kandidaten und sizes liefern dem Browser dagegen Informationen, um eine passende Auflösung zu wählen. Nutze Art Direction, wenn sich der Bildaufbau ändern muss; nutze Auflösungswechsel, wenn der Bildinhalt gleich bleibt.

Formate nach Vorzug anbieten
<picture>
  <source type="image/avif" srcset="hall.avif">
  <source type="image/webp" srcset="hall.webp">
  <img src="hall.jpg" width="1200" height="800"
       alt="Rows of seats in a lecture hall">
</picture>

Ein Browser, der das erste Format unterstützt, kann es verwenden; andernfalls versucht er die nächste unterstützte Option und schließlich das JPEG als Ersatz. AVIF und WebP liefern bei vergleichbarer visueller Qualität häufig kleinere Dateien. Das type-Attribut erlaubt dem Browser, nicht unterstützte Formate zu überspringen, ohne sie zur Prüfung herunterzuladen.

Jede Quelle kann mit eigenem srcset und sizes auch mehrere Breiten anbieten. Das verbindet einen gewählten Ausschnitt oder ein Format mit dem Auflösungswechsel. Haben die für Art Direction gewählten Ausschnitte unterschiedliche Proportionen, ermöglichen Größenattribute an den Quellen dem Browser, für jeden Ausschnitt den passenden Platz zu reservieren.

Schreibe den Alternativtext einmal am <img> und stelle sicher, dass er jeden Ausschnitt beschreibt. Entfernt ein enger Ausschnitt eine zweite Person, passt eine Beschreibung, die zwei Personen nennt, nicht mehr. Verwende für ein rein dekoratives Bild alt="", damit es keine unnötigen gesprochenen Inhalte ergänzt.

Wichtige Erkenntnisse

  • picture braucht ein img für Anzeige, Ersatz und Alternativtext.
  • Nutze Art Direction, wenn sich der Bildaufbau ändert.
  • Die erste unterstützte passende Quelle setzt sich durch, daher ist ihre Reihenfolge wichtig.
  • Der Typ einer Quelle kann ein bevorzugtes Format mit Ersatz anbieten.
  • Jeder Ausschnitt muss zur gemeinsamen Alternativbeschreibung passen.
5

Teste und verbessere responsive Seiten

Eine Seite kann in einem Screenshot korrekt aussehen und dennoch bei einer längeren Überschrift, größerem Text oder einem anderen Eingabegerät versagen. Teste ihre Breiten und Zoomstufen, verfolge überlaufende Boxen und untersuche die Bilder, die sie herunterlädt. Berührungsziele, Bewegungseinstellungen, Farbdesigns und die Druckausgabe vervollständigen die Prüfungen, die dieselben Inhalte unter unterschiedlichen Bedingungen nutzbar machen.

5.1 Finde die Breite, bei der die Seite versagt

Eine responsive Seite muss über einen Bereich hinweg getestet werden, nicht nur auf einigen benannten Geräten. Öffne die responsive Ansicht des Browsers, stelle einen schmalen Viewport von etwa 320px ein und ziehe ihn zu einem breiten Fenster auf. Beobachte dabei Überschriften, Navigation, Karten und Bildränder. Teste unmittelbar unterhalb, genau bei und oberhalb jedes Breakpoints.

Entwicklerwerkzeuge können Viewport-Maße, Gerätepixelverhältnis und Touchbedienung emulieren. Chrome und Edge bieten eine Gerätesymbolleiste; Firefox und Safari bieten responsive Designmodi. Emulation ist nützlich, aber echte Geräte können sich beim Verhalten der Symbolleisten, bei Touchbedienung, Schriftarten und Leistung unterscheiden. Prüfe ein echtes Smartphone und ein Tablet in beiden Ausrichtungen sowie ein Desktopfenster mit veränderter Größe.

Umbruch und vergrößerten Text prüfen

Das WCAG-Erfolgskriterium für Umbruch auf Stufe AA verlangt, dass gewöhnliche Inhalte bei einer Breite von 320 CSS-Pixeln funktionieren, ohne Scrollen in zwei Richtungen zu erfordern. Ein 1280px breiter Viewport bei 400 % Zoom bietet diese Breite. Stelle für eine direkte Prüfung der schmalen Breite einen responsiven Viewport von 320px ein und teste außerdem den tatsächlichen Desktop-Zoom, um zu sehen, wie sich die Seite vergrößert.

Inhalte, die ein zweidimensionales Layout brauchen, etwa eine Datentabelle, eine Karte oder ein Diagramm, dürfen diese Anordnung behalten. Beschränke nötiges seitliches Scrollen auf einen eigenen Bereich. Umliegende Überschriften, Anweisungen und Absätze sollten weiterhin in die Seitenbreite passen.

Nutze realistische Inhalte: eine lange Überschrift, eine URL ohne Umbruch, viele Links und längeren übersetzten Text. Erhöhe auch die Standardschriftgröße des Browsers. Eine Box, die mit einem kurzen Beispiel geräumig wirkte, kann überlaufen, wenn der Text wächst.

Horizontalen Überlauf zurückverfolgen

Eine seitliche Bildlaufleiste oder ein leerer Streifen am rechten Rand bedeutet oft, dass eine Box über den Viewport hinausragt. Untersuche verdächtige Elemente und vergleiche ihre Boxränder mit der Seitengrenze. Umrande sie vorübergehend:

* { outline: 1px solid red; }

Eine Kontur zeigt die Boxen, ohne ihre gemessene Breite zu vergrößern. Suche nach festen Breiten, 100vw-Blöcken, Bildern ohne Breitenbegrenzung, Rasterspuren mit großer Mindestbreite, negativen Außenabständen, langem Text und Codeblöcken.

Stimme die Korrektur auf die Ursache ab:

UrsacheSinnvolle Korrektur
Starre InhaltsbreiteFlexible Breite mit max-width oder min() verwenden
Übergroßes BildBreite begrenzen und automatische Höhe verwenden
Lange URL ohne Umbruchoverflow-wrap: anywhere verwenden
Ein Codeblock oder eine notwendige breite TabelleEigenes Element mit overflow-x: auto ergänzen
Eine Rasterspur mit zu großem MinimumKleineres Minimum für die Rasterspur erlauben

Verbirg den horizontalen Überlauf der ganzen Seite nicht als Abkürzung. body { overflow-x: hidden; } kann die Bildlaufleiste verschwinden lassen, während Inhalt außerhalb der Reichweite der Lesenden bleibt.

Teste bei einer Tabelle mit eigenem Scrollbereich sowohl die Bedienung als auch die Breite. Erreiche das benannte umschließende Element mit der Tastatur und prüfe, ob das horizontale Scrollen jede Spalte sichtbar macht. Gehe dann mit der Tabulatortaste zum nächsten Steuerelement weiter. Die Tabelle kann seitliche Bewegung erfordern, ohne den Absatz darüber oder den Rest der Seite in denselben breiten Scrollbereich zu zwingen.

Untersuche zuletzt Bildanfragen im Netzwerkbereich. Stelle sowohl einen Viewport in Smartphone-Größe als auch ein realistisches hohes Gerätepixelverhältnis ein, lade unter den vorgesehenen Testbedingungen neu und prüfe den gewählten Kandidaten und die Dateigröße. Ein optisch kleines Bild kann dennoch einen großen Download verursachen, wenn sein sizes-Hinweis falsch ist.

Wichtige Erkenntnisse

  • Gehe verschiedene Breiten durch und teste die Grenzen der Breakpoints.
  • Prüfe den Umbruch bei 320 CSS-Pixeln und das tatsächliche Zoomverhalten.
  • Prüfe auf echten Geräten das Verhalten, das eine Emulation nur annähert.
  • Untersuche überlaufende Boxen und behebe die jeweilige Ursache.
  • Prüfe realistische Inhalte und die tatsächlich für Bilder heruntergeladenen Dateien.

5.2 Halte Seiten bei Touchbedienung und verschiedenen Lesereinstellungen nutzbar

Die Breite ist nur ein Teil des responsiven Verhaltens. Ein breites Tablet kann per Touch bedient werden; ein schmales Desktopfenster kann eine Maus nutzen. Seiten müssen auch mit Zoom, größerem Text, unterschiedlichen Ausrichtungen und den bevorzugten Bewegungs- und Farbeinstellungen der Lesenden funktionieren.

Steuerelemente leicht erreichbar machen

Die WCAG 2.2 auf Stufe AA verlangen für die Zielgröße mindestens 24 × 24 CSS-Pixel oder ausreichenden Abstand nach der Abstandsregel, mit Ausnahmen wie Links innerhalb von Sätzen. Das Größenkriterium auf Stufe AAA verwendet 44 × 44 CSS-Pixel, ebenfalls mit Ausnahmen. Größere Navigationslinks mit Innenabstand sind oft bequemer als eine dichte Reihe winziger Beschriftungen.

Bei einer Schriftgröße des Wurzelelements von 16px hat ein Link mit 16px großem Text, line-height: 1.5 und padding: 0.75rem 1rem eine 24px hohe Zeilenbox plus 12px oben und unten: insgesamt 48px Höhe. Mache den Link selbst zur anklickbaren Box mit Innenabstand.

Wichtige Informationen dürfen nicht von Hover abhängen. Halte Aktionen sichtbar oder per Tippen und Tastaturfokus erreichbar. Ergänze optionale Hover-Effekte nur, wenn das hauptsächliche Eingabegerät sie unterstützt:

@media (hover: hover) and (pointer: fine) {
  .card:hover { outline: 2px solid currentColor; }
}

pointer: coarse beschreibt ein ungenaues hauptsächliches Eingabegerät wie einen Finger. any-pointer und any-hover prüfen, ob irgendein angeschlossenes Eingabegerät eine Fähigkeit besitzt; sie stellen nicht fest, dass alle Lesenden es verwenden.

Vergrößerten Text und Drehung unterstützen

Lass Zoom aktiviert und prüfe die Textvergrößerung auf 200 % ohne Verlust von Inhalt oder Funktionen. Verwende schriftbezogene Größen und wachsende Textboxen. min-height lässt eine Box wachsen, wenn ihr Inhalt wächst; bei fester Höhe kann vergrößerter Text in den nächsten Abschnitt hineinragen.

Unterstütze Hoch- und Querformat, sofern nicht eine Ausrichtung für die Tätigkeit wesentlich ist. Smartphones im Querformat können sehr wenig vertikalen Platz haben. Eine Höhenabfrage wie @media (max-height: 30em) kann einen haftenden Kopfbereich mitscrollen lassen, damit er den Inhalt nicht verdeckt.

Einstellungen und Ausgabe berücksichtigen

Nutze prefers-reduced-motion, um große Bewegungen für Lesende zu vermeiden, die weniger Bewegung wünschen. Eine Möglichkeit ist, optionale Animationen innerhalb von @media (prefers-reduced-motion: no-preference) zu platzieren. Du kannst eine vorhandene Animation auch innerhalb einer reduce-Abfrage entfernen.

Kombiniere für ein dunkles Design lesbare Text- und Hintergrundfarben innerhalb von @media (prefers-color-scheme: dark). Prüfe den Kontrast in beiden Designs. color-scheme: light dark lässt vom Browser gezeichnete Steuerelemente und Bildlaufleisten einem passenden Design folgen; es wählt nicht alle Seitenfarben für dich aus.

Eine Regel für reduzierte Bewegung kann nur auf die animierte Komponente zielen:

@media (prefers-reduced-motion: reduce) {
  .banner { animation: none; }
}

Halte die Nachricht selbst verfügbar, wenn die Bewegung entfernt wird. Ändere bei einem dunklen Design Vordergrund und Hintergrund gemeinsam; änderst du nur eines davon, kann Text mit seiner Umgebung verschmelzen. Prüfe auch die Vorschau der Formularsteuerelemente, da vom Browser gezeichnete Steuerelemente von den selbst gestalteten Flächen abweichen können.

Nutze @media print, um Navigation und Schaltflächen auszublenden und dunklen Text auf weißem Hintergrund auszugeben. Gedruckte Links können ihre Ziele mit a[href]::after { content: " (" attr(href) ")"; } anzeigen. Prüfe in der Druckvorschau, ob Inhalte, Hintergründe und Seitenumbrüche lesbar bleiben.

Wichtige Erkenntnisse

  • Lege die Größe des anklickbaren Ziels einschließlich seines Innenabstands fest.
  • Nutze Eingabemerkmale, um Hover und Zeigergenauigkeit zu prüfen.
  • Halte wichtige Inhalte für Touch- und Tastaturbedienung verfügbar.
  • Unterstütze Zoom, wachsende Textboxen und beide Ausrichtungen.
  • Berücksichtige reduzierte Bewegung und teste beide Farbdesigns.
  • Stelle lesbare Druckstile und nützliche Linkziele bereit.

Responsives Webdesign: Beispiele

5 Interaktive Lektionen

1

Erstelle eine flexible Veranstaltungsseite

13 Schritte
Lege den Viewport fest und wähle Größen für eine Veranstaltungsseite, die in schmale Fenster passen und mit vergrößertem Text funktionieren muss.
  1. 1
    EinführungErstelle eine flexible Veranstaltungsseite

    Eine Veranstaltungsseite hat auf einem Smartphone winzigen Text und eine Inhaltsbox, die über den Bildschirm hinausragt. Trenne zunächst die Layoutbreite des Browsers, die durch den Viewport festgelegt wird, von der Größe der Boxen darin. Lass dann das umschließende Element dem verfügbaren Platz folgen und wähle Text- und Höheneinheiten mit sinnvollen Begrenzungen, etwa clamp, damit bei schmalen Fenstern oder vergrößertem Text nichts kaputtgeht. Du prüfst jede Änderung anhand einer bestimmten Ursache, statt mehrere unabhängige Größen gleichzeitig zu ändern.

  2. 2
    ErklärungLies den Viewport in CSS-Pixeln

    Ein Bildschirm mit hoher Pixeldichte bietet keine zusätzliche CSS-Layoutbreite. Hat ein Smartphone bei einem Gerätepixelverhältnis von 3 insgesamt 1080 Gerätepixel in der Breite, entspricht das 360 CSS-Pixeln. Eine Medienabfrage und eine Einheit für die Viewport-Breite verwenden diese CSS-Breite. Die physischen Bildpunkte liefern feinere Details beim Zeichnen von Text und Bildern; sie verwandeln eine schmale Seite nicht in ein Desktoplayout.

  3. 3
    BeispielKorrigiere das breite virtuelle Layout

    Die Veranstaltungsseite enthält keine Viewport-Anweisung, sodass der mobile Browser sie in einem breiten virtuellen Viewport darstellen und das Ergebnis verkleinern kann. Setze dies in das head-Element des Dokuments:

    <meta name="viewport" content="width=device-width, initial-scale=1">
    

    Lade die schmale Vorschau neu. Die Seite verwendet nun die Gerätebreite in CSS-Pixeln und beginnt mit normaler Skalierung. Lass Zoom für Lesende aktiviert, die größeren Text benötigen.

  4. 4
    HerausforderungErkläre das verbleibende seitliche Scrollen

    Nach der Änderung des Viewports sieht der Text normal aus, aber das umschließende Veranstaltungselement hat in einem 360px breiten Viewport weiterhin width: 900px. Warum scrollt die Seite immer noch seitlich?

    ---reveal---

    Das Tag hat den anfänglichen Layout-Viewport des Browsers geändert, nicht die CSS-Breite des umschließenden Elements. Eine 900px breite Box überschreitet weiterhin 360px. Gestalte das umschließende Element fließend und mit einer Obergrenze, damit es auf den tatsächlich verfügbaren Platz der Seite schrumpfen kann.

  5. 5
    BeispielGib dem umschließenden Element Raum zum Schrumpfen

    Ersetze die feste Breite des umschließenden Elements durch eine Box über die volle Breite mit einer Obergrenze:

    .event {
      box-sizing: border-box;
      width: 100%;
      max-width: 68rem;
      padding-inline: 1rem;
      margin-inline: auto;
    }
    

    Das umschließende Element folgt einem schmalen Elternelement, hört aber auf einem breiten Bildschirm auf zu wachsen. Border-box schließt den Innenabstand in die angegebene Breite ein, während automatische Außenabstände in Inline-Richtung die begrenzte Box zentrieren.

  6. 6
    ErklärungWähle eine Bezugsgröße für Text und Abstände

    Belasse die Schriftgröße des Wurzelelements beim Standardwert der Lesenden. Eine 1.25rem große Beschriftung wird bei einer Schriftgröße des Wurzelelements von 16px zu 20px und bei 20px zu 25px. Für den Innenabstand einer Schaltfläche kann em nützlicher sein: padding: 0.5em 1em folgt der eigenen Textgröße der Schaltfläche. In der Eigenschaft font-size selbst folgt em dagegen dem Elternelement. Dieser Unterschied erklärt, warum sich verschachtelte Schriftregeln mit em vervielfachen können.

  7. 7
    TippBegrenze die Absatzbreite anhand der Schrift

    Die Veranstaltungsbeschreibung soll sich auf einem breiten Bildschirm nicht zu einer einzigen sehr langen Zeile ausdehnen. Ergänze max-width: 62ch für ihren Lesebereich. Ein ch misst die Breite der Ziffer „0“ in der Schriftart; das Ergebnis ist also eine sinnvolle schriftbasierte Begrenzung und keine Zusage von genau 62 Zeichen pro Zeile. Prüfe die tatsächliche Schriftart und den Text; in schmalen Fenstern bricht der Absatz weiterhin um, bevor er diese Grenze erreicht.

  8. 8
    HerausforderungErhalte die Proportionen einer Schaltfläche

    Die eigene Schriftgröße einer Schaltfläche steigt von 16px auf 24px. Ihr horizontaler Innenabstand beträgt 0.75em. Was geschieht mit dem Innenabstand auf jeder Seite und warum?

    ---reveal---

    Er steigt von 12px auf 18px, weil em beim Innenabstand der eigenen Schriftgröße der Schaltfläche folgt. So kann der umgebende Abstand mit der Beschriftung wachsen. Ein Innenabstand in rem würde dagegen der Schriftgröße des Wurzelelements folgen und sich bei dieser lokalen Schriftvergrößerung nicht unbedingt ändern.

  9. 9
    ErklärungPasse einen hohen Einstiegsbereich ein

    Der Einstiegsbereich der Veranstaltung soll einen Smartphone-Bildschirm füllen, ohne längeren Text in einer Box mit fester Höhe einzusperren. Verwende min-height: 100svh. Der kleine Viewport steht für den Zustand mit sichtbaren Browser-Symbolleisten; min-height erlaubt dem Abschnitt, über diese Ausgangsgröße hinaus zu wachsen. Das einfache vh folgt dem großen Viewport, während dvh Änderungen der Symbolleisten folgt und die Größe des Abschnitts beim Scrollen ändern kann.

  10. 10
    BeispielBeginne mit einer begrenzten Überschriftengröße

    Probiere für den Veranstaltungstitel:

    .event h1 {
      font-size: clamp(1.5rem, 1rem + 2vw, 2.5rem);
    }
    

    Bei einer Schriftgröße des Wurzelelements von 16px liegen die Grenzen bei 24px und 40px. In einem 600px breiten Viewport beträgt der bevorzugte Wert 16px plus 12px, also 28px. Da 28px innerhalb der Grenzen liegen, verwendet der Browser diesen Wert. So entsteht ein fließender Wechsel ohne eigene Abfrage für jede Größe.

  11. 11
    BeispielWende die Grenzen an beiden Enden an

    Behalte denselben Ausdruck für die Überschrift und die Schriftgröße des Wurzelelements von 16px bei. Bei 300px Breite beträgt der bevorzugte Wert 16px plus 6px, also 22px; deshalb gilt die Untergrenze von 24px. Bei 1600px Breite wären es 48px, also gilt die Obergrenze von 40px. Der mittlere Ausdruck schlägt eine Größe vor; clamp entscheidet, ob dieser Vorschlag innerhalb des erlaubten Bereichs liegt. Die Funktion skaliert nicht alle drei Argumente gemeinsam.

  12. 12
    HerausforderungWähle Einheiten und prüfe die Vergrößerung

    Das umschließende Element der Veranstaltungsseite passt, aber ihr Titel verwendet nur 6vw und wird beim Desktop-Zoom kaum größer. Was solltest du ändern und anschließend testen?

    ---reveal---

    Verwende statt einer reinen Viewport-Größe einen schriftbezogenen Anteil und sinnvolle Grenzen und teste dann die tatsächliche Textvergrößerung. Zoom macht den Viewport in CSS-Pixeln schmaler und verringert so eine Schriftgröße, die nur auf vw beruht. Selbst ein gemischter Ausdruck aus rem und vw braucht eine Zoomprüfung, um zu bestätigen, dass Lesende den Text ausreichend vergrößern können.

  13. 13
    ZusammenfassungPrüfe die flexible Grundlage

    Prüfe drei Bezugsgrößen, bevor du Layoutänderungen ergänzt: Der mobile Viewport verwendet die Gerätebreite, das umschließende Element folgt seinem Elternelement und Textgrößen berücksichtigen eine Schriftgröße als Bezug. Begrenze fließende Werte, wo nötig, und lass Textboxen wachsen. Probiere ein schmales und ein breites Fenster sowie vergrößerten Text aus, bevor du zu zusätzlichen Spalten übergehst.

2

Wandle eine Kartenliste in ein anpassungsfähiges Layout um

14 Schritte
Beginne mit einer schmalen Anordnung untereinander, ergänze sinnvolle Breakpoints und vergleiche explizite und automatische Spalten.

Speichere diese Einheit, um jede Interaktive Lektion Schritt für Schritt durchzugehen.

  1. 1
    EinführungWandle eine Kartenliste in ein anpassungsfähiges Layout um
  2. 2
    ErklärungMache eine Breitenbedingung lesbar
  3. 3
    BeispielKombiniere Bedingungen mit der richtigen Bedeutung
  4. 4
    HerausforderungFinde eine Lücke zwischen Grenzen
  5. 5
    BeispielSchreibe zuerst das schmale Layout
  6. 6
    BeispielErgänze zwei Spalten, wenn sie hineinpassen
  7. 7
    HerausforderungLass die Änderung für größere Breiten maßgeblich sein
  8. 8
    ErklärungLass Grid Spalten automatisch einpassen
  9. 9
    BeispielBerücksichtige Rasterspuren und Abstände zusammen
  10. 10
    KernaussageWähle, wie sich leerer Platz verhält
  11. 11
    HerausforderungHalte das schmale Grid nutzbar
  12. 12
    TippErhalte die Lesereihenfolge
  13. 13
    HerausforderungKombiniere das Verhalten von Seite und Komponente
  14. 14
    ZusammenfassungPrüfe jeden Übergang
3

Verwende eine Karte an verschiedenen Stellen der Seite

10 Schritte
Richte ein lokales umschließendes Abfrageelement ein und kombiniere Container-Einheiten mit seitenweiten Bedingungen.

Speichere diese Einheit, um jede Interaktive Lektion Schritt für Schritt durchzugehen.

  1. 1
    EinführungVerwende eine Karte an verschiedenen Stellen der Seite
  2. 2
    BeispielErstelle das messende Vorfahrenelement
  3. 3
    BeispielÄndere die Karte innerhalb des umschließenden Elements
  4. 4
    HerausforderungKorrigiere eine Selbstabfrage
  5. 5
    TippBenenne die gewünschte Messbox
  6. 6
    ErklärungGestalte eine lokale Überschrift fließend
  7. 7
    HerausforderungFinde die unerwartete Bezugsgröße
  8. 8
    VerbindungTrenne Entscheidungen zur Seite und zu Einstellungen
  9. 9
    HerausforderungWähle Bedingungen für eine wiederverwendbare Karte
  10. 10
    ZusammenfassungUntersuche die Bezugsbox
4

Stelle ein klares Bild ohne großen Download bereit

15 Schritte
Gestalte ein Bild flexibel, bestimme einen Auflösungskandidaten und ergänze bei Bedarf eine Auswahl für Ausschnitt oder Format.

Speichere diese Einheit, um jede Interaktive Lektion Schritt für Schritt durchzugehen.

  1. 1
    EinführungStelle ein klares Bild ohne großen Download bereit
  2. 2
    BeispielHalte das Foto innerhalb seiner Spalte
  3. 3
    ErklärungWähle, was zugeschnitten werden darf
  4. 4
    HerausforderungTrenne Anzeigegröße und Dateigröße
  5. 5
    BeispielBiete tatsächliche Dateibreiten an
  6. 6
    BeispielLies den Bildplatz, bevor du eine Datei auswählst
  7. 7
    TippHalte sizes und CSS im Einklang
  8. 8
    HerausforderungWähle die benötigte Auflösung
  9. 9
    VerbindungNutze Pixeldichtedeskriptoren für das feste Logo
  10. 10
    ErklärungEntscheide, ob sich der Ausschnitt ändern muss
  11. 11
    BeispielSetze den breiten Ausschnitt vor den Ersatz
  12. 12
    HerausforderungKorrigiere die Reihenfolge der Ausschnitte
  13. 13
    ErklärungBiete Formate an, ohne das Motiv zu ändern
  14. 14
    HerausforderungSchließe den Bildplan für den Workshop ab
  15. 15
    ZusammenfassungPrüfe die Box und die Anfrage
5

Teste eine Seite über ihre aufgeräumte Vorschau hinaus

12 Schritte
Verfolge Überläufe und teste Umbruch, Eingabefähigkeiten, Textgröße und Lesereinstellungen.

Speichere diese Einheit, um jede Interaktive Lektion Schritt für Schritt durchzugehen.

  1. 1
    EinführungTeste eine Seite über ihre aufgeräumte Vorschau hinaus
  2. 2
    BeispielGehe die Layoutbreiten durch
  3. 3
    ErklärungPrüfe eine vergrößerte Lesebreite
  4. 4
    BeispielFinde die Box, die über den Rand hinausragt
  5. 5
    HerausforderungHalte einen notwendigen breiten Bereich erreichbar
  6. 6
    BeispielMache den Link selbst groß genug
  7. 7
    KernaussageSchließe nicht von der Breite auf die Eingabe
  8. 8
    HerausforderungPasse einen Bereich an vergrößerten Text an
  9. 9
    ErklärungTeste Bewegung, Designs und Druck
  10. 10
    TippUntersuche Downloads unter den vorgesehenen Bedingungen
  11. 11
    HerausforderungPlane eine abschließende Bedienbarkeitsprüfung
  12. 12
    ZusammenfassungWiederhole die Bedingung, die den Fehler gefunden hat

Responsives Webdesign: Übungsaufgaben

40 Übungsfragen in 4 Sets

Set 1: Grundlagen zu Viewport, Größen und Layout10 Übungsfragen

Frage 1 von 10

Ein Bildschirm ist 824 Gerätepixel breit und hat ein Gerätepixelverhältnis von 2. Welche Breite verwendet CSS für seinen Layout-Viewport, wenn das Viewport-Tag die Gerätebreite anfordert?
  1. 824 CSS-Pixel
  2. 1648 CSS-Pixel
  3. 412 CSS-Pixel
  4. 206 CSS-Pixel
Antwort zeigenAntwort ausblenden
Antwort: C
Teile die Breite in Gerätepixeln durch das Verhältnis: 824 geteilt durch 2 ergibt 412 CSS-Pixel. Wer 824 direkt verwendet, verwechselt physische Bildpunkte mit den Referenzeinheiten, in denen Layout und Breitenabfragen messen.

Frage 2 von 10

Eine mobile Seite erscheint als winziges Desktoplayout. In ihrem head-Element fehlt das Viewport-Meta-Tag und ihre Hauptbox hat width: 880px. Welches Änderungspaar behebt beide Ursachen?
  1. Das Viewport-Tag für die Gerätebreite ergänzen; der Hauptbox eine fließende Breite geben.
  2. Das Viewport-Tag für die Gerätebreite ergänzen; die Hauptbox bei 880px belassen.
  3. Den aktuellen Viewport beibehalten; der Hauptbox eine fließende Breite geben.
  4. maximum-scale auf 1 setzen; der Hauptbox eine fließende Breite geben.
Antwort zeigenAntwort ausblenden
Antwort: A
Das Viewport-Tag verhindert, dass das breite virtuelle Layout auf Smartphone-Größe verkleinert wird. Eine fließende Hauptbox passt dann in die tatsächlich verfügbare Breite. Das Tag allein lässt die 880px breite Box zu groß und eine Zoom-Beschränkung behebt keine der beiden Größenursachen.

Frage 3 von 10

Ein Bereich hat width: 60% in einem 450px breiten umschließenden Block. Der Bereich hat weder Innenabstand noch Rahmen. Wie breit ist er?
  1. 180px
  2. 450px
  3. 750px
  4. 270px
Antwort zeigenAntwort ausblenden
Antwort: D
Eine prozentuale Breite nimmt den angegebenen Anteil des umschließenden Blocks ein: 60 % von 450px sind 270px. Die verbleibenden 180px sind der ungenutzte Anteil, nicht die Breite des Bereichs. Ohne Innenabstand oder Rahmen kommt keine zusätzliche Breite durch das Boxmodell hinzu.

Frage 4 von 10

Die Schriftgröße des Wurzelelements beträgt 18px. Eine Schaltfläche erbt von ihrem Elternelement eine Schriftgröße von 20px, setzt font-size: 1.25em und hat padding-inline: 0.8em. Wie groß ist ihr horizontaler Innenabstand auf jeder Seite?
  1. 16px
  2. 20px
  3. 18px
  4. 14,4px
Antwort zeigenAntwort ausblenden
Antwort: B
Zunächst wird die Schrift der Schaltfläche 25px groß, weil em bei font-size das Elternelement als Bezug nimmt: 20 mal 1,25. em beim Innenabstand nimmt dann die eigene Schriftgröße der Schaltfläche als Bezug, also 25 mal 0,8 = 20px pro Seite. Wer direkt 20px als Bezug für den Innenabstand verwendet, übersieht die Änderung der Schriftgröße der Schaltfläche.

Frage 5 von 10

Ein Hero-Bereich muss mindestens so hoch wie der kleine mobile Viewport sein und wachsen, wenn sein Text mehr Höhe braucht. Welche Deklaration passt?
  1. height: 100svh
  2. min-height: 100svh
  3. min-height: 100lvh
  4. height: 100dvh
Antwort zeigenAntwort ausblenden
Antwort: B
Die Einheit des kleinen Viewports steht für den Zustand mit sichtbaren mobilen Symbolleisten und min-height erlaubt zusätzliche Höhe für den Inhalt. Eine feste Höhe von 100svh nutzt zwar die richtige Viewport-Bezugsgröße, kann die Box aber nicht wachsen lassen, um längeren Text aufzunehmen.

Frage 6 von 10

Die Schriftgröße des Wurzelelements beträgt 18px und der Viewport ist 900px breit. Welche Schriftgröße ergibt sich aus clamp(1rem, 1rem + 1vw, 1.4rem)?
  1. 25,2px
  2. 27px
  3. 18px
  4. 32,4px
Antwort zeigenAntwort ausblenden
Antwort: A
Der bevorzugte Wert beträgt 18px plus 9px, also 27px. Das Maximum beträgt das 1,4-Fache von 18px, also 25,2px; daher gilt das Maximum. Wer 27px angibt, berechnet den mittleren Ausdruck, vergisst aber, die Obergrenze anzuwenden.

Frage 7 von 10

Trifft (min-width: 760px) bei einer Viewport-Breite von genau 760px zu?
  1. Nein, weil die Breite größer als 760px sein muss.
  2. Nur wenn auch eine max-width-Bedingung vorhanden ist.
  3. Nur wenn das Stylesheet die Wurzelgröße in Pixeln festlegt.
  4. Ja, weil der Mindestgrenzwert eingeschlossen ist.
Antwort zeigenAntwort ausblenden
Antwort: D
Eine min-width-Bedingung schließt den angegebenen Schwellenwert ein und trifft daher bei 760px ebenso wie darüber zu. Wer die Grenze als strikt größer behandelt, verwechselt min-width mit einem Größer-als-Vergleich wie width > 760px.

Frage 8 von 10

Ein Browser hat eine anfängliche Schriftgröße von 20px. Das Stylesheet setzt html { font-size: 12px; }. Ab welcher Viewport-Breite trifft (min-width: 36em) zu?
  1. 432px
  2. 576px
  3. 720px
  4. 864px
Antwort zeigenAntwort ausblenden
Antwort: C
em-Einheiten in Medienabfragen verwenden die anfängliche Browserschriftgröße, also liegt der Schwellenwert bei 36 mal 20px = 720px. Die Multiplikation mit der von der erstellenden Person festgelegten Wurzelgröße von 12px ergibt 432px, aber eine HTML-font-size-Deklaration legt die Bezugsgröße für diese Abfrage nicht fest.

Frage 9 von 10

Ein Grid hat im Grundlayout eine Spalte. Eine Abfrage bei 62em legt drei Spalten fest, gefolgt von einer späteren Abfrage bei 42em, die zwei Spalten festlegt. Beide verwenden .items mit gleicher Spezifität in derselben Ebene. Was erscheint bei 70em?
  1. Drei Spalten, weil der größere Schwellenwert eine höhere Spezifität hat.
  2. Eine Spalte, weil sich überlappende Mindestbreitenabfragen aufheben.
  3. Drei Spalten, weil ein Browser Abfragen nach ihrem Schwellenwert sortiert.
  4. Zwei Spalten, weil beide Abfragen zutreffen und die spätere Regel gilt.
Antwort zeigenAntwort ausblenden
Antwort: D
Bei 70em sind beide Mindestbreitenbedingungen erfüllt. Ihre Selektoren sind gleich spezifisch, daher setzt sich die spätere Deklaration für zwei Spalten durch. Ein größerer Schwellenwert macht den Selektor nicht spezifischer; ordne Änderungen mit aufsteigenden Mindestbreiten aufsteigend an, wenn sie miteinander konkurrieren.

Frage 10 von 10

Vier flexible Karten brechen in eine volle Zeile mit drei Karten und eine letzte Zeile mit einer Karte um. Jede hat flex: 1 1 14rem. Warum kann die letzte Karte breiter sein?
  1. Die letzte Karte erbt eine größere Schriftgröße des Wurzelelements.
  2. Der Flex-Zeilenumbruch behält leere Spalten in der letzten Zeile bei.
  3. Jede Flex-Zeile verteilt ihre eigene verbleibende Breite.
  4. Die letzte Karte ignoriert die angegebene Breite des Containers.
Antwort zeigenAntwort ausblenden
Antwort: C
Flexbox verteilt freie Breite in jeder Zeile getrennt. Eine einzelne wachsende Karte kann den verfügbaren Platz der letzten Zeile einnehmen, während sich drei Karten die vorherige Zeile teilen. Der Flex-Zeilenumbruch behält keine leeren Rasterspuren bei; nutze Grid, wenn die Spalten über Zeilen hinweg ausgerichtet sein sollen.
Set 2: Breakpoints, Container und bedienbare Steuerelemente10 Übungsfragen

Speichere diese Einheit, um jede Antwort zu sehen und jedes Set zu üben.

Frage 1 von 10

Ein Viewport kann beim Zoomen 679,5px breit sein. Welche Grenzregelung ordnet jede Breite genau einem von zwei breitenbasierten Layouts zu?
  1. Verwende (max-width: 679px) und (min-width: 680px).
  2. Verwende (width < 680px) und (width >= 680px).
  3. Verwende (max-width: 680px) und (min-width: 680px).
  4. Verwende (width <= 680px) und (width > 681px).
Antwort zeigenAntwort ausblenden

Speichere diese Einheit, um diese Antwort zu sehen.

Frage 2 von 10

Eine Navigationszeile bricht bei manchen Breiten ungünstig um. Was sollte bestimmen, wo sich ihr Layout ändert?
  1. Die häufigste Smartphone-Breite in einer Liste von Gerätevoreinstellungen.
  2. Die Breite, bei der alle Bilder der Seite vollständig heruntergeladen sind.
  3. Die Anzahl physischer Pixel in den technischen Daten des Bildschirms.
  4. Die Breite, bei der die tatsächlichen Links eine andere Anordnung brauchen.
Antwort zeigenAntwort ausblenden

Speichere diese Einheit, um diese Antwort zu sehen.

Frage 3 von 10

Ein Grid verwendet repeat(auto-fit, minmax(14rem, 1fr)) mit einem Abstand von 1rem. Die Schriftgröße des Wurzelelements beträgt 16px, es gibt viele Elemente und die Inhaltsbreite beträgt 920px. Wie viele Spalten passen hinein?
  1. Zwei Spalten
  2. Drei Spalten
  3. Vier Spalten
  4. Fünf Spalten
Antwort zeigenAntwort ausblenden

Speichere diese Einheit, um diese Antwort zu sehen.

Frage 4 von 10

Ein Kartenraster kann in einer 190px breiten Seitenleiste oder einem 1000px breiten Hauptbereich stehen. Es verwendet repeat(auto-fit, minmax(16rem, 1fr)). Bei einer Schriftgröße des Wurzelelements von 16px läuft es in der Seitenleiste über und zwei Karten im Hauptbereich sollen sich über ihre Zeile ausdehnen. Welche Regel für die Rasterspuren erfüllt beides?
  1. repeat(auto-fit, minmax(min(16rem, 100%), 1fr))
  2. repeat(auto-fill, minmax(16rem, 1fr))
  3. repeat(auto-fit, minmax(16rem, 16rem))
  4. repeat(auto-fill, minmax(min(16rem, 100%), 1fr))
Antwort zeigenAntwort ausblenden

Speichere diese Einheit, um diese Antwort zu sehen.

Frage 5 von 10

Welche Deklaration für ein umschließendes Element ermöglicht Container-Abfragen zur Breite und lässt bei horizontaler Schreibrichtung die Höhe dem Inhalt folgen?
  1. container-type: normal
  2. container-type: size
  3. container-type: inline-size
  4. container-name: inline-size
Antwort zeigenAntwort ausblenden

Speichere diese Einheit, um diese Antwort zu sehen.

Frage 6 von 10

Eine Karte hat container-type: inline-size. Innerhalb von @container (width >= 24rem) wechselt .card zu zwei Spalten, aber die Karte ändert sich nie. Es gibt keinen geeigneten übergeordneten Container und die Karte steht an einer schrumpfenden Stelle im Flex-Layout. Welche Korrektur lässt die Abfrage zuverlässig funktionieren?
  1. Den Typ auf der Karte belassen und der Abfrage einen Containernamen geben.
  2. Den Typ auf die Karte setzen und die Abfrage zu max-width ändern.
  3. Den Typ auf ein wachsendes umschließendes Element setzen und die innere Karte abfragen.
  4. Den Typ auf ein umschließendes Inline-Element setzen, dessen Breite nur vom Inhalt kommt.
Antwort zeigenAntwort ausblenden

Speichere diese Einheit, um diese Antwort zu sehen.

Frage 7 von 10

Eine Überschrift verwendet 5cqi innerhalb eines geeigneten 460px breiten Containers bei horizontaler Schreibrichtung. Der Viewport ist 1380px breit. Wie groß ist ihre berechnete Schriftgröße vor weiteren Begrenzungen?
  1. 23px
  2. 69px
  3. 46px
  4. 13,8px
Antwort zeigenAntwort ausblenden

Speichere diese Einheit, um diese Antwort zu sehen.

Frage 8 von 10

Ein Bild mit 1500 × 1000 hat passende HTML-Größenattribute und das CSS max-width: 100%; height: auto. Sein Container ist 450px breit. Welche angezeigten Maße erhalten seine Proportionen?
  1. 450 × 1000 CSS-Pixel
  2. 450 × 300 CSS-Pixel
  3. 1500 × 1000 CSS-Pixel
  4. 450 × 450 CSS-Pixel
Antwort zeigenAntwort ausblenden

Speichere diese Einheit, um diese Antwort zu sehen.

Frage 9 von 10

Bei 320px enthält eine Seite einen lesbaren Absatz mit einer langen URL und eine tatsächlich zweidimensionale Ergebnistabelle. Sowohl die URL als auch die Tabelle verbreitern die ganze Seite. Welche Korrektur erhält den Zugang zu beiden?
  1. Den horizontalen Überlauf der Seite verbergen und beide Boxen in ihrer Breite belassen.
  2. Absatz und Tabelle auf 320px festlegen und ihren Überlauf verbergen.
  3. Die ganze Seite in einen horizontalen Scrollbereich setzen und ihr breites Layout erhalten.
  4. Umbrüche in der URL erlauben und die Tabelle in einen benannten, per Tastatur erreichbaren Scrollbereich setzen.
Antwort zeigenAntwort ausblenden

Speichere diese Einheit, um diese Antwort zu sehen.

Frage 10 von 10

Ein großes Tablet wird vorrangig per Touch bedient und meldet hover: none und pointer: coarse. Wie sollten wichtige Details einer Karte bereitgestellt werden?
  1. Nur bei Hover anzeigen, weil der Viewport des Tablets breit ist.
  2. Nur anzeigen, wenn das Tablet ins Querformat gedreht wird.
  3. Sichtbar oder durch Tippen und Tastaturfokus erreichbar halten.
  4. Verbergen, bis eine any-pointer: fine-Abfrage zutrifft.
Antwort zeigenAntwort ausblenden

Speichere diese Einheit, um diese Antwort zu sehen.

Set 3: Bilddateien, Ausschnitte und Anzeigeboxen10 Übungsfragen

Speichere diese Einheit, um jede Antwort zu sehen und jedes Set zu üben.

Frage 1 von 10

Ein Diagramm muss in ein festes rechteckiges Vorschaubild passen, ohne dass Teile seines Inhalts verloren gehen. Welcher object-fit-Wert eignet sich?
  1. contain
  2. cover
  3. fill
  4. none
Antwort zeigenAntwort ausblenden

Speichere diese Einheit, um diese Antwort zu sehen.

Frage 2 von 10

Die Bilder einer Seite sehen auf Smartphones klein aus, laden aber weiterhin riesige Dateien herunter. Sie haben bereits max-width: 100%; height: auto. Welche zusätzliche Änderung verringert die Downloadgröße?
  1. Die CSS-Eigenschaft max-width von 100 % auf 80 % verringern.
  2. Die HTML-Attribute width und height entfernen.
  3. Kleinere Dateien über HTML für responsive Bilder anbieten.
  4. object-fit bei jedem Bild auf contain setzen.
Antwort zeigenAntwort ausblenden

Speichere diese Einheit, um diese Antwort zu sehen.

Frage 3 von 10

Ein Bild wird auf einem Bildschirm mit dem Verhältnis 2 genau 340 CSS-Pixel breit angezeigt. Die Kandidaten sind 400w, 700w und 1400w. Der Browser wählt angenommen den kleinsten Kandidaten, der den Pixeldichte-Zielwert erfüllt, ohne Anpassung für Cache oder Netzwerk. Welche Dateibreite wird gewählt?
  1. 400 Pixel
  2. 680 Pixel
  3. 1400 Pixel
  4. 700 Pixel
Antwort zeigenAntwort ausblenden

Speichere diese Einheit, um diese Antwort zu sehen.

Frage 4 von 10

Der Browserstandardwert beträgt 16px. Ein Bild hat sizes="(min-width: 54em) 40vw, 100vw" und die Kandidaten 600w, 1000w und 1800w. Bei einem 1000px breiten Viewport und dem Verhältnis 2 wird angenommen der kleinste Kandidat gewählt, der den Pixeldichte-Zielwert erfüllt. Welche Dateibreite ergibt sich?
  1. 600 Pixel
  2. 1000 Pixel
  3. 1800 Pixel
  4. 800 Pixel
Antwort zeigenAntwort ausblenden

Speichere diese Einheit, um diese Antwort zu sehen.

Frage 5 von 10

CSS gibt einem Foto einen 48vw breiten Platz, aber seine HTML-Angabe mit Breitendeskriptoren enthält sizes="100vw". Welches Ladeproblem ist wahrscheinlich?
  1. Der Browser muss das Foto trotz CSS mit 100vw anzeigen.
  2. Der Browser muss jeden Kandidaten mit Breitendeskriptor ablehnen.
  3. Der Browser kann einen unnötig großen Kandidaten wählen.
  4. Der Browser kann das Foto auf die Hälfte seines Bildaufbaus zuschneiden.
Antwort zeigenAntwort ausblenden

Speichere diese Einheit, um diese Antwort zu sehen.

Frage 6 von 10

Der Standardwert beträgt 16px. Ein Bild verwendet sizes="(min-width: 38em) 100vw, (min-width: 66em) 45vw, 100vw". Bei 1152px und dem Verhältnis 2 stehen die Kandidaten 640w, 1280w und 2560w zur Verfügung. Was geschieht nach der Regel zur Auswahl des kleinsten ausreichenden Kandidaten?
  1. Die erste Bedingung gilt und der Kandidat 2560w wird gewählt.
  2. Der größere zutreffende Schwellenwert gilt und der Kandidat 1280w wird gewählt.
  3. Die erste Bedingung gilt und der Kandidat 1280w wird gewählt.
  4. Der letzte Ersatzwert gilt und der Kandidat 2560w wird gewählt.
Antwort zeigenAntwort ausblenden

Speichere diese Einheit, um diese Antwort zu sehen.

Frage 7 von 10

Wo sollte der Alternativtext innerhalb eines picture-Elements geschrieben werden?
  1. An jedem source-Element.
  2. Am picture-Element selbst.
  3. Nur an der ersten passenden source.
  4. Am erforderlichen img-Element.
Antwort zeigenAntwort ausblenden

Speichere diese Einheit, um diese Antwort zu sehen.

Frage 8 von 10

Der Browserstandardwert beträgt 16px. Ein picture bietet zuerst eine Quelle mit 34em Mindestbreite, den Kandidaten 600w/1200w und sizes="50vw" an, dann eine 68em-Quelle mit den Kandidaten 1600w/2400w und sizes="100vw", dann img. Beide Formate werden unterstützt. Welche Quelle und Datei ergeben sich bei 1152px und dem Verhältnis 2 nach der Auswahl des kleinsten ausreichenden Kandidaten?
  1. Die zweite Quelle und ihre 2400w-Datei.
  2. Die erste Quelle und ihre 1200w-Datei.
  3. Die erste Quelle und ihre 600w-Datei.
  4. Die zweite Quelle und ihre 1600w-Datei.
Antwort zeigenAntwort ausblenden

Speichere diese Einheit, um diese Antwort zu sehen.

Frage 9 von 10

Ein picture bietet AVIF, dann WebP und dann ein JPEG-img an. Es gibt keine Medienbedingungen. Ein Browser unterstützt WebP und JPEG, aber nicht AVIF. Was wählt er?
  1. Das src des JPEG-img.
  2. Die WebP-Quelle.
  3. Die AVIF-Quelle.
  4. WebP und JPEG.
Antwort zeigenAntwort ausblenden

Speichere diese Einheit, um diese Antwort zu sehen.

Frage 10 von 10

Nach dem Verbreitern eines Testfensters ist ein großes responsives Bild im Cache. Beim Verschmälern des Fensters wird weiterhin diese Datei verwendet. Welche Schlussfolgerung ist sinnvoll?
  1. Der Browser muss jede sizes-Bedingung ignoriert haben.
  2. Ein Bild mit Breitendeskriptoren kann sich nach einer Fensteränderung nicht anpassen.
  3. Die CSS-Breite des Bildes muss weiterhin dem breiteren Viewport entsprechen.
  4. Ein größerer Kandidat aus dem Cache kann wiederverwendet werden; teste mit kontrolliertem Cache erneut.
Antwort zeigenAntwort ausblenden

Speichere diese Einheit, um diese Antwort zu sehen.

Set 4: Untersuche responsive Seiten unter verschiedenen Bedingungen10 Übungsfragen

Speichere diese Einheit, um jede Antwort zu sehen und jedes Set zu üben.

Frage 1 von 10

Ein umschließendes content-box-Element hat width: 100% innerhalb eines 370px breiten Elternelements sowie links und rechts je 20px Innenabstand, aber keinen Rahmen. Welche Änderung lässt das umschließende Element bei gleichem Innenabstand in das Elternelement passen?
  1. content-box beibehalten, weil die Gesamtbreite bereits 370px beträgt.
  2. border-box verwenden, sodass die Gesamtbreite des Elements 410px beträgt.
  3. content-box beibehalten und automatische Inline-Außenabstände gegen den Überlauf ergänzen.
  4. border-box verwenden, sodass die Gesamtbreite des Elements 370px beträgt.
Antwort zeigenAntwort ausblenden

Speichere diese Einheit, um diese Antwort zu sehen.

Frage 2 von 10

Eine Seitenleiste ist innerhalb eines 1440px breiten Viewports 240px breit. Ihr Textbereich verwendet width: 30vw; height: 8rem. Wird der Text vergrößert, überlappt er den nächsten Bereich. Welche Korrektur behebt beide sichtbaren Fehler?
  1. Die viewportbezogene Breite beibehalten und height durch min-height ersetzen.
  2. Eine elternbezogene Breite verwenden und die feste Höhe von 8rem beibehalten.
  3. Eine elternbezogene Breite verwenden und die Höhe mit dem Inhalt wachsen lassen.
  4. Eine kleinere viewportbezogene Breite verwenden und den gesamten Überlauf verbergen.
Antwort zeigenAntwort ausblenden

Speichere diese Einheit, um diese Antwort zu sehen.

Frage 3 von 10

Diese Regeln stehen mit gleicher Spezifität in einer Ebene. Welche Schriftgröße gilt bei einem 900px breiten Viewport?

@media (min-width: 700px) { .title { font-size: 2rem; } }
.title { font-size: 1.2rem; }
  1. 1,2rem
  2. 2rem
  3. 3,2rem
  4. Die anfängliche Schriftgröße des Browsers.
Antwort zeigenAntwort ausblenden

Speichere diese Einheit, um diese Antwort zu sehen.

Frage 4 von 10

Der Browserstandardwert und die Schriftgröße des Wurzelelements betragen 16px. Bei einem 928px breiten Viewport ist ein umschließendes Seitenelement 540px breit. Eine 52em-Abfrage gibt ihm eine 18rem breite Seitenleiste, einen Abstand von 1rem und eine Hauptspalte mit minmax(0, 1fr). Das Haupt-Grid verwendet repeat(auto-fit, minmax(16rem, 1fr)) und eine Karten-URL misst ohne Umbruch 620px bei overflow-wrap: normal. Welche zwei Änderungen lassen den Hauptinhalt passen, ohne die Seitenleiste zu ändern?
  1. Den Breakpoint der Seitenleiste zu einer größeren Breite verschieben und die starren Regeln für Rasterspur und URL beibehalten.
  2. Ein schrumpfbares Rasterspurminimum und Umbrüche innerhalb des URL-Texts erlauben.
  3. Den Überlauf des body-Elements verbergen und die starren Regeln für Rasterspur und URL beibehalten.
  4. Ein schrumpfbares Rasterspurminimum erlauben, aber den URL-Text ohne Umbruch belassen.
Antwort zeigenAntwort ausblenden

Speichere diese Einheit, um diese Antwort zu sehen.

Frage 5 von 10

Die Schriftgröße des Wurzelelements beträgt 16px. Ein 520px breites umschließendes Element namens panel enthält einen 280px breiten inline-size-Container, der eine Karte enthält. Beide Vorfahrenelemente sind geeignet. Eine unbenannte Abfrage bei 26rem gestaltet die Karte. Was geschieht und wie kann sie gezielt die äußere Breite verwenden?
  1. Sie trifft bereits zu; unbenannte Abfragen nutzen immer das breiteste Vorfahrenelement.
  2. Sie bleibt falsch; benenne den inneren Container panel und behalte seine Breite von 280px bei.
  3. Sie trifft bereits zu; 26rem werden aus der Kartenbreite von 280px berechnet.
  4. Sie bleibt falsch; benenne die Abfrage panel, damit sie das 520px breite Vorfahrenelement misst.
Antwort zeigenAntwort ausblenden

Speichere diese Einheit, um diese Antwort zu sehen.

Frage 6 von 10

Eine wiederverwendbare Produktkachel erscheint in beiden Seitenspalten. Sie soll die Bildplatzierung je nach ihrem eigenen Platz ändern, während eine große Animation reduzierte Bewegung berücksichtigen soll. Welche Gestaltung ordnet jede Entscheidung der richtigen Bedingung zu?
  1. Eine Viewport-Breitenabfrage für die Platzierung und eine Container-Abfrage für Bewegung verwenden.
  2. Eine Viewport-Breitenabfrage sowohl für Platzierung als auch für reduzierte Bewegung verwenden.
  3. Eine Container-Größenabfrage für die Platzierung und eine Medienabfrage für Bewegung verwenden.
  4. Eine Container-Breitenabfrage sowohl für Platzierung als auch für reduzierte Bewegung verwenden.
Antwort zeigenAntwort ausblenden

Speichere diese Einheit, um diese Antwort zu sehen.

Frage 7 von 10

Ein Foto füllt ein umschließendes Element, dessen umschließender Block sich über einen 1440px breiten Viewport erstreckt. Das Element hat width: 100%; max-width: 48rem ohne Innenabstand und die Schriftgröße des Wurzelelements beträgt 16px. Der Bildhinweis lautet sizes="50vw"; das Verhältnis ist 2 und die Kandidaten sind 800w, 1500w und 2000w. Welche Korrektur und Dateiauswahl passen bei Auswahl des kleinsten ausreichenden Kandidaten zum tatsächlichen Bildplatz?
  1. Den Hinweis von 720px beibehalten; der tatsächliche Platz braucht nur die 1500w-Datei.
  2. Bei dieser Breite einen Hinweis von 768px verwenden; der Zielwert braucht die 2000w-Datei.
  3. Bei dieser Breite einen Hinweis von 768px verwenden; der Zielwert braucht die 1500w-Datei.
  4. Bei dieser Breite einen Hinweis von 1440px verwenden; der Zielwert braucht die 2000w-Datei.
Antwort zeigenAntwort ausblenden

Speichere diese Einheit, um diese Antwort zu sehen.

Frage 8 von 10

Ein breiter Ausschnitt zeigt zwei Radfahrende, der Ausschnitt für Smartphones aber nur eine Person. Das img hat den Alternativtext „Zwei Radfahrende überqueren eine Brücke.“ Was sollte geändert werden?
  1. Die Ausschnitte und die gemeinsame Alternativbeschreibung zum sichtbaren Motiv passend gestalten.
  2. Der Quelle für Smartphones ein eigenes alt geben und die img-Beschreibung unverändert lassen.
  3. Den vorhandenen Alternativtext vom img auf das picture-Element verschieben.
  4. Das erforderliche img entfernen und jede source ihren eigenen Alternativtext anzeigen lassen.
Antwort zeigenAntwort ausblenden

Speichere diese Einheit, um diese Antwort zu sehen.

Frage 9 von 10

Ein 1440px breiter Layout-Viewport wird auf 300 % vergrößert. Wie groß ist seine resultierende Breite ungefähr in CSS-Pixeln?
  1. 4320 CSS-Pixel
  2. 1140 CSS-Pixel
  3. 480 CSS-Pixel
  4. 720 CSS-Pixel
Antwort zeigenAntwort ausblenden

Speichere diese Einheit, um diese Antwort zu sehen.

Frage 10 von 10

Auf einem niedrigen Touchscreen im Querformat verdeckt ein haftender Kopfbereich einen großen Teil der Seite und wichtige Menüdetails erscheinen nur bei Hover. Eine lesende Person hat außerdem reduzierte Bewegung angefordert. Welcher Plan berücksichtigt alle drei Bedingungen?
  1. Eine Bedingung für schmale Breiten nutzen, um den Kopfbereich zu verkleinern, Hover zu ergänzen und Bewegung zu stoppen.
  2. Bedingungen für Höhe, Eingabe und Bewegung für die jeweiligen Anpassungen nutzen.
  3. Eine Container-Abfrage nutzen, um den Kopfbereich zu verkleinern und Hover- und Bewegungseinstellungen abzuleiten.
  4. Bedingungen für Höhe und Hover nutzen und Animation bei breitem Viewport aktivieren.
Antwort zeigenAntwort ausblenden

Speichere diese Einheit, um diese Antwort zu sehen.

Hängst du bei deiner eigenen Aufgabe fest? Hausaufgabenhilfe

Schlüsselbegriffe

74 Schlüsselbegriffe, jeweils mit Definition

A

Abfragecontainer
Ein Abfragecontainer ist ein Vorfahrenelement, das für die Größenmerkmale freigegeben wurde, die eine Container-Regel für seine Nachfahrenelemente messen muss.
Ein umschließendes Element mit container-type: inline-size kann einer Karte darin Informationen über die Breite liefern.
Alternativtext
Alternativtext ist das Textäquivalent an einem img-Element, das Zweck oder Inhalt des Bildes vermittelt, wenn das Bild nicht wahrgenommen werden kann.
Eine alt-Beschreibung muss für jeden Ausschnitt zutreffen, den das umgebende picture auswählen kann.
Art Direction
Art Direction wählt für eine Anzeigebedingung einen anderen Bildaufbau oder Ausschnitt, damit das wichtige Motiv bei der gewählten Größe deutlich bleibt.
Ein Smartphone erhält einen engen Ausschnitt einer auftretenden Person, während ein breites Fenster die Person und die Bühne zeigt.
Auflösungswechsel
Beim Auflösungswechsel werden Versionen desselben Bildes in unterschiedlichen Pixelgrößen angeboten, damit ein Browser passende Bilddetails für die Anzeige wählen kann.
Ein Bildschirm mit dem Verhältnis 2 kann eine größere Datei erhalten, ohne den Ausschnitt oder die CSS-Box des Fotos zu ändern.
auto-fill
Das Grid-Wiederholungsschlüsselwort auto-fill behält die passenden Rasterspuren bei, auch wenn einige leer sind, und erhält so ungenutzte Spaltenpositionen in der Zeile.
Zwei Karten können schmaler bleiben, weil auto-fill Platz für zusätzliche leere Rasterspuren reserviert.
auto-fit
Das Grid-Wiederholungsschlüsselwort auto-fit erzeugt so viele Rasterspuren, wie hineinpassen, und lässt ungenutzte Spuren zusammenfallen, sodass belegte Spuren deren Platz teilen können.
Zwei Karten können sich über eine breite Zeile ausdehnen, wenn auto-fit die leeren Rasterspuren der Zeile zusammenfallen lässt.

B

Bereichssyntax
Die Bereichssyntax drückt Medien- oder Containergrößenbedingungen mit Vergleichsoperatoren aus und macht eingeschlossene und ausgeschlossene Grenzen ausdrücklich sichtbar.
Die Bedingung (600px <= width < 900px) schließt 600px ein, aber 900px aus.
Berührungsziel
Ein Berührungsziel ist der anklickbare oder antippbare Bereich eines Steuerelements einschließlich seines aktiven Innenabstands, der für die Bedienung groß genug sein oder genügend Abstand haben muss.
Innenabstand am Link selbst erzeugt ein größeres Ziel als nicht anklickbarer Platz um seinen Text.
Breakpoint
Ein Breakpoint ist ein Schwellenwert, bei dem eine bedingte Regel ein Layout oder einen Stil ändert, weil der Inhalt eine andere Anordnung braucht.
Eine Navigationszeile erhält einen Breakpoint dort, wo ihre vollständigen Beschriftungen nicht mehr bequem in eine Zeile passen.
Breitendeskriptor
Ein Breitendeskriptor gibt die tatsächliche Breite eines Bildkandidaten in Quellpixeln mit der Endung w an; er legt nicht die Anzeigebreite in CSS fest.
Der Deskriptor 900w ist nur korrekt, wenn die angebotene Kandidatendatei tatsächlich 900 Pixel breit ist.

C

ch
Ein ch ist eine Länge, die der Vorschubbreite der Ziffer „0“ in der aktuellen Schriftart entspricht, und wird oft zur Begrenzung der Zeilenlänge eines Absatzes verwendet.
Ein auf 65ch begrenzter Artikel bleibt in einem breiten Fenster lesbar, ohne eine genaue Zeichenzahl festzulegen.
clamp()
Die Funktion clamp() begrenzt eine bevorzugte Größe durch ein Minimum und ein Maximum und lässt sie innerhalb dieser Grenzen stufenlos variieren.
Eine Überschrift kombiniert rem und vw in clamp(), sodass sie innerhalb sinnvoller Grenzen mit dem Fenster wachsen kann.
contain
Der object-fit-Wert contain hält das gesamte Bild innerhalb einer Box mit festgelegter Größe sichtbar und erhält seine Proportionen; falls nötig, bleibt leerer Platz.
Ein Diagramm verwendet contain, damit alle Beschriftungen sichtbar bleiben, selbst wenn seine Form vom Vorschaubild abweicht.
Container-Abfrageeinheit
Eine Container-Abfrageeinheit ist eine Länge, die auf einem Prozent der Größe eines geeigneten übergeordneten Containers in einem bestimmten Maß beruht.
Eine Überschrift mit 5cqi wächst, wenn das umschließende Element ihrer Karte breiter wird, selbst wenn der Viewport unverändert bleibt.
Container-Größenabfrage
Eine Container-Größenabfrage wendet Stile auf Nachfahrenelemente an, wenn ein geeigneter übergeordneter Container eine Bedingung zu seinen Maßen erfüllt.
Zwei Karten auf derselben Seite können unterschiedliche Anordnungen nutzen, weil ihre umschließenden Elemente unterschiedlich breit sind.
Containername
Ein Containername bezeichnet einen übergeordneten Container, sodass eine Abfrage ihn statt des nächstgelegenen geeigneten unbenannten Containers ansprechen kann.
@container sidebar (width >= 30rem) sucht nach einem geeigneten Vorfahrenelement namens sidebar.
cover
Der object-fit-Wert cover füllt eine Bildbox mit festgelegter Größe unter Beibehaltung der Quellproportionen und schneidet Teile ab, die über die Box hinausragen.
Ein Kursfoto füllt mit cover ein Vorschaubild im Verhältnis 4:3, sodass Inhalte an seinen Rändern verschwinden können.
cqb
Ein cqb ist ein Prozent der Blockgröße eines geeigneten übergeordneten Containers und entspricht bei horizontaler Schreibrichtung einem Prozent seiner Höhe.
Eine Einheit für die Blockgröße braucht einen Container, der für diese Richtung geeignet ist, nicht nur einen inline-size-Container.
cqi
Ein cqi ist ein Prozent der Inline-Größe des nächstgelegenen geeigneten übergeordneten Containers und entspricht bei horizontaler Schreibrichtung einem Prozent seiner Breite.
Innerhalb eines geeigneten 500px breiten Containers ergibt 4cqi eine bevorzugte Schriftgröße von 20px.
cqmin und cqmax
Die Einheiten cqmin und cqmax verwenden für proportionale Größen jeweils ein Prozent des kleineren beziehungsweise größeren geeigneten Containermaßes.
Eine Länge in cqmin folgt dem kleineren Bezugsmaß, wenn die beiden Maße unterschiedlich sind.
CSS nach dem Desktop-First-Prinzip
CSS nach dem Desktop-First-Prinzip beginnt mit Grundstilen für breite Bildschirme und ändert oder widerruft sie mit Abfragen nach Maximalbreiten, wenn der Viewport schmaler wird.
Eine Desktop-First-Zeile wechselt innerhalb einer max-width-Abfrage für kleinere Fenster zu einer vertikalen Anordnung.
CSS nach dem Mobile-First-Prinzip
CSS nach dem Mobile-First-Prinzip verwendet gewöhnliche Grundregeln für schmale Layouts und ergänzt bei zunehmendem Platz breitere Anordnungen durch Mindestbreitenbedingungen.
Eine Kartenliste beginnt mit einer Spalte und erhält durch aufsteigende min-width-Abfragen zusätzliche Spalten.
CSS-Pixel
Ein CSS-Pixel ist eine Referenzlänge für das Layout; auf einem Bildschirm mit hoher Pixeldichte kann es mehreren physischen Gerätepixeln entsprechen.
Ein Smartphone mit dem Verhältnis 3 und einem 390px breiten CSS-Viewport hat 1170 Gerätepixel über seine Bildschirmbreite.

D

Druck-Stylesheet
Ein Druck-Stylesheet wendet CSS für die Druckausgabe an und hält nützliche Inhalte lesbar, während es Navigation, Farben und Linkdarstellung anpasst.
Eine Druckregel blendet Menüschaltflächen aus und kann das Ziel jedes Links hinter seiner Beschriftung ergänzen.
dvh
Ein dvh ist ein Prozent der Höhe des dynamischen Viewports, der Änderungen des aktuell sichtbaren Bereichs bei Bewegung der Browser-Symbolleisten folgt.
Ein Bereich mit 100dvh kann seine Größe ändern, während die Symbolleiste eines Smartphones beim Scrollen erscheint oder verschwindet.

E

em
Ein em ist eine schriftbezogene Länge, die bei font-size auf der Schriftgröße des Elternelements und bei anderen Eigenschaften auf der eigenen Schriftgröße des Elements beruht.
Eine Schaltfläche mit 1em horizontalem Innenabstand erhält mehr Platz um ihre Beschriftung, wenn ihre eigene Schrift größer wird.

F

Fallback auf den kleinen Viewport
Der Fallback auf den kleinen Viewport liefert Maße für Container-Einheiten, wenn kein Vorfahrenelement für das von der Einheit benötigte Maß geeignet ist.
Ein fehlendes container-type kann dazu führen, dass sich die Größe in cqi am Fenster statt am umschließenden Element der Karte orientiert.
Farbschemapräferenz
Eine Farbschemapräferenz gibt an, ob die lesende Person eine helle oder dunkle Darstellung bevorzugt; eine Seite kann damit lesbare Designfarben auswählen.
Eine Abfrage für ein dunkles Design kombiniert einen dunklen Hintergrund mit lesbarem hellem Text. Prüfe den resultierenden Kontrast.
Flex-Zeilenumbruch
Der Flex-Zeilenumbruch ermöglicht einem Flex-Container, Elemente auf zusätzliche Zeilen zu setzen, wenn ihre Größen und Abstände nicht mehr in die aktuelle Zeile passen.
Navigationslinks mit flex-wrap: wrap können eine zweite Zeile bilden, statt über die Seite hinauszuragen.

G

Gerätepixelverhältnis
Das Gerätepixelverhältnis ist die Anzahl der Gerätepixel pro CSS-Pixel und setzt die Bildschirmpixeldichte zur Referenzeinheit des Seitenlayouts in Beziehung.
Ein 250 CSS-Pixel breit angezeigtes Foto kann auf einem Bildschirm mit dem Verhältnis 2 etwa 500 Quellpixel nutzen.
Größen-Containment
Größen-Containment verhindert, dass Inhalte die Größe eines Containers in den eingeschlossenen Dimensionen bestimmen, und vermeidet so zirkuläre Größenabhängigkeiten.
Eine Box mit container-type: size braucht eine unabhängige Höhenfestlegung, weil ihr Text diese Höhe nicht mehr bestimmt.
Größenberechnung mit border-box
Bei der Größenberechnung mit border-box sind Innenabstand und Rahmen in der angegebenen Breite und Höhe eines Elements enthalten, sodass weniger Platz für seinen Inhalt bleibt.
Ein umschließendes Seitenelement über die volle Breite nutzt box-sizing: border-box, damit sein seitlicher Innenabstand keinen Überlauf verursacht.

H

Horizontaler Überlauf
Horizontaler Überlauf tritt auf, wenn Inhalt über die für seine Box verfügbare Breite hinausragt und dadurch seitliches Scrollen oder verborgener Inhalt entstehen kann.
Ein fester 700px breiter Bereich ragt über eine 360px breite Seite hinaus, selbst wenn das Viewport-Meta-Tag vorhanden ist.
Hover-Fähigkeit
Die Hover-Fähigkeit beschreibt, ob das hauptsächliche Zeigereingabegerät bequem über einem Element verbleiben kann, ohne es zu aktivieren.
Wichtige Details bleiben auf Touchgeräten sichtbar, während optionale Hover-Stile innerhalb einer Fähigkeitsabfrage gelten.

I

Inhaltsbasierter Breakpoint
Ein inhaltsbasierter Breakpoint wird anhand des Verhaltens tatsächlicher Texte und Steuerelemente gewählt statt anhand einer voreingestellten Breite für ein Gerät.
Beim Testen eines langen Seitentitels zeigt sich, dass die Seitenleiste früher als erwartet darunter wechseln sollte.
Inline-Größe
Die Inline-Größe ist das Maß eines Elements entlang der Schreibrichtung innerhalb einer Zeile und entspricht bei horizontaler Schreibrichtung der Breite.
Die inline-size-Abfrage einer horizontalen Karte reagiert auf die Breite, während ihre Höhe weiterhin dem Text folgen kann.
Intrinsische Bildgröße
Die intrinsische Bildgröße ist die Größeninformation, die die Bildressource liefert und die verwendet wird, wenn CSS und HTML keine andere Anzeigegröße festlegen.
Ein großes Bild kann über einen schmalen Artikel hinausragen, sofern CSS seine Breite nicht auf den verfügbaren Platz begrenzt.
Intrinsisches Layout
Ein intrinsisches Layout passt sich durch eigene Größen- und Umbruchregeln an, sodass Inhalt ohne explizite Breakpoints in den verfügbaren Platz passt.
Eine umbrechende Kartenzeile erhält ohne Medienabfrage eine weitere Zeile, wenn der Container schmaler wird.

K

Kaskade
Die Kaskade ist das Verfahren, das zwischen konkurrierenden CSS-Deklarationen entscheidet; bedingte Regeln nehmen weiterhin daran teil, wenn ihre Bedingungen zutreffen.
Bei gleich spezifischen zutreffenden Regeln in derselben Ebene setzt sich die spätere font-size-Deklaration durch.

L

Layoutverschiebung
Eine Layoutverschiebung ist eine sichtbare Bewegung von Seiteninhalten, nachdem sich ihre ursprüngliche Position geändert hat, etwa wenn ein Bild ohne reservierten Platz geladen wird.
Die width- und height-Attribute eines Bildes ermöglichen dem Browser, Platz anhand eines Seitenverhältnisses zu reservieren und das Springen von Text beim Laden zu verringern.
Lazy Loading
Lazy Loading verzögert den Abruf eines Bildes, bis es sich dem sichtbaren Bereich nähert, und reduziert so frühe Downloads für Inhalte weiter unten auf einer Seite.
Ein Galeriebild unterhalb des zuerst sichtbaren Bereichs kann loading="lazy" verwenden, während das Hauptfoto im Einstiegsbereich zügig lädt.
Logischer Operator
Ein logischer Operator verknüpft oder verneint Bedingungen, sodass eine Abfrage mehrere Sachverhalte verlangen oder alternative zutreffende Bedingungen akzeptieren kann.
screen and (min-width: 40em) verlangt sowohl eine Bildschirmausgabe als auch einen ausreichend breiten Viewport.
lvh
Ein lvh ist ein Prozent der Höhe des großen Viewports und steht für den verfügbaren Layoutplatz bei ausgeblendeten einziehbaren Browser-Symbolleisten.
Ein Abschnitt mit 100lvh kann hinter mobile Symbolleisten ragen, während diese noch sichtbar sind.

M

max()
Die Funktion max() wählt den größten angegebenen Wert und kann so eine Untergrenze für eine Länge setzen, während sich ein anderer Wert ändert.
Ein Abstand mit max(1rem, 2vw) kann nicht kleiner als 1rem werden, wenn der Viewport schmaler wird.
Medienabfrage
Eine Medienabfrage ist eine Bedingung, die anhand von Viewport-Merkmalen, Ausgabetyp, Eingabefähigkeiten oder Einstellungen steuert, wann CSS angewendet wird.
Eine min-width-Abfrage ergänzt eine zweite Inhaltsspalte, sobald genügend Fensterplatz verfügbar ist.
Medientyp
Ein Medientyp bezeichnet die allgemeine Art der Ausgabe, etwa Bildschirm oder Druck, für die ein Stylesheet oder eine bedingte CSS-Regel gilt.
Ein @media print-Block entfernt Navigationssteuerelemente, die auf Papier nicht nutzbar sind.
min-width-Bedingung
Eine min-width-Bedingung trifft zu, wenn der Viewport mindestens so breit wie der angegebene Schwellenwert ist; der Schwellenwert selbst ist eingeschlossen.
Die Bedingung (min-width: 620px) ist bei 620px wahr und bleibt bei größeren Viewport-Breiten wahr.
min()
Die Funktion min() wählt den kleinsten angegebenen Wert und kann so eine Obergrenze für eine Größe setzen, die sonst mit dem verfügbaren Platz wächst.
Eine Box mit width: min(100%, 36rem) füllt schmale Container, wächst aber höchstens auf 36rem.
minmax()
Die Grid-Funktion minmax() gibt einer Rasterspur eine minimale und maximale Größe, sodass sie innerhalb des angegebenen Bereichs wachsen oder schrumpfen kann.
Eine Rasterspur mit minmax(15rem, 1fr) kann nicht unter 15rem schrumpfen, selbst wenn ihr Container schmaler ist.

N

Netzwerkbereich
Der Netzwerkbereich ist ein Entwicklerwerkzeug, das Ressourcenanfragen und ihre Übertragungsdetails auflistet und so bei der Prüfung hilft, welche Bilddateien eine Seite herunterlädt.
Ein Test in Smartphone-Größe kann einen großen Bilddownload aufdecken, der durch einen zu groß angegebenen Bildplatz in sizes verursacht wird.

O

object-position
Die Eigenschaft object-position legt die Ausrichtung des Bildinhalts innerhalb seiner Box fest und steuert, welcher Bereich sichtbar bleibt, wenn das Einpassen ihn zuschneidet.
Ein Vorschaubild verwendet object-position: top, damit beim Zuschneiden der obere Teil der Quelle sichtbar bleibt.
Objektanpassung
Die Objektanpassung steuert, wie der Inhalt eines Bildes in eine Bildbox mit festgelegter Größe eingepasst wird, und ermöglicht proportionales Zuschneiden, leere Streifen oder Strecken.
object-fit: contain erhält jeden Teil eines Diagramms innerhalb einer einheitlichen Vorschaubildbox.
orientation-Medienmerkmal
Das orientation-Medienmerkmal vergleicht Breite und Höhe des Viewports; portrait schließt einen quadratischen Viewport ein und landscape bedeutet, dass die Breite größer ist.
Eine landscape-Abfrage kann sowohl auf ein breites Desktopfenster als auch auf ein quer gehaltenes Smartphone zutreffen.

P

picture
Das picture-Element gruppiert geordnete Quellen zur Auswahl mit einem erforderlichen img und unterstützt Art Direction und alternative Formate mit einem Ersatz.
Ein picture kann AVIF- und WebP-Quellen vor der JPEG-Datei anbieten, die sein abschließendes img liefert.
Pixeldichtedeskriptor
Ein Pixeldichtedeskriptor gibt den Pixeldichtefaktor eines Kandidaten mit der Endung x an, typischerweise für ein Bild mit fester CSS-Anzeigegröße.
Ein 180px breit angezeigtes Logo kann einen 360 Pixel breiten Kandidaten mit dem Pixeldichtedeskriptor 2x anbieten.
Präferenz für reduzierte Bewegung
Eine Präferenz für reduzierte Bewegung ist eine Systemeinstellung, die den Wunsch nach weniger Animation anzeigt und über ein CSS-Medienmerkmal bereitgestellt wird.
Große optionale Bewegungen können ausschließlich innerhalb von prefers-reduced-motion: no-preference ablaufen.
Prozentuale Breite
Eine prozentuale Breite gibt einem Element einen Anteil der Breite seines umschließenden Blocks, sodass das Element Änderungen des verfügbaren Platzes folgen kann.
Eine Box mit 50% ist 240px breit, wenn ihr umschließender Block 480px Breite bietet.

Q

Quelltextreihenfolge
Die Quelltextreihenfolge ist die Abfolge der Elemente im HTML. Sie bestimmt die Lese- und Tastaturfokusreihenfolge auch dann, wenn CSS die visuelle Platzierung ändert.
Ein visuell nach oben verschobener Link kann mit der Tabulatortaste weiterhin zuletzt erreicht werden, wenn er im HTML an letzter Stelle bleibt.

R

Relative Einheit
Eine relative Einheit erhält ihre berechnete Größe aus einem anderen Maß, etwa einem Containermaß, einer Schriftgröße oder dem Viewport.
Wird rem für Text verwendet, folgt seine Größe der Schriftgröße des Wurzelelements statt einem festen Pixelwert.
rem
Ein rem ist eine Länge, die der Schriftgröße des Wurzelelements entspricht. So können Größen denselben Bezug nutzen, ohne sich durch Verschachtelung zu vervielfachen.
Bei einer Schriftgröße des Wurzelelements von 20px ist eine Überschrift mit 1.5rem vor einer Vergrößerung durch Zoom 30px groß.
Responsive Emulation
Responsive Emulation ist ein Browserwerkzeug, das Gerätebedingungen wie Viewport-Größe, Bildschirmpixeldichte und Touchbedienung zum Testen näherungsweise nachbildet.
Durch Ziehen des emulierten Viewports werden Breiten sichtbar, bei denen ein Kartentitel über seinen Container hinausragt.
Responsives Webdesign
Responsives Webdesign passt Layout, Text und Bilder einer Seite bei unterschiedlichen Fenstern und Geräten an den verfügbaren Platz an.
Eine Kursseite ordnet ihre Karten auf einem schmalen Smartphone untereinander und bei genügend Fensterplatz in Spalten an.

S

Seitenverhältnis
Ein Seitenverhältnis drückt die Beziehung zwischen Breite und Höhe aus, sodass eine Medienbox bei veränderten Maßen dieselben Proportionen behalten kann.
Ein Foto im Verhältnis 3:2 braucht bei 300px Anzeigebreite eine Höhe von 200px, um seine ursprüngliche Form zu behalten.
sizes
Das sizes-Attribut beschreibt die vorgesehene Breite des Bildplatzes unter geordneten Medienbedingungen, wenn srcset Breitendeskriptoren verwendet.
sizes="(min-width: 60em) 50vw, 100vw" beschreibt bei breiteren Viewports einen Platz über die halbe Fensterbreite.
source-Element
Ein source-Element innerhalb von picture bietet Bildkandidaten und optionale Medien- oder Formatbedingungen an, die bestimmen, ob es ausgewählt werden kann.
Eine source mit (min-width: 55em) kann den breiten Ausschnitt vor einem schmalen img-Ersatz liefern.
srcset
Das Attribut srcset stellt Bildkandidaten mit Breiten- oder Pixeldichtedeskriptoren bereit und gibt dem Browser Alternativen zu einer einzelnen Quelldatei.
Ein Foto bietet die Kandidaten 480w, 800w und 1600w an, die alle denselben Bildaufbau zeigen.
svh
Ein svh ist ein Prozent der Höhe des kleinen Viewports und steht für den mobilen Layoutplatz bei sichtbaren Browser-Symbolleisten.
Ein Einstiegsbereich nutzt min-height: 100svh für eine stabile Ausgangshöhe und lässt den Inhalt zugleich wachsen.

T

Textvergrößerung
Textvergrößerung erhöht die Größe lesbaren Textes und erhält dabei Inhalte und Steuerelemente; WCAG verlangt die Unterstützung einer Vergrößerung auf 200 % ohne Verlust.
Ein Bereich mit wachsender Höhe kann seine vollständige Erklärung sichtbar halten, wenn eine lesende Person die Textgröße verdoppelt.

U

Umbruch (Reflow)
Umbruch ist die Neuanordnung von Inhalt, damit er in den verfügbaren Platz passt; WCAG auf Stufe AA prüft gewöhnlichen vertikalen Inhalt bei einer Breite von 320 CSS-Pixeln.
Ein Absatz sollte bei 400 % Zoom in schmalere Zeilen umbrechen, ohne seitliches Scrollen der Seite zu erfordern.

V

Viewport
Der Viewport ist der Bereich des Browsers, in dem die Seite angezeigt wird, ohne dessen eigene Symbolleisten und umgebende Steuerelemente.
Das Drehen eines Smartphones ändert die Viewport-Maße und kann andere Layoutregeln auslösen.
Viewport-Einheit
Eine Viewport-Einheit ist eine Länge, die auf einem Prozentanteil eines Viewport-Maßes beruht und unabhängig vom umschließenden Block des Elements ist.
Ein Kindelement in einer Seitenleiste mit 50vw verwendet weiterhin die halbe Fensterbreite, selbst wenn es damit über die Seitenleiste hinausragt.
Viewport-Meta-Tag
Das Viewport-Meta-Tag gibt mobilen Browsern Anweisungen zur Layoutbreite und anfänglichen Skalierung, damit sie eine Seite in einer brauchbaren Größe anzeigen können.
Das Tag gehört in das <head> des Dokuments und fordert width=device-width, initial-scale=1 an.
vw
Ein vw ist ein Prozent der Viewport-Breite, sodass eine Länge Änderungen der Fensterbreite in CSS-Pixeln folgt.
Bei einer Viewport-Breite von 900px ergibt 10vw eine berechnete Länge von 90px.

Z

Zeigergenauigkeit
Die Zeigergenauigkeit beschreibt, wie genau das hauptsächliche Zeigereingabegerät einen Bereich anvisieren kann; Medienabfragen melden dafür fine, coarse oder none.
Ein vorrangig per Touch bedientes Tablet kann pointer: coarse melden, selbst wenn sein Viewport breit ist.

Über diese Einheit

Von StudeliFehler melden

Erstelle deine eigenen Lernmaterialien

Mach aus deinen Notizen, Folien und Dokumenten Lernleitfäden, Übungsfragen, Karteikarten und 6 weitere Tools.

Jetzt starten