invert()
Baseline
Widely available
This feature is well established and works across many devices and browser versions. It’s been available across browsers since 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
Loading…
Voir aussi
Les autres fonctions <filter-function>
pouvant être utilisées dans les valeurs des propriétés filter
et backdrop-filter
sont :