<img> HTML-Element zum Einbetten von Bildern
Baseline
Weitgehend verfügbar
*
Diese Funktion ist gut etabliert und funktioniert auf vielen Geräten und in vielen Browserversionen. Sie ist seit Juli 2015 browserübergreifend verfügbar.
* Einige Teile dieser Funktion werden möglicherweise unterschiedlich gut unterstützt.
Das <img> HTML-Element bettet ein Bild in das Dokument ein.
Probieren Sie es aus
<img
class="fit-picture"
src="/shared-assets/images/examples/grapefruit-slice.jpg"
alt="Grapefruit slice atop a pile of other slices" />
.fit-picture {
width: 250px;
}
Das obige Beispiel zeigt die Verwendung des <img>-Elements:
- Das
src-Attribut enthält den Pfad zu dem Bild, das Sie einbetten möchten. Es ist nicht zwingend erforderlich, wenn das srcset-Attribut verfügbar ist. Mindestens eines der Attributesrcodersrcsetmuss jedoch angegeben werden. - Das
alt-Attribut enthält einen textuellen Ersatz für das Bild, der verpflichtend ist und unglaublich nützlich für die Barrierefreiheit ist – Screenreader lesen den Attributwert ihren Nutzern vor, damit sie wissen, was das Bild bedeutet. Alt-Text wird auch auf der Seite angezeigt, wenn das Bild aus irgendeinem Grund nicht geladen werden kann: zum Beispiel Netzwerkfehler, Inhaltsblockierung oder Linkverfall.
Es gibt viele andere Attribute, um verschiedene Zwecke zu erreichen:
- Referrer/CORS-Kontrolle für Sicherheit und Datenschutz: siehe
crossoriginundreferrerpolicy. - Verwenden Sie sowohl
widthals auchheight, um die intrinsische Größe des Bildes festzulegen, sodass es Platz einnimmt, bevor es geladen wird, um Layoutverschiebungen zu verhindern. - Hinweise für responsive Bilder mit
sizesundsrcset(siehe auch das<picture>-Element und unseren Leitfaden zu Responsiven Bildern).
Unterstützte Bildformate
Der HTML-Standard listet nicht auf, welche Bildformate unterstützt werden sollen, daher können User Agents verschiedene Formate unterstützen.
Hinweis: Der Leitfaden zu Bilddateitypen und -formaten bietet umfassende Informationen über Bildformate und ihre Unterstützung durch Webbrowser. Dieser Abschnitt ist nur eine Zusammenfassung!
Die am häufigsten im Web verwendeten Bilddateiformate sind:
- APNG (Animated Portable Network Graphics) — Gute Wahl für verlustfreie Animationssequenzen (GIF ist weniger leistungsfähig).
- AVIF (AV1 Image File Format) — Gute Wahl sowohl für Bilder als auch für animierte Bilder aufgrund hoher Leistung.
- GIF (Graphics Interchange Format) — Gute Wahl für einfache Bilder und Animationen.
- JPEG (Joint Photographic Expert Group image) — Gute Wahl für verlustbehaftete Kompression von Standbildern (derzeit am beliebtesten).
- PNG (Portable Network Graphics) — Gute Wahl für verlustfreie Kompression von Standbildern (leicht bessere Qualität als JPEG).
- SVG (Scalable Vector Graphics) — Vektorbildformat. Verwenden Sie es für Bilder, die in verschiedenen Größen genau gezeichnet werden müssen.
- WebP (Web Picture format) — Hervorragende Wahl sowohl für Bilder als auch für animierte Bilder.
Formate wie WebP und AVIF werden empfohlen, da sie sowohl für Standbilder als auch für animierte Bilder viel besser abschneiden als PNG, JPEG, GIF.
SVG bleibt das empfohlene Format für Bilder, die in verschiedenen Größen genau wiedergegeben werden müssen.
Bildladefehler
Wenn ein Fehler beim Laden oder Rendern eines Bildes auftritt und ein onerror-Ereignishandler für das error-Ereignis festgelegt wurde, wird dieser Ereignishandler aufgerufen. Dies kann in verschiedenen Situationen passieren, einschließlich:
- Die
src- odersrcset-Attribute sind leer ("") odernull. - Die
src-URL ist dieselbe wie die URL der Seite, die der Benutzer gerade besucht. - Das Bild ist auf eine Weise beschädigt, die es unmöglich macht, es zu laden.
- Die Metadaten des Bildes sind so beschädigt, dass es unmöglich ist, seine Abmessungen zu ermitteln, und keine Abmessungen im
<img>-Element-Attribut angegeben wurden. - Das Bild ist in einem Format, das vom User Agent nicht unterstützt wird.
Attribute
Dieses Element beinhaltet die globalen Attribute.
alt-
Definiert Text, der das Bild auf der Seite ersetzen kann.
Hinweis: Browser zeigen nicht immer Bilder an. Es gibt mehrere Situationen, in denen ein Browser möglicherweise keine Bilder anzeigt, wie zum Beispiel:
- Nicht-visuelle Browser (wie diejenigen, die von Menschen mit Sehbehinderungen verwendet werden)
- Der Benutzer entscheidet sich gegen die Anzeige von Bildern (um Bandbreite zu sparen, aus Datenschutzgründen)
- Das Bild ist ungültig oder ein nicht unterstützter Typ
In diesen Fällen kann der Browser das Bild durch den Text im
alt-Attribut des Elements ersetzen. Aus diesen und anderen Gründen geben Sie wann immer möglich einen nützlichen Wert füraltan.Der Wert dieses Attributs auf einen leeren String (
alt="") festzulegen, bedeutet, dass dieses Bild kein wesentlicher Teil des Inhalts ist (es ist Dekoration oder ein Tracking-Pixel), und dass nicht-visuelle Browser es beim Rendern weglassen können. Visuelle Browser verstecken auch das Symbol für kaputte Bilder, wenn dasalt-Attribut leer ist und das Bild nicht angezeigt werden konnte.Dieses Attribut wird auch verwendet, wenn das Bild in Text kopiert wird oder ein verlinktes Bild zu einem Lesezeichen gespeichert wird.
attributionsrc-
Gibt an, dass der Browser einen
Attribution-Reporting-Eligible-Header zusammen mit dem Bildantrag senden soll.Auf der Serverseite wird dies verwendet, um das Senden eines
Attribution-Reporting-Register-Source- oderAttribution-Reporting-Register-Trigger-Headers in der Antwort auszulösen, um eine auf Bildern basierte Attributionsquelle oder einen Attributionstrigger bzw. zu registrieren. Welcher Antwortheader zurückgesendet werden soll, hängt vom Wert des HeadersAttribution-Reporting-Eligibleab, der die Registrierung ausgelöst hat.Das entsprechende Quell- oder Triggerevent wird ausgelöst, sobald der Browser die Antwort mit der Bilddatei erhält.
Hinweis: Weitere Einzelheiten finden Sie in der Attribution Reporting API.
Es gibt zwei Versionen dieses Attributs, die Sie festlegen können:
- Boolean, d.h. nur der Name
attributionsrc. Dies gibt an, dass Sie möchten, dass derAttribution-Reporting-Eligible-Header an denselben Server wie dassrc-Attribut gesendet wird. Dies ist in Ordnung, wenn Sie die Registrierung der Attributionsquelle oder des Triggers auf demselben Server behandeln. Beim Registrieren eines Attributionstriggers ist diese Eigenschaft optional, und ein boolescher Wert wird verwendet, wenn sie weggelassen wird. - Wert, der eine oder mehrere URLs enthält, beispielsweise:
html<img src="image-file.png" alt="My image file description" attributionsrc="https://a.example/register-source https://b.example/register-source" />Dies ist nützlich in Fällen, in denen die angeforderte Ressource nicht auf einem von Ihnen kontrollierten Server liegt oder Sie die Registrierung der Attributionsquelle einfach auf einem anderen Server handhaben möchten. In diesem Fall können Sie eine oder mehrere URLs als Wert von
attributionsrcangeben. Wenn die Ressourcenanforderung stattfindet, wird derAttribution-Reporting-Eligible-Header an die(s) inattributionSrcangegebenen URL(s) zusätzlich zum Ursprungsort der Ressource gesendet. Diese URLs können dann mit einem entsprechendenAttribution-Reporting-Register-Source- oderAttribution-Reporting-Register-Trigger-Header antworten, um die Registrierung abzuschließen.Hinweis: Die Angabe mehrerer URLs bedeutet, dass mehrere Attributionsquellen für das gleiche Feature registriert werden können. Sie könnten beispielsweise verschiedene Kampagnen haben, deren Erfolg Sie messen möchten, die das Generieren verschiedener Berichte auf verschiedenen Daten umfassen.
- Boolean, d.h. nur der Name
crossorigin-
Gibt an, ob das Abrufen des Bildes mithilfe einer CORS-Anforderung durchgeführt werden muss. Bilddaten eines CORS-aktivierten Bildes, das aus einer CORS-Anforderung zurückgesendet wurde, können im
<canvas>-Element wiederverwendet werden, ohne als "verändert" markiert zu werden.Wenn das
crossorigin-Attribut nicht angegeben ist, wird eine nicht-CORS-Anforderung gesendet (ohne denOrigin-Anforderungsheader) und der Browser markiert das Bild als verändert und beschränkt den Zugriff auf seine Bilddaten, wodurch seine Verwendung in<canvas>-Elementen verhindert wird.Wenn das
crossorigin-Attribut angegeben ist, wird eine CORS-Anforderung gesendet (mit demOrigin-Anforderungsheader); wenn der Server sich jedoch nicht dazu entscheidet, den Ursprung des Bildes dem Ursprungsort zugänglich zu machen (indem er keinenAccess-Control-Allow-Origin-Antwortheader sendet oder nicht den Ursprung der Site in einem solchenAccess-Control-Allow-Origin-Antwortheader einschließt, den er sendet), verhindert der Browser das Laden des Bildes und protokolliert einen CORS-Fehler in der Entwicklerkonsole.Zulässige Werte:
anonymous-
Eine CORS-Anfrage wird gesendet, wobei Anmeldedaten weggelassen werden (d.h. keine Cookies, X.509-Zertifikate oder
Authorization-Anforderungsheader). use-credentials-
Die CORS-Anforderung wird mit enthaltenen Anmeldeinformationen gesendet (d.h. Cookies, X.509-Zertifikate und der
Authorization-Anforderungsheader). Wenn der Server sich nicht dazu entscheidet, Anmeldeinformationen mit dem Ursprung der Site zu teilen (indem er denAccess-Control-Allow-Credentials: true-Antwortheader zurücksendet), markiert der Browser das Bild als verändert und beschränkt den Zugriff auf dessen Bilddaten.
Wenn das Attribut einen ungültigen Wert hat, behandeln Browser es, als ob der
anonymous-Wert verwendet wurde. Weitere Informationen finden Sie in den CORS-Einstellungseigenschaften. decoding-
Dieses Attribut gibt dem Browser einen Hinweis darauf, ob er die Bilddecodierung zusammen mit der Darstellung der anderen DOM-Inhalte in einem einzigen Präsentationsschritt durchführen soll, der "korrekter" aussieht (
sync), oder zuerst die anderen DOM-Inhalte darstellen und präsentieren und dann das Bild decodieren und später präsentieren soll (async). Tatsächlich bedeutetasync, dass die nächste Bildwiederholung nicht auf die Bilddecodierung wartet.Es ist oft schwierig, einen wahrnehmbaren Effekt bei der Verwendung von
decodingauf statischen<img>-Elementen zu erkennen. Sie werden wahrscheinlich zunächst als leere Bilder dargestellt, während die Bilddateien abgerufen werden (entweder aus dem Netzwerk oder aus dem Cache) und dann unabhängig behandelt werden, sodass die "Synchronisation" von Inhaltsaktualisierungen weniger offensichtlich ist. Allerdings kann die Blockierung der Darstellung während der Decodierung, obwohl oft sehr klein, gemessen werden — auch wenn es schwierig ist, dies mit dem menschlichen Auge zu beobachten. Siehe Was macht das Attribute für die Bilddecodierung tatsächlich? für eine detailliertere Analyse (tunetheweb.com, 2023).Die Verwendung unterschiedlicher
decoding-Typen kann zu bemerkenswerteren Unterschieden führen, wenn<img>-Elemente dynamisch über JavaScript in das DOM eingefügt werden — sieheHTMLImageElement.decodingfür weitere Details.Zulässige Werte:
sync-
Decodiert das Bild synchron mit der Darstellung der anderen DOM-Inhalte und präsentiert alles zusammen.
async-
Decodiert das Bild asynchron, nach der Darstellung und Präsentation der anderen DOM-Inhalte.
auto-
Keine Präferenz für den Decodierungsmodus; der Browser entscheidet, was am besten für den Benutzer ist. Dies ist der Standardwert.
elementtiming-
Markiert das Bild zur Beobachtung durch die
PerformanceElementTiming-API. Der angegebene Wert wird zu einem Bezeichner für das beobachtete Bildelement. Siehe auch dieelementtiming-Attributseite. fetchpriority-
Gibt einen Hinweis auf die relative Priorität beim Abrufen des Bildes an. Zulässige Werte:
high-
Ruft das Bild mit hoher Priorität im Verhältnis zu anderen Bildern ab.
low-
Ruft das Bild mit niedriger Priorität im Verhältnis zu anderen Bildern ab.
auto-
Keine Präferenz für die Abrufpriorität festlegen. Dies ist der Standardwert. Er wird verwendet, wenn kein Wert oder ein ungültiger Wert festgelegt ist.
height-
Die intrinsische Höhe des Bildes in Pixeln. Muss eine ganze Zahl ohne Einheit sein.
Hinweis: Die Angabe von
heightundwidthermöglicht es dem Browser, das Seitenverhältnis des Bildes zu berechnen, bevor das Bild geladen wird. Dieses Seitenverhältnis wird verwendet, um den Platz zu reservieren, der zur Anzeige des Bildes benötigt wird, wodurch eine Layoutverschiebung reduziert oder sogar vermieden wird, wenn das Bild heruntergeladen und auf dem Bildschirm angezeigt wird. Das Reduzieren von Layoutverschiebungen ist ein wesentlicher Bestandteil guter Benutzererfahrung und Webperformance. ismap-
Dieses boolesche Attribut gibt an, dass das Bild Teil einer serverseitigen Karte ist. In diesem Fall werden die Koordinaten, an denen der Benutzer auf das Bild geklickt hat, an den Server gesendet.
loading-
Gibt an, wie der Browser das Bild laden soll:
eager-
Lädt das Bild sofort, unabhängig davon, ob das Bild sich derzeit im sichtbaren Ansichtsfenster befindet (dies ist der Standardwert).
lazy-
Verzögert das Laden des Bildes, bis es eine berechnete Entfernung vom Ansichtsfenster erreicht, wie vom Browser definiert.
Lazy Loading vermieden den Netzwerk- und Speicherbandbreitenbedarf, um das Bild zu laden, bis es hinreichend sicher ist, dass es benötigt wird. Dies verbessert die Leistung in den meisten typischen Anwendungsfällen.
Während explizite
width- undheight-Attribute für alle Bilder empfohlen werden, um Layoutverschiebungen zu verhindern, sind sie besonders wichtig für Lazy Loaded-Bilder. Lazy Loaded-Bilder werden nie geladen, wenn sie keinen sichtbaren Teil eines Elements schneiden, selbst wenn das Laden sie ändern würde, da ungeladene Bilder einewidthundheightvon0haben. Dies führt zu einer noch störenderen Benutzererfahrung, wenn der Inhalt, der im Ansichtsfenster sichtbar ist, beim Lesen neu formatiert wird.Lazy Loaded-Bilder, die sich im sichtbaren Ansichtsfenster befinden, sind möglicherweise nicht sichtbar, wenn das load-Ereignis des Windows ausgelöst wird. Dies liegt daran, dass das Ereignis auf Basis von sofort geladenen Bildern ausgelöst wird — Lazy Loaded-Bilder werden nicht berücksichtigt, selbst wenn sie beim initialen Laden der Seite innerhalb des sichtbaren Ansichtsfensters liegen.
Das Laden wird nur verschoben, wenn JavaScript aktiviert ist. Dies ist eine Maßnahme gegen Tracking, da eine Site, wenn ein User Agent Lazy Loading unterstützt, wenn Scripting deaktiviert ist, immer noch möglich wäre, die ungefähre Scrollposition eines Benutzers während einer Sitzung zu verfolgen, indem strategisch Bilder im Markup einer Seite platziert werden, sodass ein Server verfolgen kann, wie viele Bilder angefordert werden und wann.
referrerpolicy-
Eine Zeichenfolge, die angibt, welchen Referrer beim Abrufen der Ressource verwendet werden soll:
no-referrer: DerReferer-Header wird nicht gesendet.no-referrer-when-downgrade: DerReferer-Header wird nicht an Ursprünge ohne TLS (HTTPS) gesendet.origin: Der gesendete Referrer wird auf den Ursprung der verweisenden Seite beschränkt: ihr Schema, ihr Host und ihr Port.origin-when-cross-origin: Der an andere Ursprünge gesendete Referrer wird auf das Schema, den Host und den Port beschränkt. Navigationen im selben Ursprung enthalten weiterhin den Pfad.same-origin: Ein Referrer wird für den selben Ursprung gesendet, aber Cross-Origin-Anforderungen enthalten keine Referrer-Informationen.strict-origin: Sendet den Ursprung des Dokuments nur als Referrer, wenn das Protokollsicherheitsniveau gleich bleibt (HTTPS→HTTPS), sendet ihn jedoch nicht an ein weniger sicheres Ziel (HTTPS→HTTP).strict-origin-when-cross-origin(Standard): Sendet eine vollständige URL bei der Durchführung einer Anfrage gleichen Ursprungs, sendet nur den Ursprung, wenn das Protokollsicherheitsniveau gleich bleibt (HTTPS→HTTPS), und sendet keinen Header an ein weniger sicheres Ziel (HTTPS→HTTP).unsafe-url: Der Referrer enthält den Ursprung und den Pfad (aber nicht das Fragment, Passwort oder Benutzername). Dieser Wert ist unsicher, da er Ursprünge und Pfade von TLS-geschützten Ressourcen an unsichere Ursprünge weitergibt.
sizes-
Ein oder mehrere durch Kommas getrennte Werte, die Quellgrößen oder das
auto-Schlüsselwort sein können. Die Spezifikation erfordert, dass dassizes-Attribut nur vorhanden ist, wennsrcsetBreitenbeschreibungen verwendet.- source size
-
Eine Quellgröße besteht aus:
- Einer Medienbedingung, weggelassen für das letzte Element in der Liste.
- Einem Quellgrößenwert.
Zum Beispiel schlägt die folgende Quellgröße vor, eine
1000pxbreite Bildquelle zu verwenden, falls die Ansichtsfenster-Breite 500px oder weniger beträgt.css(width <= 500px) 1000pxMedienbedingungen beschreiben Eigenschaften des Ansichtsfensters, nicht des Bildes. Da ein Quellgrößenbeschreiber die Breite angibt, die für das Bild während des Layouts verwendet werden soll, basiert die Medienbedingung typischerweise (aber nicht unbedingt) auf der
width.Quellgrößenwerte geben die beabsichtigte Darstellungsgröße des Bildes an. User Agents verwenden die aktuelle Quellgröße, um eine der durch das
srcset-Attribut bereitgestellten Quellen auszuwählen, wenn diese Quellen mit Breitenbeschreibern (w) beschrieben werden. Derw-Wert, der insizesdefiniert ist, bestimmt die Standardlayoutbreite des Bildes. In der Abwesenheit von CSS wird der Browser das Bild in dieser Größe rendern, unabhängig von den physischen Pixeldimensionen der heruntergeladenen Datei.Ein Quellgrößenwert kann jede nicht-negative Länge sein. Es darf keine CSS-Funktionen außer den Mathe-Funktionen verwenden. Einheiten werden auf dieselbe Weise interpretiert wie Media-Queries, was bedeutet, dass alle relativen Längeneinheiten relativ zur Dokumentwurzel und nicht zum
<img>-Element sind. Zum Beispiel ist einem-Wert relativ zur Schriftgröße der Wurzel und nicht zur Schriftgröße des Bildes. [Prozent]-Werte(/de/docs/Web/CSS/Reference/Values/percentage) sind nicht erlaubt. Wenn dassizes-Attribut nicht bereitgestellt wird, hat es einen Standardwert von100vw(die Ansichtsfensterbreite). auto-
Das
auto-Schlüsselwort zeigt an, dass der Browser die erwartete Layoutbreite des Elements verwenden soll, um das anzuzeigende Bild auszuwählen. Das heißt, es sollte die konkrete Größe des Bildes verwenden, die berechnet wird, nachdem HTML und CSS auf das Layout angewendet wurden. Dies gilt nur in Kombination mitloading="lazy", da die Seite erwartet, dass zum Zeitpunkt des Ladens des Bildes bereits CSS und andere Layoutinformationen vorhanden sind.Die Verwendung von
autoerspart es Ihnen, Ihre Layoutmedienbedingungen zweimal anzugeben: einmal für das Layout und einmal für die Auswahl eines geeigneten Bildes zum Abrufen und Anzeigen.Wenn
autonicht aufgelöst werden kann — entweder weil der Browser es nicht unterstützt oder das Bild noch keine Layoutgröße hat — fällt der Browser auf die Quellgrößen in der Liste zurück, um die Breite zu bestimmen, dann zuwidth/height-Attributen, die auf dem Element definiert sind, und schließlich auf die Standardgröße für<img>-Elemente, die im User Agent Stylesheet definiert ist (300px mal 150px).Zur besseren Abwärtskompatibilität mit Browsern, die
autonicht unterstützen, können Sie nachautoFallback-Gößen imsizes-Attribut einschließen. Sie sollten auch diewidth- undheight-Attribute des Elements auf die intrinsischen Dimensionen des größten Bildes in Ihremsrcsetfestlegen, damit der Browser Platz mit dem korrekten Seitenverhältnis reservieren kann:html<img loading="lazy" width="200" height="200" sizes="auto, (max-width: 30em) 100vw, (max-width: 50em) 50vw, calc(33vw - 100px)" srcset=" swing-200.jpg 200w, swing-400.jpg 400w, swing-800.jpg 800w, swing-1600.jpg 1600w " src="swing-400.jpg" alt="Kettlebell Swing" />
src-
Die Bild-URL. Mindestens eines von
srcundsrcsetist für ein<img>-Element erforderlich. Fallssrcsetangegeben ist, wirdsrcauf eine von zwei Arten verwendet:- als Fallback für Browser, die
srcsetnicht unterstützen. - wenn
srcsetden "x"-Beschreiber verwendet, istsrcäquivalent zu einer Quelle mit dem Dichtebeschreiber1x; das heißt, das imsrcangegebene Bild wird auf Bildschirmen mit niedriger Dichte verwendet (z.B. typische 72 DPI oder 96 DPI Displays).
- als Fallback für Browser, die
srcset-
Eine oder mehr durch Kommas getrennte Zeichenfolgen, die mögliche Bildquellen für den User Agent angeben, die verwendet werden sollen.
Jede Zeichenkette besteht aus:
- Einer URL zu einem Bild
- Optional, Leerzeichen gefolgt von einem der folgenden:
- Einem Breitenbeschreiber (eine positive ganze Zahl direkt gefolgt von
w). Es muss der intrinsischen Breite des referenzierten Bildes entsprechen. Der Breitenbeschreiber wird durch die insizesangegebene Quellgröße geteilt, um die effektive Pixeldichte zu berechnen. Zum Beispiel, um eine Bildressource bereitzustellen, die verwendet werden soll, wenn der Renderer ein 450 Pixel breites Bild benötigt, verwenden Sie den Breitenbeschreiber450w. Wenn einsrcset"w"-Beschreiber enthält, verwendet der Browser diese Beschreiber zusammen mit demsizes-Attribut, um eine Ressource auszuwählen. - Einem Pixeldichtebeschreiber (eine positive Fließkommazahl direkt gefolgt von
x). Er gibt die Bedingung an, unter der die entsprechende Bildressource als Pixeldichte des Displays verwendet werden soll. Zum Beispiel, um eine Bildressource bereitzustellen, die verwendet werden soll, wenn die Pixeldichte das Doppelte der Standarddichte beträgt, verwenden Sie den Pixeldichtebeschreiber2xoder2.0x.
- Einem Breitenbeschreiber (eine positive ganze Zahl direkt gefolgt von
Wenn kein Beschreiber angegeben ist, wird der Quelle der Standardbeschreiber
1xzugewiesen. Es ist falsch, Breitenbeschreiber und Pixeldichtebeschreiber im selbensrcset-Attribut zu mischen. Doppelte Beschreiber (z.B. zwei Quellen im selbensrcset, die beide mit2xbeschrieben sind) sind ebenfalls ungültig.Leerzeichen, abgesehen von dem Leerzeichen, das die URL von ihrem entsprechenden Bedingungsbeschreiber trennt, werden ignoriert; dies schließt sowohl führende und nachgestellte Leerzeichen ein, als auch Leerzeichen vor oder nach jedem Komma. Wenn jedoch ein Bildkandidatstring keine Beschreiber und kein nach der URL stehendes Leerzeichen enthält, muss der folgende Bildkandidatstring, falls vorhanden, mit einem oder mehreren Leerzeichen beginnen, oder das Komma wird als Teil der URL betrachtet.
Wenn das
srcset-Element des<img>-Elementsx-Beschreiber verwendet, berücksichtigen Browser auch die URL imsrc-Attribut (falls vorhanden) als Kandidaten und weisen ihm einen Standardbeschreiber von1xzu. Andererseits, wenn dassrcset-Attribut Breitenbeschreiber verwendet, wirdsrcnicht berücksichtigt, und dassizes-Attribut wird stattdessen verwendet.Der User Agent wählt nach eigenem Ermessen eine der verfügbaren Quellen aus. Dies gibt ihnen erheblichen Spielraum, ihre Auswahl basierend auf Dingen wie Benutzerpräferenzen oder Bandbreiten-Bedingungen anzupassen. Siehe unser Leitfaden zu Responsiven Bildern für ein Beispiel.
width-
Die intrinsische Breite des Bildes in Pixeln. Muss eine ganze Zahl ohne Einheit sein.
usemap-
Die partielle URL (beginnend mit
#) einer Bildkarte, die mit dem Element verbunden ist.
Veraltete Attribute
align-
Richtet das Bild mit seinem umgebenden Kontext aus. Verwenden Sie stattdessen die
float- und/odervertical-align-CSS Eigenschaften. Zulässige Werte: border-
Die Breite eines Randes um das Bild. Verwenden Sie stattdessen die
border-CSS Eigenschaft. hspace-
Die Anzahl der Pixel Leerraum links und rechts des Bildes. Verwenden Sie stattdessen die
margin-CSS-Eigenschaft. longdesc-
Ein Link zu einer detaillierteren Beschreibung des Bildes. Mögliche Werte sind eine URL oder eine Element-
id(/de/docs/Web/HTML/Reference/Global_attributes/id).Hinweis: Dieses Attribut gilt in der HTML-Spezifikation als obsolet. Es hat eine ungewisse Zukunft; Autoren sollten eine WAI-ARIA Alternative wie
aria-describedbyoderaria-detailsverwenden. name-
Ein Name für das Element. Verwenden Sie stattdessen das
id-Attribut. vspace-
Die Anzahl der Pixel Leerraum über und unter dem Bild. Verwenden Sie stattdessen die
margin-CSS-Eigenschaft.
Styling mit CSS
<img> ist ein ersetztes Element; es hat standardmäßig einen display-Wert von inline, aber seine Standardabmessungen werden durch die eingebetteten intrinsischen Werte des Bildes definiert, als wäre es inline-block. Sie können Eigenschaften wie border/border-radius, padding/margin, width, height usw. auf ein Bild anwenden.
<img> hat keine Grundlinie, daher wird es, wenn Bilder in einem Inline-Formatierungskontext mit vertical-align: baseline verwendet werden, am unteren Rand des Bildes auf der Textgrundlinie platziert.
Sie können die Eigenschaft object-position verwenden, um das Bild im Element zu positionieren, und die Eigenschaft object-fit, um die Größenanpassung des Bildes im Element zu justieren (zum Beispiel, ob das Bild das Element anpassen oder füllen soll, selbst wenn Zuschneiden erforderlich ist).
Je nach Typ kann ein Bild eine intrinsische Breite und Höhe haben. Für einige Bildtypen sind jedoch intrinsische Dimensionen nicht erforderlich. SVG-Bilder beispielsweise haben keine intrinsischen Dimensionen, wenn ihr Wurzel-<svg>-Element keine width- oder height-Angaben hat.
Barrierefreiheit
>Bedeutungsvolle alternative Beschreibungen verfassen
Der Wert eines alt-Attributs sollte einen klaren und kurzen Textersatz für den Inhalt des Bildes bieten. Es sollte nicht die Existenz des Bildes selbst oder den Dateinamen des Bildes beschreiben. Wenn das alt-Attribut absichtlich weggelassen wird, weil das Bild kein textuelles Äquivalent hat, ziehen Sie alternative Methoden in Betracht, um das zu präsentieren, was das Bild zu kommunizieren versucht.
Nicht tun
<img alt="image" src="penguin.jpg" />
Tun
<img alt="A Penguin on a beach." src="penguin.jpg" />
Ein wichtiger Barrierefreiheitstest besteht darin, den alt-Attributinhalt zusammen mit dem vorangehenden Textinhalt zu lesen, um zu sehen, ob er dieselbe Bedeutung wie das Bild vermittelt. Zum Beispiel, wenn das Bild dem Satz "Auf meinen Reisen habe ich ein niedliches kleines Tier gesehen:" vorangegangen wäre, könnte das Nicht tun-Beispiel von einem Screenreader als "Auf meinen Reisen habe ich ein niedliches kleines Tier gesehen: Bild" gelesen werden, was keinen Sinn ergibt. Das Tun-Beispiel könnte von einem Screenreader als "Auf meinen Reisen habe ich ein niedliches kleines Tier gesehen: Ein Pinguin am Strand." gelesen werden, was Sinn ergibt.
Für Bilder, die eine Aktion auslösen sollen, z.B. Bilder, die innerhalb eines <a>- oder <button>-Elements verschachtelt sind, ziehen Sie in Betracht, die ausgelöste Aktion im Wert des alt-Attributs zu beschreiben. Zum Beispiel könnten Sie alt="nächste Seite" anstelle von alt="Pfeil rechts" schreiben. Sie könnten auch erwägen, im title-Attribut eine optionale weitere Beschreibung hinzuzufügen; dies könnte von Screenreadern gelesen werden, falls vom Benutzer angefordert.
Wenn ein alt-Attribut bei einem Bild nicht vorhanden ist, können einige Screenreader den Dateinamen des Bildes stattdessen ankündigen. Dies kann eine verwirrende Erfahrung sein, wenn der Dateiname den Bildinhalt nicht repräsentiert.
- Eine Entscheidungshilfe für alt-Attribute • Bilder • WAI Web Accessibility Tutorials
- Alt-Text: Der ultimative Leitfaden — Axess Lab
- Wie man großartige Alt-Text-Designs erstellt: Eine Einführung | Deque
- MDN Verstehen von WCAG, Richtlinie 1.1 Erklärungen
- Verstehen des Erfolgskriteriums 1.1.1 | W3C Verstehen von WCAG 2.0
SVG als Bild identifizieren
Aufgrund eines VoiceOver-Bugs kündigt VoiceOver SVG-Bilder nicht korrekt als Bilder an. Fügen Sie role="img" zu allen <img>-Elementen mit SVG-Quelldateien hinzu, um sicherzustellen, dass unterstützende Technologien das SVG korrekt als Bildinhalt ankündigen.
<img src="mdn.svg" alt="MDN" role="img" />
Das title-Attribut
Das title-Attribut ist kein akzeptabler Ersatz für das alt-Attribut. Vermeiden Sie außerdem, den Wert des alt-Attributs im selben Bild im title-Attribut zu duplizieren. Dadurch könnten einige Screenreader dasselbe zweimal ankündigen, was eine verwirrende Erfahrung schafft.
Das title-Attribut sollte auch nicht als ergänzende Bildunterschrift verwendet werden, um die alt-Beschreibung eines Bildes zu begleiten. Wenn ein Bild eine Bildunterschrift benötigt, verwenden Sie die figure- und figcaption-Elemente.
Der Wert des title-Attributs wird dem Benutzer normalerweise als Tooltip präsentiert, der kurz nach dem Anhalten des Cursors über dem Bild angezeigt wird. Während dies zusätzliche Informationen für den Benutzer bereitstellen kann, sollten Sie nicht davon ausgehen, dass der Benutzer es jemals sehen wird: Der Benutzer hat möglicherweise nur eine Tastatur oder einen Touchscreen. Wenn Sie Informationen haben, die besonders wichtig oder wertvoll für den Benutzer sind, präsentieren Sie diese inline mit einer der oben erwähnten Methoden, anstatt title zu verwenden.
Beispiele
>Alternativer Text
Das folgende Beispiel bettet ein Bild in die Seite ein und enthält einen alternativen Text für die Barrierefreiheit.
<img src="/shared-assets/images/examples/favicon144.png" alt="MDN" />
Bildlink
Dieses Beispiel baut auf dem vorherigen auf und zeigt, wie man das Bild in einen Link verwandelt. Dazu müssen Sie das <img>-Tag im <a> verschachteln. Der alternative Text sollte die Ressource beschreiben, auf die der Link zeigt, als ob Sie einen Textlink benutzen würden.
<a href="https://developer.mozilla.org">
<img
src="/shared-assets/images/examples/favicon144.png"
alt="Visit the MDN site" />
</a>
Nutzung des srcset-Attributs
In diesem Beispiel fügen wir ein srcset-Attribut mit einem Verweis auf eine hochauflösende Version des Logos hinzu; dieses wird anstelle des src-Bildes auf hochauflösenden Geräten geladen. Das im src-Attribut referenzierte Bild wird in User Agents, die srcset unterstützen, als 1x-Kandidat gezählt.
<img
src="/shared-assets/images/examples/favicon72.png"
alt="MDN"
srcset="/shared-assets/images/examples/favicon144.png 2x" />
Nutzung der Attribute srcset und sizes
Das src-Attribut wird in User Agents, die srcset unterstützen, ignoriert, wenn w-Beschreiber enthalten sind. Wenn die (width <= 600px)-Medienbedingung übereinstimmt, wird das 200 Pixel breite Bild geladen (es ist dasjenige, das 200px am nächsten kommt), andernfalls wird das andere Bild geladen.
<img
src="clock-demo-200px.png"
alt="The time is 12:45."
srcset="clock-demo-200px.png 200w, clock-demo-400px.png 400w"
sizes="(width <= 600px) 200px, 50vw" />
Hinweis: Um das Größenanpassen in Aktion zu sehen, sehen Sie sich das Beispiel auf einer separaten Seite an, damit Sie den Inhaltsbereich tatsächlich vergrößern können.
Sicherheits- und Datenschutzbedenken
Obwohl <img>-Elemente unschuldige Verwendungszwecke haben, können sie unerwünschte Konsequenzen für die Sicherheit und den Datenschutz der Benutzer haben. Weitere Informationen und Gegenmaßnahmen finden Sie unter Referer-Header: Datenschutz- und Sicherheitsbedenken.
Technische Zusammenfassung
| Inhaltskategorien |
Fließendes Inhalt,
Schriftsatzinhalt,
eingebetteter Inhalt,
fühlbarer Inhalt. Wenn das Element ein usemap-Attribut hat, ist es auch Teil
der interaktiven Inhaltskategorie.
|
|---|---|
| Erlaubter Inhalt | Keiner; es ist ein void-Element. |
| Tag-Auslassung | Muss ein Start-Tag haben und darf keinen End-Tag haben. |
| Erlaubte Eltern | Jedes Element, das eingebetteten Inhalt akzeptiert. |
| Implizite ARIA-Rolle |
|
| Erlaubte ARIA-Rollen |
|
| DOM-Schnittstelle | [`HTMLImageElement`](/de/docs/Web/API/HTMLImageElement) |
Spezifikationen
| Spezifikation |
|---|
| HTML> # the-img-element> |
Browser-Kompatibilität
Siehe auch
<picture>,<object>, und<embed>-Elementeobject-fit,object-position,image-orientation,image-rendering, undimage-resolution: Bildbezogene CSS-Eigenschaften.HTMLImageElement-Schnittstelle für dieses Element- HTML-Bilder
- Leitfaden zu Bilddateitypen und -formaten
- Leitfaden zu Responsiven Bildern