CSS-Funktion contrast()
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 CSS-Funktion contrast() passt den Kontrast des Eingabebildes an. Sie wird als Wert für die Eigenschaften filter und backdrop-filter verwendet.
Probieren Sie es aus
filter: contrast(1);
filter: contrast(1.75);
filter: contrast(50%);
filter: contrast(0);
<section id="default-example">
<img
class="transition-all"
id="example-element"
src="/shared-assets/images/examples/firefox-logo.svg"
width="200" />
</section>
Syntax
/* Completely gray */
contrast(0)
/* No change */
contrast()
contrast(1)
contrast(100%)
/* 60% contrast */
contrast(.6)
contrast(60%)
/* Double contrast */
contrast(2)
contrast(200%)
Parameter
<number>oder<percentage>Optional-
Gibt das Ausmaß der Anpassung an. Ein Wert unter
100%verringert den Kontrast, während ein Wert über100%ihn erhöht. Ein Wert von0oder0%erzeugt ein vollständig graues Bild; bei1oder100%bleibt das Eingabebild unverändert. Negative Werte sind nicht zulässig. Der Anfangswert für die Interpolation ist1. Der Standardwert ist1.
Rückgabewert
Ein <filter-function>-Wert.
Formale Syntax
<contrast()> =
contrast( [ <number> | <percentage> ]? )
Beispiele
>Mit der Eigenschaft backdrop-filter
Dieses Beispiel wendet über die CSS-Eigenschaft backdrop-filter einen contrast()-Filter auf den Absatz an und verändert dabei die Farben des Bereichs hinter dem <p>.
.container {
background: url("unity_for_the_people.jpg") no-repeat center / contain #333399;
}
p {
backdrop-filter: contrast(0.2);
}
Mit der Eigenschaft filter
Dieses Beispiel wendet über die CSS-Eigenschaft filter einen contrast()-Filter an. Dadurch wird der Kontrast des gesamten Elements verändert, einschließlich Inhalt, Rahmen, Hintergrund und Schatten.
p:first-of-type {
filter: contrast(30%);
}
p:last-of-type {
filter: contrast(300%);
}
Verwendung des SVG-Filters
Dieses Beispiel zeigt drei Bilder zum Vergleich: ein Bild mit angewendeter contrast()-Filterfunktion, ein Bild mit dem entsprechenden SVG-Filter und das Originalbild.
SVG
Das SVG-Filterelement <feComponentTransfer> kann ebenfalls verwendet werden, um den Kontrast von Inhalten anzupassen. Dazu werden entsprechende Kontrastanpassungen mit den untergeordneten linearen Elementen <feFuncR>, <feFuncG> und <feFuncB> erstellt. Wir legen für die roten, grünen und blauen Filterprimitive dieselben Werte für slope und intercept fest. Anschließend können wir über die ID des <filter> auf den SVG-Effekt verweisen:
<svg height="0" role="none">
<filter id="contrast200" color-interpolation-filters="sRGB">
<feComponentTransfer>
<feFuncR type="linear" slope="2" intercept="-0.5" />
<feFuncG type="linear" slope="2" intercept="-0.5" />
<feFuncB type="linear" slope="2" intercept="-0.5" />
</feComponentTransfer>
</filter>
</svg>
Die folgenden Deklarationen erzeugen denselben Effekt:
filter: contrast(2);
filter: contrast(200%);
filter: url("#contrast200"); /* with embedded SVG */
filter: url("fileName.svg#contrast200"); /* external SVG */
CSS
Wir verwenden CSS, das den Kontrast von Elementen anhand ihrer Klasse css-filter oder svg-filter anpasst:
.css-filter {
filter: contrast(2);
}
.svg-filter {
filter: url("#contrast200");
}
Spezifikationen
| Spezifikation |
|---|
| Filter Effects Module Level 1> # funcdef-filter-contrast> |
Browser-Kompatibilität
Siehe auch
- Modul CSS-Filtereffekte
- Zu den weiteren
<filter-function>-Funktionen, die als Werte für die Eigenschaftenfilterundbackdrop-filterverwendet werden können, gehören: