<image> CSS-Typ
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.
Der <image> CSS Datentyp stellt ein zweidimensionales Bild dar.
Syntax
Der <image>-Datentyp kann durch eines der folgenden Elemente 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, Bildausschnitt oder einfarbiger Farbfleck, definiert durch die
image()-Funktion - Eine Mischung aus zwei oder mehr Bildern, definiert durch die
cross-fade()-Funktion. - Eine Auswahl von Bildern, die basierend auf der Auflösung ausgewählt wird, definiert durch die
image-set()-Funktion. - Generiert durch ein Paint-Worklet mit der
paint()-Funktion.
Beschreibung
CSS kann die folgenden Arten von Bildern verarbeiten:
- Bilder mit intrinsischen Abmessungen (einer natürlichen Größe), wie ein JPEG, PNG oder ein anderes Rasterformat.
- Bilder mit mehrfachen intrinsischen Abmessungen, die in mehreren Versionen in einer einzigen Datei existieren, wie einige .ico-Formate. (In diesem Fall sind die intrinsischen Abmessungen die des bildgrößten Bereichs und das Seitenverhältnis, das dem umgebenden Kasten am ähnlichsten ist.)
- Bilder ohne intrinsische Abmessungen, aber mit einem intrinsischen Seitenverhältnis zwischen Breite und Höhe, wie ein SVG oder ein anderes Vektorformat.
- Bilder ohne intrinsische Abmessungen oder ein intrinsisches Seitenverhältnis, wie ein CSS-Gradient.
Konkrete Größe
CSS bestimmt die konkrete Größe eines Objekts anhand von (1) seinen intrinsischen Abmessungen; (2) seiner angegebenen Größe, definiert durch CSS-Eigenschaften wie width, height, oder background-size; und (3) seiner Standardgröße, die durch die Art der Eigenschaft bestimmt wird, bei der das Bild verwendet wird:
| Art des Objekts (CSS-Eigenschaft) | Standardobjektgröße |
|---|---|
background-image |
Die Größe des Hintergrundpositionierungsbereichs des Elements |
list-style-image |
Die Größe eines 1em Zeichens |
border-image-source |
Die Größe des Rahmenbildbereichs 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 |
Risiko-Feature. 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 300px × 150px Rechteck |
Die konkrete Objektgröße wird mit folgendem Algorithmus berechnet:
- Wenn die angegebene Größe sowohl die Breite als auch die Höhe definiert, werden diese Werte als konkrete Objektgröße verwendet.
- Wenn die angegebene Größe nur die Breite oder nur die Höhe definiert, wird der fehlende Wert unter Verwendung des intrinsischen Verhältnisses bestimmt, falls vorhanden, der intrinsischen Abmessungen, wenn der angegebene Wert übereinstimmt, oder der Standardobjektgröße für diesen fehlenden Wert.
- Wenn die angegebene 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 Standardobjektgröße in einer Dimension zu überschreiten. Wenn das Bild kein intrinsisches Seitenverhältnis hat, wird das intrinsische Seitenverhältnis des Objekts verwendet, auf das es angewendet wird; wenn dieses Objekt keines hat, werden die fehlende Breite oder Höhe von der Standardobjektgröße übernommen.
Hinweis: Nicht alle Browser unterstützen jeden Bildtyp bei jeder Eigenschaft. Siehe die Browser-Kompatibilitätssektion für Details.
Barrierefreiheit
Browser bieten keine speziellen Informationen zu Hintergrundbildern für assistive Technologien. Dies ist vor allem für Bildschirmleser wichtig, da ein Bildschirmleser seine Anwesenheit nicht ankündigen wird und somit seinen Benutzern nichts vermitteln kann. 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
| Spezifikation |
|---|
| CSS Images Module Level 3> # image-values> |