Fonction CSS paint()
Disponibilité limitée
Cette fonctionnalité n'est pas Compatible car elle ne fonctionne pas dans certains des navigateurs les plus utilisés.
Le fonction CSS paint() définit une valeur de type <image> générée avec un PaintWorklet.
Syntaxe
paint(workletName, ...parameters)
Paramètres
workletName-
Le nom du worklet enregistré.
parametersFacultatif-
Des paramètres supplémentaires, optionnels, à passer à
paintWorklet.
Syntaxe formelle
<paint()> =
paint( <ident> , <declaration-value>? )
Exemples
>Utilisation simple de paint()
A partir du HTML suivant :
<ul>
<li>Élément 1</li>
<li>Élément 2</li>
<li>Élément 3</li>
<li>Élément 4</li>
<li>Élément 5</li>
<li>Élément 6</li>
<li>Élément 7</li>
<li>Élément 8</li>
<li>Élément 9</li>
<li>Élément 10</li>
<li>Élément N</li>
</ul>
Avec JavaScript, nous enregistrons le paint worklet :
CSS.paintWorklet.addModule(
"https://mdn.github.io/houdini-examples/cssPaint/intro/worklets/boxbg.js",
);
Dans le CSS, on définit la propriété background-image comme un type paint() avec le nom du worklet, boxbg, ainsi que toutes les variables (par ex. : --box-color et --width-subtractor) que le worklet utilise :
body {
font: 1.2em / 1.2 sans-serif;
}
li {
background-image: paint(boxbg);
--box-color: hsl(55 90% 60%);
}
li:nth-of-type(3n) {
--box-color: hsl(155 90% 60%);
--width-subtractor: 20;
}
li:nth-of-type(3n + 1) {
--box-color: hsl(255 90% 60%);
--width-subtractor: 40;
}
Utilisation de paint() avec paramètres
Vous pouvez passer des arguments optionnels à la fonction CSS paint(). Dans cet exemple, nous passons deux arguments qui contrôlent si le background-image d'un groupe d'éléments de liste est « rempli » ou possède un contour (« stroke »), ainsi que la largeur de ce contour :
body {
font: 1.2em / 1.2 sans-serif;
}
li {
--box-color: hsl(55 90% 60% / 100%);
background-image: paint(hollow-highlights, stroke, 2px);
}
li:nth-of-type(3n) {
--box-color: hsl(155 90% 60% / 100%);
background-image: paint(hollow-highlights, filled, 3px);
}
li:nth-of-type(3n + 1) {
--box-color: hsl(255 90% 60% / 100%);
background-image: paint(hollow-highlights, stroke, 1px);
}
On a inclus une propriété personnalisée dans le bloc du sélecteur définissant une couleur de boîte (--box-color). Les propriétés personnalisées sont accessibles au PaintWorklet.
Spécifications
| Spécification |
|---|
| CSS Painting API Level 1> # paint-notation> |
Compatibilité des navigateurs
Voir aussi
- L'interface
PaintWorkletGlobalScope - L'API CSS Painting
- Utiliser l'API CSS Painting
- Le type de donnée
<image> - L'API Canvas