Inhaltsverzeichnis

Web-Bilder und Responsive Image Markup

Dieser Artikel behandelt die Grundlagen der Einbindung von Bildern in HTML, verschiedene Web-Bildformate, die Einbindung von SVG-Dateien sowie Methoden zur Erstellung responsiver Bilder für unterschiedliche Displaytypen und Bildschirmgrößen[cite: 3, 4].

1. Web-Bildformate

Für die Nutzung auf Webseiten eignen sich verschiedene Raster- und Vektorgrafikformate[cite: 4]:

Format Typ Beschreibung
PNG Bitmapped (Raster) Unterstützt Transparenzen, ideal für Grafiken mit klaren Kanten[cite: 4].
JPEG Bitmapped (Raster) Optimal für Fotos mit vielen Farbverläufen[cite: 4].
GIF Bitmapped (Raster) Geeignet für einfache Animationen und Grafiken mit wenigen Farben[cite: 4].
SVG Vektor Basiert auf mathematischen Pfaden, beliebig ohne Qualitätsverlust skalierbar[cite: 4].
WebP Bitmapped (Raster) Moderneres Format mit hoher Kompression[cite: 4].

Bitmapped vs. Vektor

2. Das Standard <img>-Element

Bilder werden in HTML mit dem leeren <img>-Element eingebunden[cite: 4]:

<img src="/images/beispiel.png" alt="Beispielbeschreibung" width="300" height="200">

Erforderliche Attribute

Tipps für alternativen Text (alt-Text)

Attribute ''width'' und ''height''

3. Einbindung von SVG-Dateien

SVG-Dateien sind XML-basierte Vektordateien[cite: 4]. Sie können auf drei Arten eingebunden werden[cite: 4]:

A. Über das <img>-Element

<img src="/images/circle.svg" alt="Kreis">

B. Über das <object>-Element

<object type="image/svg+xml" data="pizza.svg">
  <img src="pizza.png" alt="Pizza Fallback">
</object>

C. Inline-SVG (Direktes <svg>-Element)

<p>Hier ist ein Inline-SVG:
  <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 100 100" width="50" height="50">
    <circle cx="50" cy="50" r="40" fill="red" />
  </svg>
</p>

4. Responsive Image Markup

Responsive Images ermöglichen es, dem Browser mehrere Bildquellen zur Verfügung zu stellen, sodass dieser abhängig von der Umgebung des Nutzers das optimale Bild auswählt[cite: 3].

Es gibt vier Hauptanwendungsfälle[cite: 3]:

Szenario 1: Displays mit hoher Pixeldichte (x-Deskriptor)

Standard-Bildschirme nutzen ein 1:1-Verhältnis von CSS-Pixeln zu Gerätepixeln[cite: 3]. High-Density-Displays (Retina etc.) besitzen die 2-, 3- oder 4-fache Menge an Pixeln pro Fläche[cite: 3].

Um Unschärfen zu vermeiden, wird das Attribut srcset mit dem x-Deskriptor verwendet[cite: 3]:

<img src="/images/photo-200px.jpg" alt="Foto"
     srcset="/images/photo-400px.jpg 2x,
             /images/photo-600px.jpg 3x">

Szenario 2: Bilder mit variabler Breite (w-Deskriptor & sizes)

Wenn die Bildgröße vom Viewport (Browserfenster) abhängt, nutzt man w-Deskriptoren (Pixelbreite des Bildes) zusammen mit dem sizes-Attribut[cite: 3]:

<img src="strawberries-640.jpg" alt="Erdbeeren"
     srcset="strawberries-480.jpg 480w,
             strawberries-960.jpg 960w,
             strawberries-1280.jpg 1280w"
     sizes="(max-width: 480px) 100vw,
            (max-width: 960px) 70vw,
            240px">

Szenario 3: Art Direction (Das <picture>-Element)

Wenn das Motiv je nach Bildschirmgröße angepasst, zugeschnitten (Ausschnitt) oder im Format (Hoch-/Querformat) verändert werden soll, nutzt man das <picture>-Element[cite: 3]:

<picture>
  <source media="(min-width: 1024px)" srcset="dinner-large.jpg">
  <source media="(min-width: 760px)" srcset="dinner-medium.jpg">
  <img src="dinner-small-cropped.jpg" alt="Abendessen Nahaufnahme">
</picture>

Szenario 4: Alternative Bildformate (type-Attribut)

Um moderne Formate mit besserer Kompression (wie WebP oder JPEG XR) bereitzustellen, ohne ältere Browser auszuschließen[cite: 3]:

<picture>
  <source type="image/webp" srcset="pizza.webp">
  <source type="image/jxr" srcset="pizza.jxr">
  <img src="pizza.jpg" alt="Pizza">
</picture>

5. Browser-Unterstützung