Was sind adaptive Bilder?
Adaptive Bilder sind Bildvarianten, die passend zu Bildschirmgröße, Pixeldichte, Formatunterstützung oder Netzwerkbedingungen der betrachtenden Person ausgewählt oder erzeugt werden. Jede Variante stellt dieselbe Quelle mit einem geeigneten Auslieferungsprofil dar.
So funktionieren adaptive Bilder
Die adaptive Bildauslieferung behält eine Quelle bei und bietet mehrere Varianten an, die sich in Pixelbreite, Pixeldichte, Zuschnitt oder Encoding-Format unterscheiden. Der HTML-Standard behandelt die Technik unter der Überschrift „Adaptive Bilder“; MDN nennt sie responsive Bilder. Die Variante kann an zwei Stellen ausgewählt werden. Im Markup listen srcset und sizes die Kandidaten auf, und der Browser wählt einen davon aus. Dagegen ergänzt picture mit Elementen vom Typ source Regeln für die Bildgestaltung (media) und das Format (type). Auf dem Server liefert eine einzelne URL abhängig von Anfrage-Headern wie Accept oder Client Hints unterschiedliche Bytes zurück. Die Auswahl per Markup benötigt nur eine eigene URL pro Variante. Die serverseitige Auswahl hält das HTML kurz, doch korrekte Ergebnisse hängen davon ab, wie Caches über die variierenden Header informiert werden.
Wichtige Fakten
- Warum wird für ein kleines Bild auf der Seite trotzdem die größte Datei heruntergeladen? Der Browser beginnt mit dem Abrufen der Bilder, bevor er das CSS der Seite angewendet hat. Deshalb muss die Layoutbreite im HTML angegeben werden. Bei Deskriptoren vom Typ
wverlangt der HTML-Standard ein Attributsizes. Fehlt es oder kann es nicht geparst werden, wird die Breite als100vwangenommen, als würde das Bild den gesamten Viewport ausfüllen. Jeder Wert fürwmuss außerdem der tatsächlichen Pixelbreite der Datei entsprechen. Bei Bildern mitloading="lazy"ermöglichtsizes="auto"dem Browser, die dargestellte Breite zu verwenden. Dahinter folgt eine Fallback-Liste für Browser, die das Schlüsselwort nicht unterstützen. Nur vor einem solchen Elementimgdürfen Elemente vom Typsourceaufsizesverzichten. Der Standard behandelt dies als gleichwertig mitauto. - Kann ich genau vorhersagen, welchen Kandidaten ein Browser lädt? Nicht allein anhand von
srcset. Der Standard erlaubt dem Browser eine Auswahl „auf implementierungsspezifische Weise“. Dabei kann er Pixeldichte, Zoomstufe und möglicherweise Netzwerkbedingungen abwägen. Zwei Browser können daher aus demselben Markup unterschiedliche Dateien laden. Die Auswahl zwischen Elementen vom Typsourceist dagegen regelbasiert: Der Browser prüft sie der Reihe nach und verwendet das erste Element, dessen Abfrage fürmediazutrifft und dessentypeer unterstützt. Ein fehlendes Attribut gilt dabei als erfüllt. Verwenden Siemedianur für die Bildgestaltung, wenn ein anderer Zuschnitt angezeigt werden muss, und überlassen Sie dem Browser die Wahl zwischen den Auflösungen. - Wie biete ich AVIF oder WebP mit einem Fallback an? Setzen Sie innerhalb von
picturepro Format ein Elementsource, jeweils mit einem Attributtypewietype="image/webp". Danach folgt ein Elementimgin einem breit unterstützten Format. Der Browser überspringt jedes Elementsource, dessen Typ er nicht unterstützt. Lassen Sietypenicht weg: Laut HTML-Standard wechselt der Browser ohne dieses Attribut nicht zu einem anderen Elementsource, nachdem er ein nicht unterstütztes Bildformat abgerufen hat. Wird mitmediaauch ein Zuschnitt ausgewählt, geben Sie diesem ebenfalls ein Elementsourceim Fallback-Format und platzieren Sie seine Quellen vor den allgemeineren Quellen. Andernfalls fällt ein Browser, der das neuere Format nicht decodieren kann, auf einen anderen Zuschnitt zurück. - Was ändert sich, wenn stattdessen der Server die Variante auswählt? Caches müssen wissen, von welchen Anfrage-Headern die Auswahl abhing. Eine Antwort, die anhand von
Acceptoder eines Client Hints ausgewählt wurde, sollte diesen Header inVaryaufführen. Andernfalls kann ein Cache eine Variante für eine Anfrage wiederverwenden, die eine andere benötigt hätte. Hints wieSec-CH-Widthwerden erst gesendet, nachdem der Server sie mitAccept-CHangefordert hat. MDN kennzeichnetSec-CH-Widthals experimentell. Prüfen Sie daher die Browserunterstützung und behalten Sie einen sinnvollen Standard für Anfragen ohne Hints bei.
Wann adaptive Bilder wichtig sind
Liefern Sie kleinere Varianten an schmale Bildschirme aus und halten Sie zugleich Versionen mit höherer Pixeldichte für entsprechende Displays bereit. Falsche Größenregeln können Bandbreite verschwenden oder dazu führen, dass ein Bild in seiner dargestellten Größe sichtbar unscharf ist.
So hilft Transloadit bei adaptiven Bildern
Transloadits Smart CDN kann die Varianten auf Anfrage erstellen. Eine URL mit der Domain tlcdn.com benennt Ihren Workspace, ein Template und die Quelldatei. URL-Parameter wie eine Breite befüllen Template-Variablen, die Robots wie /image/resize konfigurieren. Bei einer Anfrage ohne Cache-Treffer wird das Template ausgeführt; bei einem Cache-Treffer wird das gespeicherte Ergebnis wiederverwendet. Welche URL ein Besucher lädt, bestimmen weiterhin Sie in Ihrem Markup: Die hier verlinkten Seiten beschreiben Varianten, die über URL-Parameter adressiert werden, und keine Auswahl anhand von Anfrage-Headern wie Accept. Listen Sie die Varianten-URLs daher in srcset oder picture auf.
Bei jeder Anfrage ohne Cache-Treffer wird die Datei importiert und transformiert, was zum Verbrauch zählt: bei der ersten Anfrage für jede neue Parameterkombination sowie bei jeder späteren Anfrage, sobald die Kopie im Cache nicht mehr verfügbar ist. Wann das geschieht, hängt von Ihren Cache-Einstellungen ab. Bei Cache-Treffern wird nicht erneut transformiert. Begrenzen Sie die Variablen, die ein Template akzeptiert, und signieren Sie Smart-CDN-URLs, damit Besucher keine beliebigen Varianten anfordern können. Wenn alle Größen vor der Veröffentlichung bekannt sind, lassen sich Transformationen auf Anfrage vermeiden, indem Sie eine Assembly einmal ausführen und ihre gespeicherten Ausgaben ausliefern.
- So nutzen Sie das Smart CDN
- Smart CDN: Transformation und Auslieferung auf Anfrage
- Robot zur Bildgrößenänderung
- Template-Ergebnisse ausliefern und URLs signieren
Entdecken Sie Transloadits Möglichkeiten zur Bildverarbeitung
Quellen
- HTML-Standard: Bilder (adaptive Bilder, Attribute srcset und sizes, Auswahl einer Bildquelle)
- HTML-Standard: die Elemente picture, source und img
- MDN: Responsive Bilder
- WHATWG-HTML-Issue Nr. 4654: „auto sizes“ für verzögert geladene Bilder
- RFC 9110: HTTP-Semantik, Abschnitt 12.5.5 Vary
- MDN: HTTP-Client-Hints
- MDN: Header Sec-CH-Width