contrast() 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 contrast() CSS Funktion passt den Kontrast des Eingabebildes an. Ihr Ergebnis ist eine <filter-function>.
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
contrast(amount)
Werte
amountOptional-
Der Kontrast des Ergebnisses, angegeben als
<number>oder als<percentage>. Ein Wert unter100%verringert den Kontrast, während ein Wert über100%ihn erhöht. Ein Wert von0oder0%erzeugt ein vollständig graues Bild, während ein Wert von1oder100%die Eingabe unverändert lässt. Negative Werte sind nicht erlaubt. Der Anfangswert für die Interpolation ist1. Der Standardwert ist1.
Die folgenden Paare sind gleichwertige Werte:
contrast(0) /* Completely gray */
contrast(0%)
contrast(0.65) /* 65% contrast */
contrast(65%)
contrast() /* No effect */
contrast(1)
contrast(100%)
contrast(2) /* Double contrast */
contrast(200%)
Formale Syntax
<contrast()> =
contrast( [ <number> | <percentage> ]? )
Beispiele
>Mit der backdrop-filter-Eigenschaft
In diesem Beispiel wird ein contrast()-Filter über die backdrop-filter CSS-Eigenschaft auf den Absatz und den monospace Text angewendet, der die Farbverschiebung auf den Bereich hinter dem <p> und <code> durchführt.
.container {
background: url("unity_for_the_people.jpg") no-repeat center / contain #333399;
}
p {
backdrop-filter: contrast(0.5);
}
code {
backdrop-filter: contrast(0.15);
}
Mit der filter-Eigenschaft
In diesem Beispiel wird ein contrast()-Filter über die filter CSS-Eigenschaft angewendet, wodurch der Kontrast durch Farbverschiebung des gesamten Elements, einschließlich Inhalt, Rand, Hintergrund und Schatten, verändert wird.
p:first-of-type {
filter: contrast(30%);
}
p:last-of-type {
filter: contrast(300%);
}
Mit url() und dem SVG-Kontrastfilter
Das SVG <filter>-Element wird verwendet, um benutzerdefinierte Filtereffekte zu definieren, die dann durch die id referenziert werden können. Das <filter>-Element <feComponentTransfer> ermöglicht eine pixelgenaue Farbzuordnung. Gegeben:
<svg
xmlns="http://www.w3.org/2000/svg"
id="svg"
viewBox="0 0 240 151"
height="0"
width="0"
overflow="visible"
color-interpolation-filters="sRGB">
<filter id="contrast">
<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>
Diese Werte erzeugen die gleichen Ergebnisse:
filter: contrast(200%);
filter: url("#contrast"); /* with embedded SVG */
filter: url("folder/fileName.svg#contrast"); /* external svg filter definition */
Dieses Beispiel zeigt drei Bilder: das Bild mit einer contrast()-Filterfunktion, das Bild mit einem äquivalenten url()-Filter und die Originalbilder zum Vergleich:
Spezifikationen
| Spezifikation |
|---|
| Filter Effects Module Level 1> # funcdef-filter-contrast> |
Browser-Kompatibilität
Siehe auch
- CSS-Filtereffekte Modul
- Die anderen
<filter-function>Funktionen, die in den Werten derfilterundbackdrop-filterEigenschaften verwendet werden können, umfassen: