PFAD: ./module/html/html4/

DATEI: string(25) "00Inhaltsverzeichnis4.php"
DATEI: string(19) "01HTML-Grafiken.php"
DATEI: string(29) "02HTML-Grafiken Erweitert.php"
DATEI: string(16) "03HTMLUndSVG.php"
DATEI: string(21) "06HTML-Multimedia.php"
DATEI: string(22) "07HTML-Eingebettet.php"

html mit Adi Prinz

Grafiken in HTML

Bildformate und das img-Element

Bilder und Grafiken sind wichtige Bestandteile vieler Webseiten. Sie können Inhalte erklären, Informationen veranschaulichen oder die Gestaltung einer Seite unterstützen.

Neben einer guten Bildqualität spielen auch Dateigröße, Ladezeit, Barrierefreiheit und die Anpassung an unterschiedliche Bildschirmgrößen eine wichtige Rolle.

Bildformate für Webseiten

Für Webseiten stehen verschiedene Raster- und Vektorgrafikformate zur Verfügung. Das geeignete Format hängt vom jeweiligen Bildinhalt und Verwendungszweck ab.

  • JPEG beziehungsweise JPG: geeignet für Fotos und Bilder mit vielen Farben
  • PNG: geeignet für Grafiken, Screenshots und Bilder mit transparenten Bereichen
  • GIF: unterstützt einfache Animationen, besitzt aber nur eine begrenzte Farbauswahl
  • WebP: modernes Format für Fotos, Grafiken, Transparenz und Animationen
  • AVIF: modernes Format mit hoher Komprimierung und guter Bildqualität
  • SVG: Vektorgrafikformat für Logos, Symbole, Diagramme und skalierbare Illustrationen

Das frühere Flash-Format SWF wird von modernen Browsern nicht mehr unterstützt und sollte nicht mehr verwendet werden.

Das img-Element

Mit dem img-Element wird eine Bilddatei in eine HTML-Seite eingebunden. Es handelt sich um ein leeres Element und benötigt daher kein schließendes Tag.

<img
  src="bilder/garten.jpg"
  alt="Blühender Garten im Mai">
    

Das Attribut src enthält den Pfad zur Bilddatei. Das Attribut alt stellt eine textliche Alternative zum Bild bereit.

Den Pfad zur Bilddatei angeben

Der Wert des src-Attributs kann einen relativen oder absoluten Pfad enthalten.

Bild im selben Ordner

<img
  src="garten.jpg"
  alt="Blühender Garten">
    

Bild in einem Unterordner

<img
  src="bilder/garten.jpg"
  alt="Blühender Garten">
    

Bild von einer anderen Website

<img
  src="https://www.example.com/bilder/garten.jpg"
  alt="Blühender Garten">
    

Bilder von anderen Websites sollten nur eingebunden werden, wenn die Verwendung erlaubt und die externe Quelle dauerhaft zuverlässig erreichbar ist.

Alternativtext mit alt angeben

Der Alternativtext beschreibt den Inhalt oder die Funktion eines Bildes. Er wird beispielsweise von Screenreadern ausgegeben und kann angezeigt werden, wenn die Bilddatei nicht geladen werden kann.

<img
  src="diagramm-umsatz.png"
  alt="Umsatzsteigerung von Jänner bis Juni">
    

Rein dekorative Bilder erhalten ein leeres alt-Attribut:

<img
  src="dekorative-linie.svg"
  alt="">
    

Das alt-Attribut sollte bei jedem img-Element vorhanden sein. Ob es eine Beschreibung enthält oder leer bleibt, hängt von der Bedeutung des Bildes ab.

Breite und Höhe festlegen

Mit den Attributen width und height wird die ursprüngliche Darstellungsgröße eines Bildes in CSS-Pixeln angegeben.

<img
  src="bilder/garten.jpg"
  alt="Blühender Garten"
  width="640"
  height="426">
    

Kennt der Browser die Bildabmessungen bereits beim Laden der Seite, kann er den benötigten Platz reservieren. Dadurch werden unerwartete Layoutverschiebungen vermieden.

Für eine responsive Darstellung kann das Bild zusätzlich mit CSS angepasst werden:

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

Prozentangaben gehören nicht in die HTML-Attribute width und height. Flexible Größen werden mit CSS festgelegt.

Das Laden von Bildern steuern

Mit dem Attribut loading kann das Ladeverhalten eines Bildes beeinflusst werden.

<img
  src="bilder/garten.jpg"
  alt="Blühender Garten"
  width="640"
  height="426"
  loading="lazy">
    
  • loading="lazy" lädt das Bild erst, wenn es sich dem sichtbaren Bereich nähert.
  • loading="eager" lädt das Bild möglichst früh.

loading="lazy" eignet sich vor allem für Bilder, die beim Öffnen der Seite noch nicht sichtbar sind. Das wichtigste Bild am Seitenanfang sollte normalerweise nicht verzögert geladen werden.

Wichtige Attribute des img-Elements

  • src – Pfad und Dateiname der Bilddatei
  • alt – textliche Alternative zum Bild
  • width – Bildbreite in CSS-Pixeln
  • height – Bildhöhe in CSS-Pixeln
  • loading – Ladeverhalten des Bildes
  • srcset – mehrere Bilddateien für unterschiedliche Auflösungen
  • sizes – erwartete Darstellungsgröße für responsive Bilder
  • usemap – Zuordnung zu einer Image Map
  • crossorigin – Behandlung von Bildern aus anderen Quellen
  • referrerpolicy – steuert übertragene Referrer-Informationen
  • fetchpriority – Hinweis zur Priorität beim Laden des Bildes

Responsive Bilder

Bilder an Bildschirmgröße und Auflösung anpassen

Ein responsives Bild passt sich an unterschiedliche Bildschirmgrößen und Auflösungen an. Der Browser kann dabei aus mehreren Bilddateien die am besten geeignete Datei auswählen.

Bilder mit CSS flexibel darstellen

Mit max-width: 100% wird verhindert, dass ein Bild breiter als sein übergeordnetes Element dargestellt wird.

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

Die Eigenschaft height: auto sorgt dafür, dass das ursprüngliche Seitenverhältnis des Bildes erhalten bleibt.

Diese CSS-Regel verändert nur die Darstellungsgröße. Der Browser lädt weiterhin dieselbe Bilddatei, auch wenn auf einem kleinen Bildschirm eine wesentlich kleinere Datei ausreichen würde.

Verschiedene Bildauflösungen mit srcset anbieten

Mit dem Attribut srcset können mehrere Versionen desselben Bildes angeboten werden. Bei Auflösungsangaben wird hinter jedem Dateinamen ein Pixeldichte-Faktor angegeben.

<img
  src="bilder/logo.png"
  srcset="
    bilder/logo.png 1x,
    bilder/logo-2x.png 2x
  "
  alt="Logo von EDV mit Adi Prinz"
  width="300"
  height="80">
    
  • 1x – Bild für normale Pixeldichte
  • 2x – Bild für Displays mit hoher Pixeldichte

Beide Dateien zeigen denselben Bildausschnitt. Die Datei mit 2x besitzt jedoch ungefähr die doppelte Breite und Höhe und kann auf hochauflösenden Displays schärfer dargestellt werden.

Bilddateien nach ihrer Breite beschreiben

Bei unterschiedlich breiten Bilddateien wird im srcset-Attribut die tatsächliche Bildbreite mit dem Deskriptor w angegeben.

<img
  src="bilder/landschaft-800.jpg"
  srcset="
    bilder/landschaft-480.jpg 480w,
    bilder/landschaft-800.jpg 800w,
    bilder/landschaft-1200.jpg 1200w
  "
  alt="Berglandschaft mit einem See"
  width="1200"
  height="800">
    

Die Angaben 480w, 800w und 1200w beschreiben die tatsächliche Breite der jeweiligen Bilddatei in Pixeln.

Der Browser berücksichtigt unter anderem die Bildschirmgröße, die Pixeldichte und die erwartete Darstellungsgröße. Welche Datei tatsächlich geladen wird, entscheidet der Browser.

Die Darstellungsgröße mit sizes beschreiben

Das Attribut sizes informiert den Browser darüber, wie breit das Bild unter bestimmten Bedingungen voraussichtlich dargestellt wird.

<img
  src="bilder/landschaft-800.jpg"
  srcset="
    bilder/landschaft-480.jpg 480w,
    bilder/landschaft-800.jpg 800w,
    bilder/landschaft-1200.jpg 1200w
  "
  sizes="
    (max-width: 600px) 100vw,
    (max-width: 1000px) 50vw,
    800px
  "
  alt="Berglandschaft mit einem See"
  width="1200"
  height="800">
    

Das Beispiel bedeutet:

  • Bis zu einer Viewport-Breite von 600px ist das Bild ungefähr so breit wie der gesamte Viewport.
  • Bis zu einer Viewport-Breite von 1000px beansprucht das Bild ungefähr die Hälfte der Viewport-Breite.
  • Bei größeren Viewports wird eine Darstellungsbreite von 800px angenommen.

Die Reihenfolge der Angaben ist wichtig. Der Browser verwendet die erste passende Bedingung. Die letzte Angabe steht ohne Bedingung und dient als Standardwert.

Das picture-Element verwenden

Das picture-Element enthält ein oder mehrere source-Elemente und als Abschluss ein img-Element.

<picture>
  <source
    srcset="bilder/landschaft-gross.jpg"
    media="(min-width: 1000px)">

  <source
    srcset="bilder/landschaft-mittel.jpg"
    media="(min-width: 600px)">

  <img
    src="bilder/landschaft-klein.jpg"
    alt="Berglandschaft mit einem See"
    width="800"
    height="533">
</picture>
    

Der Browser prüft die source-Elemente von oben nach unten und verwendet die erste passende Quelle. Trifft keine Bedingung zu, wird die Bilddatei aus dem img-Element geladen.

Das abschließende img-Element ist verpflichtend. Es enthält außerdem den Alternativtext und dient als Fallback.

Den Bildausschnitt anpassen

Mit dem picture-Element können für verschiedene Bildschirmgrößen unterschiedliche Bildausschnitte verwendet werden. Dieses Verfahren wird als Art Direction bezeichnet.

<picture>
  <source
    srcset="bilder/person-querformat.jpg"
    media="(min-width: 768px)">

  <img
    src="bilder/person-hochformat.jpg"
    alt="Kursleiter vor einem Computer"
    width="600"
    height="800">
</picture>
    

Auf größeren Bildschirmen wird das Querformat verwendet. Auf kleineren Bildschirmen zeigt das Hochformat den wichtigen Bildinhalt deutlicher.

Die verschiedenen Dateien dürfen unterschiedliche Bildausschnitte zeigen. Inhalt und Funktion des Bildes müssen jedoch gleich bleiben, damit der gemeinsame Alternativtext weiterhin passt.

Moderne Bildformate mit Fallback anbieten

Das Attribut type eines source-Elements kann das Dateiformat der angebotenen Bilddatei beschreiben.

<picture>
  <source
    srcset="bilder/landschaft.avif"
    type="image/avif">

  <source
    srcset="bilder/landschaft.webp"
    type="image/webp">

  <img
    src="bilder/landschaft.jpg"
    alt="Berglandschaft mit einem See"
    width="1200"
    height="800">
</picture>
    

Unterstützt der Browser AVIF, kann die erste Datei verwendet werden. Andernfalls wird WebP geprüft. Das JPEG-Bild dient als abschließende Ersatzdatei.

Die Reihenfolge beginnt normalerweise mit dem bevorzugten modernen Format. Das allgemein unterstützte Fallback steht im img-Element.

Wichtige Attribute des source-Elements

  • srcset – eine oder mehrere angebotene Bilddateien
  • sizes – erwartete Darstellungsgröße bei Verwendung von Breitenangaben
  • media – Bedingung für die Verwendung der Bildquelle
  • type – MIME-Typ des angebotenen Dateiformats

Das source-Element ist ein leeres Element. Innerhalb von picture wird die Bildquelle mit srcset und nicht mit src angegeben.

srcset und picture unterscheiden

  • srcset am img-Element eignet sich für verschiedene Größen oder Auflösungen desselben Bildes.
  • picture eignet sich für unterschiedliche Bildausschnitte, Media Queries oder verschiedene Dateiformate.
  • Beide Verfahren können miteinander kombiniert werden.
<picture>
  <source
    media="(min-width: 768px)"
    srcset="
      bilder/banner-1200.jpg 1200w,
      bilder/banner-1800.jpg 1800w
    "
    sizes="100vw">

  <img
    src="bilder/banner-klein-600.jpg"
    srcset="
      bilder/banner-klein-400.jpg 400w,
      bilder/banner-klein-600.jpg 600w
    "
    sizes="100vw"
    alt="Teilnehmer bei einem Computerkurs"
    width="1200"
    height="600">
</picture>
    

In diesem Beispiel entscheidet das picture-Element über den Bildausschnitt. Innerhalb der passenden Quelle entscheidet srcset über die geeignete Dateigröße.