invert()
Baseline
Widely available
Cette fonctionnalité est bien établie et fonctionne sur de nombreux appareils et versions de navigateurs. Elle est disponible sur tous les navigateurs depuis septembre 2016.
La fonction CSS invert() permet d'inverser les couleurs de l'image. Le résultat de cette fonction est une valeur <filter-function>.
Exemple interactif
filter: invert(0);
filter: invert(0.3);
filter: invert(50%);
filter: invert(70%);
filter: invert(1);
<section id="default-example">
<img
class="transition-all"
id="example-element"
src="/shared-assets/images/examples/firefox-logo.svg"
width="200" />
</section>
Syntaxe
/* Aucune inversion */
invert(0)
/* Inversion complète */
invert()
invert(1)
invert(100%)
/* Inversion à 60% */
invert(.6)
invert(60%)
Paramètres
<number>ou<percentage>Facultatif-
Définit le niveau d'inversion. Une valeur de
100%inverse complètement l'image, tandis qu'une valeur de0%laisse l'image inchangée. Les valeurs comprises entre0%et100%appliquent un effet proportionnel. La valeur initiale utilisée pour l'interpolation est0. La valeur par défaut est1.
Syntaxe formelle
<invert()> =
invert( [ <number> | <percentage> ]? )
Filtre SVG
L'élément de filtre SVG <feComponentTransfer> peut aussi être utilisé pour inverser le contenu en appliquant une inversion équivalente sur les éléments imbriqués <feFuncR>, <feFuncG> et <feFuncB> de type table. En définissant la même valeur tableValue pour les primitives de filtre rouge, vert et bleu, on peut ensuite référencer l'effet SVG par l'identifiant de l'élément <filter> :
<svg role="none">
<filter id="invert90">
<feComponentTransfer>
<feFuncR type="table" tableValues="0.1 0" />
<feFuncG type="table" tableValues="0.1 0" />
<feFuncB type="table" tableValues="0.1 0" />
</feComponentTransfer>
</filter>
</svg>
Les déclarations suivantes produisent le même effet :
filter: invert(0.9);
filter: invert(90%);
filter: url("#invert90"); /* avec SVG intégré */
filter: url("fileName.svg#invert90"); /* SVG externe */
Exemples
Cet exemple montre trois images à titre de comparaison : une image avec la fonction de filtre invert() appliquée, une image avec la fonction SVG équivalente, et l'image d'origine :
SVG
On crée un filtre SVG qui inverse le contenu auquel il est appliqué à 70 % :
<svg height="0">
<filter id="invert">
<feComponentTransfer>
<feFuncR type="table" tableValues="0.3 0" />
<feFuncG type="table" tableValues="0.3 0" />
<feFuncB type="table" tableValues="0.3 0" />
</feComponentTransfer>
</filter>
</svg>
CSS
On ajoute du CSS qui inverse les éléments selon leur classe filter ou svgFilter :
.filter {
filter: invert(70%);
}
.svgFilter {
filter: url("#invert");
}
Spécifications
| Specification |
|---|
| Filter Effects Module Level 1> # funcdef-filter-invert> |
Compatibilité des navigateurs
Chargement…
Voir aussi
Les autres fonctions <filter-function> pouvant être utilisées dans les valeurs des propriétés filter et backdrop-filter sont :