paint()

Limited availability

This feature is not Baseline because it does not work in some of the most widely-used browsers.

Die paint() CSS Funktion definiert einen <image>-Wert, der mit einem PaintWorklet erzeugt wird.

Syntax

css
paint(workletName, ...parameters)

wo:

workletName

Der Name des registrierten Worklets.

parameters Optional

Optionale zusätzliche Parameter, die an das paintWorklet übergeben werden

Formale Syntax

<paint()> = 
paint( <ident> , <declaration-value>? )

Beispiele

Grundlegende Verwendung von CSS paint()

Gegebenes HTML:

html
<ul>
  <li>item 1</li>
  <li>item 2</li>
  <li>item 3</li>
  <li>item 4</li>
  <li>item 5</li>
  <li>item 6</li>
  <li>item 7</li>
  <li>item 8</li>
  <li>item 9</li>
  <li>item 10</li>
  <li>item N</li>
</ul>

In JavaScript registrieren wir das paint worklet:

js
CSS.paintWorklet.addModule(
  "https://mdn.github.io/houdini-examples/cssPaint/intro/worklets/boxbg.js",
);

Im CSS definieren wir das background-image als einen paint()-Typ mit dem Worklet-Namen boxbg, zusammen mit allen Variablen (z. B. --boxColor und --widthSubtractor), die das Worklet verwenden wird:

css
body {
  font: 1.2em / 1.2 sans-serif;
}
li {
  background-image: paint(boxbg);
  --boxColor: hsl(55 90% 60%);
}

li:nth-of-type(3n) {
  --boxColor: hsl(155 90% 60%);
  --widthSubtractor: 20;
}

li:nth-of-type(3n + 1) {
  --boxColor: hsl(255 90% 60%);
  --widthSubtractor: 40;
}

CSS paint() mit Parametern

Sie können optionale Argumente in der CSS paint() Funktion übergeben. In diesem Beispiel haben wir zwei Argumente übergeben, die steuern, ob das background-image einer Gruppe von Listenelementen filled oder mit einem stroke-Umriss versehen ist, und die width dieses Umrisses:

css
body {
  font: 1.2em / 1.2 sans-serif;
}

li {
  --boxColor: hsl(55 90% 60% / 100%);
  background-image: paint(hollowHighlights, stroke, 2px);
}

li:nth-of-type(3n) {
  --boxColor: hsl(155 90% 60% / 100%);
  background-image: paint(hollowHighlights, filled, 3px);
}

li:nth-of-type(3n + 1) {
  --boxColor: hsl(255 90% 60% / 100%);
  background-image: paint(hollowHighlights, stroke, 1px);
}

Wir haben eine benutzerdefinierte Eigenschaft im Selektorblock aufgenommen, die eine boxColor definiert. Benutzerdefinierte Eigenschaften sind für das PaintWorklet zugänglich.

Spezifikationen

Specification
CSS Painting API Level 1
# paint-notation

Browser-Kompatibilität

Report problems with this compatibility data on GitHub
desktopmobile
Chrome
Edge
Firefox
Opera
Safari
Chrome Android
Firefox for Android
Opera Android
Safari on iOS
Samsung Internet
WebView Android
WebView on iOS
paint()
Supports additional parameters to pass to the paintWorklet

Legend

Tip: you can click/tap on a cell for more information.

Full support
Full support
No support
No support
See implementation notes.

Siehe auch