contrast()

Baseline Widely available

This feature is well established and works across many devices and browser versions. It’s been available across browsers since September 2016.

Die contrast() CSS Funktion passt den Kontrast des Eingabebildes an. Das Ergebnis ist eine <filter-function>.

Probieren Sie es aus

Syntax

css
contrast(amount)

Werte

amount

Der Kontrast des Ergebnisses, angegeben als <number> oder <percentage>. Ein Wert unter 100% verringert den Kontrast, während ein Wert über 100% ihn erhöht. Ein Wert von 0 oder 0% erzeugt ein Bild, das vollständig grau ist, während ein Wert von 1 oder 100% das Eingabebild unverändert lässt. Negative Werte sind nicht erlaubt. Der Anfangswert für die Interpolation ist 1.

Die folgenden sind Paare von äquivalenten Werten:

css
contrast(0) /* Completely gray */
contrast(0%)

contrast(0.65) /* 65% contrast */
contrast(65%)

contrast(1)     /* No effect */
contrast(100%)

contrast(2)  /* Double contrast */
contrast(200%)

Formale Syntax

<contrast()> = 
contrast( [ <number> | <percentage> ]? )

Beispiele

Mit der Eigenschaft backdrop-filter

Dieses Beispiel wendet einen contrast() Filter über die CSS-Eigenschaft backdrop-filter auf den Absatz und nichtproportionale Text an, wodurch die Farben im Bereich hinter dem <p> und <code> verschoben werden.

css
.container {
  background: url(image.jpg) no-repeat center / contain #339;
}
p {
  backdrop-filter: contrast(0.5);
}
code {
  backdrop-filter: contrast(0.15);
}

Mit der Eigenschaft filter

Dieses Beispiel wendet einen contrast() Filter über die CSS-Eigenschaft filter an, der den Kontrast durch Farbverschiebungen des gesamten Elements, einschließlich Inhalt, Rand, Hintergrund und Schatten, ändert.

css
p:first-of-type {
  filter: contrast(30%);
}
p:last-of-type {
  filter: contrast(300%);
}

Mit url() und dem SVG-Kontrastfilter

Das SVG-Element <filter> wird verwendet, um benutzerdefinierte Filtereffekte zu definieren, die dann per id referenziert werden können. Die <filter> Primitive <feComponentTransfer> ermöglicht eine pixelgenaue Farbzuordnung. Angesichts des Folgenden:

svg
  <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>

Diese Werte erzeugen die gleichen Ergebnisse:

css
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 angewendeten contrast() Filterfunktion, das Bild mit einem äquivalenten url() Filter und die Originalbilder zum Vergleich:

Spezifikationen

Specification
Filter Effects Module Level 1
# funcdef-filter-contrast

Browser-Kompatibilität

Report problems with this compatibility data on GitHub
desktopmobile
Chrome
Edge
Firefox
Opera
Safari
Chrome Android
Firefox for Android
Opera Android
Safari on iOS
Samsung Internet
WebView Android
WebView on iOS
contrast()

Legend

Tip: you can click/tap on a cell for more information.

Full support
Full support

Siehe auch