<image>
Baseline
Widely available
*
This feature is well established and works across many devices and browser versions. It’s been available across browsers since Juli 2015.
* Some parts of this feature may have varying levels of support.
Der <image> CSS Datentyp repräsentiert ein zweidimensionales Bild.
Syntax
Der <image> Datentyp kann auf folgende Weise dargestellt werden:
- Ein Bild, das durch den
<url>Datentyp angegeben wird - Ein
<gradient>Datentyp - Ein Teil der Webseite, definiert durch die
element()Funktion - Ein Bild, Bildfragment oder eine einfarbige Fläche, definiert durch die
image()Funktion - Eine Mischung aus zwei oder mehr Bildern, definiert durch die
cross-fade()Funktion - Eine Auswahl an Bildern, basierend auf der Auflösung, definiert durch die
image-set()Funktion. - Generiert durch einen Paint-Worklet mit der
paint()Funktion.
Beschreibung
CSS kann folgende Arten von Bildern verarbeiten:
- Bilder mit intrinsischen Abmessungen (einer natürlichen Größe), wie ein JPEG, PNG oder ein anderes Rasterformat.
- Bilder mit mehreren intrinsischen Abmessungen, die in mehreren Versionen innerhalb einer einzigen Datei existieren, wie einige .ico-Formate. (In diesem Fall sind die intrinsischen Abmessungen diejenigen des flächenmäßig größten Bildes und das Seitenverhältnis am ähnlichsten zu dem des umgebenden Kastens.)
- Bilder ohne intrinsische Abmessungen, aber mit einem intrinsischen Seitenverhältnis zwischen Breite und Höhe, wie ein SVG oder ein anderes Vektorformat.
- Bilder mit weder intrinsischen Abmessungen noch einem intrinsischen Seitenverhältnis, wie ein CSS-Gradient.
CSS bestimmt die konkrete Größe eines Objekts unter Berücksichtigung von (1) seinen intrinsischen Abmessungen; (2) seiner spezifizierten Größe, definiert durch CSS-Eigenschaften wie width, height, oder background-size; und (3) seiner Standardgröße, die von der Art der Eigenschaft bestimmt wird, mit der das Bild verwendet wird:
| Art des Objekts (CSS-Eigenschaft) | Standardgröße des Objekts |
|---|---|
background-image |
Die Größe des Hintergrundpositionsbereichs des Elements |
list-style-image |
Die Größe eines 1em-Zeichens |
border-image-source |
Die Größe des Randbildbereichs des Elements |
cursor |
Die vom Browser definierte Größe, die der üblichen Zeigergröße auf dem System des Clients entspricht |
mask-image |
? |
shape-outside |
? |
mask-border-source |
? |
symbols() für @counter-style |
Gefährdete Funktion. Wenn unterstützt, die vom Browser definierte Größe, die der üblichen Zeigergröße auf dem System des Clients entspricht |
content für ein Pseudo-Element (::after/::before) |
Ein Rechteck von 300px × 150px |
Die konkrete Objektgröße wird unter Verwendung des folgenden Algorithmus berechnet:
- Wenn die spezifizierte Größe sowohl die Breite als auch die Höhe definiert, werden diese Werte als konkrete Objektgröße verwendet.
- Wenn die spezifizierte Größe nur die Breite oder nur die Höhe definiert, wird der fehlende Wert unter Verwendung des intrinsischen Verhältnisses, wenn vorhanden, der intrinsischen Abmessungen, wenn der spezifizierte Wert übereinstimmt, oder der Standardgröße des Objekts für diesen fehlenden Wert bestimmt.
- Wenn die spezifizierte Größe weder die Breite noch die Höhe definiert, wird die konkrete Objektgröße so berechnet, dass sie dem intrinsischen Seitenverhältnis des Bildes entspricht, ohne die Standardgröße des Objekts in irgendeiner Dimension zu überschreiten. Hat das Bild kein intrinsisches Seitenverhältnis, wird das intrinsische Seitenverhältnis des Objekts, auf das es angewendet wird, verwendet; hat dieses Objekt keines, werden die fehlende Breite oder Höhe aus der Standardgröße des Objekts genommen.
Hinweis: Nicht alle Browser unterstützen jeden Bildtyp auf jeder Eigenschaft. Siehe den Abschnitt zur Browser-Kompatibilität für Details.
Barrierefreiheit
Browser bieten keine speziellen Informationen zu Hintergrundbildern für unterstützende Technologien. Dies ist vor allem für Screenreader wichtig, da ein Screenreader deren Vorhandensein nicht ankündigt und daher den Nutzern nichts vermittelt. Wenn das Bild Informationen enthält, die zum Verständnis des Gesamtzwecks der Seite entscheidend sind, ist es besser, es semantisch im Dokument zu beschreiben.
Formale Syntax
<image> =
<url> |
<image()> |
<image-set()> |
<cross-fade()> |
<element()> |
<gradient>
<image()> =
image( <image-tags>? [ <image-src>? , <color>? ]! )
<image-set()> =
image-set( <image-set-option># )
<cross-fade()> =
cross-fade( <cf-image># )
<element()> =
element( <id-selector> )
<image-tags> =
ltr |
rtl
<image-src> =
<url> |
<string>
<image-set-option> =
[ <image> | <string> ] [ <resolution> || type( <string> ) ]?
<cf-image> =
[ <image> | <color> ] &&
<percentage [0,100]>?
<id-selector> =
<hash-token>
Beispiele
>Gültige Bilder
url("test.jpg") /* A <url>, as long as test.jpg is an actual image */
linear-gradient(blue, red) /* A <gradient> */
element(#real-id) /* A part of the webpage, referenced with the element() function,
if "real-id" is an existing ID on the page */
image(ltr "arrow.png#xywh=0,0,16,16", red)
/* A section 16x16 section of <url>, starting from the top, left of the original
image as long as arrow.png is a supported image, otherwise a solid
red swatch. If language is rtl, the image will be horizontally flipped. */
cross-fade(20% url("twenty.png"), url("eighty.png"))
/* cross faded images, with twenty being 20% opaque
and eighty being 80% opaque. */
image-set("test.jpg' 1x, 'test-2x.jpg" 2x)
/* a selection of images with varying resolutions */
Ungültige Bilder
"no-url.jpg" /* An image file must be defined using the url() function. */
url("report.pdf") /* A file pointed to by the url() function must be an image. */
element(#fakeid) /* An element ID must be an existing ID on the page. */
image(z.jpg#xy=0,0) /* The spatial fragment must be written in the format of xywh=#,#,#,# */
image-set("cat.jpg" 1x, "dog.jpg" 1x) /* every image in an image set must have a different resolution */
Spezifikationen
| Specification |
|---|
| CSS Images Module Level 3> # image-values> |