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

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

css
contrast(amount)

Werte

amount Optional

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

Die folgenden sind Paare von äquivalenten Werten:

css
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

Dieses Beispiel wendet einen contrast() Filter über die CSS-Eigenschaft backdrop-filter auf den Absatz und den monospaced Text an, indem die Farbe in den Bereich hinter dem <p> und <code> verschoben wird.

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

Mit der filter Eigenschaft

Dieses Beispiel wendet einen contrast() Filter über die CSS-Eigenschaft filter an, der den Kontrast durch Farbanpassung des gesamten Elements, einschließlich Inhalt, Rahmen, Hintergrund und Schatten, verä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 durch id referenziert werden können. Das <filter>'s <feComponentTransfer> Primitive ermöglicht die Farbumwandlung auf Pixelebene. Angesichts des Folgenden:

html
<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 erzielen 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 angewandten 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

Siehe auch