invert() CSS-Funktion
Baseline
Weitgehend verfügbar
Diese Funktion ist gut etabliert und funktioniert auf vielen Geräten und in vielen Browserversionen. Sie ist seit September 2016 browserübergreifend verfügbar.
Die invert() CSS Funktion invertiert die Farbmuster im Eingabebild. Das Ergebnis ist eine <filter-function>.
Probieren Sie es aus
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>
Syntax
/* No inversion */
invert(0)
/* Complete inversion */
invert()
invert(1)
invert(100%)
/* 60% inversion */
invert(.6)
invert(60%)
Parameter
<number>oder<percentage>Optional-
Gibt die Menge der Umkehrung an. Ein Wert von
100%ist vollständig invertiert, während ein Wert von0%den Eingabewert unverändert lässt. Werte zwischen0%und100%sind lineare Multiplikatoren des Effekts. Der anfängliche Wert für die Interpolation ist0. Der Standardwert ist1.
Formale Syntax
<invert()> =
invert( [ <number> | <percentage> ]? )
SVG-Filter
Das SVG-<feComponentTransfer>-Filterelement kann ebenfalls verwendet werden, um Inhalte zu invertieren, indem eine äquivalente Inversion auf verschachtelten <feFuncR>, <feFuncG> und <feFuncB> Tabellenelementen erstellt wird. Wir setzen denselben tableValue für die roten, grünen und blauen Filterprimitiven auf denselben Wert, dann können wir den SVG-Effekt über die ID des <filter> referenzieren:
<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>
Die folgenden Deklarationen erzielen den gleichen Effekt:
filter: invert(0.9);
filter: invert(90%);
filter: url("#invert90"); /* with embedded SVG */
filter: url("fileName.svg#invert90"); /* external SVG */
Beispiele
Dieses Beispiel zeigt drei Bilder zum Vergleich: ein Bild mit einer invert()-Filterfunktion angewendet, ein Bild mit der äquivalenten SVG-Funktion angewendet und das Originalbild:
SVG
Wir erstellen einen SVG-Filter, der den Inhalt, auf den er angewendet wird, um 70% invertiert:
<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
Wir verwenden CSS, das Elemente basierend auf ihrer filter- oder svgFilter-Klasse invertiert:
.filter {
filter: invert(70%);
}
.svgFilter {
filter: url("#invert");
}
Spezifikationen
| Spezifikation |
|---|
| Filter Effects Module Level 1> # funcdef-filter-invert> |
Browser-Kompatibilität
Siehe auch
Die anderen <filter-function>-Funktionen, die in den Werten der filter- und backdrop-filter-Eigenschaften verwendet werden können, sind: