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)

wobei:

workletName

Der Name des registrierten Worklets.

parameters

Optionale zusätzliche Parameter, die dem paintWorklet übergeben werden

Beispiele

Grundlegendes Anwendungsbeispiel

In JavaScript registrieren wir das paint worklet:

js
CSS.paintWorklet.addModule("boxbg.js");

... dann definieren wir im CSS 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
li {
  background-image: paint(boxbg);
  --boxColor: hsl(55 90% 60% / 100%);
}
li:nth-of-type(3n) {
  --boxColor: hsl(155 90% 60% / 100%);
  --widthSubtractor: 20;
}
li:nth-of-type(3n + 1) {
  --boxColor: hsl(255 90% 60% / 100%);
  --widthSubtractor: 40;
}

Das Ergebnis wird folgendes sein:

Mit zusätzlichen Parametern

Sie können zusätzliche Argumente über die CSS paint() Funktion übergeben. In diesem Beispiel haben wir zwei Argumente übergeben: Ob das background-image einer Gruppe von Listenelementen gefüllt ist oder nur einen Konturumriss hat, und die Breite dieses Umrisses:

css
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 eingefügt, 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

BCD tables only load in the browser

Siehe auch