Dieser Inhalt wurde automatisch aus dem Englischen übersetzt, und kann Fehler enthalten. Erfahre mehr über dieses Experiment.

View in English Always switch to English

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()-Funktion des CSS function passt den Kontrast des Eingangsbilder 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 als <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 komplett grau ist, während ein Wert von 1 oder 100% das Eingangssignal unverändert lässt. Negative Werte sind nicht erlaubt. Der anfängliche Wert für die Interpolation ist 1. Der Standardwert ist 1.

Die folgenden sind Paare von gleichwertigen 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

In diesem Beispiel wird über die backdrop-filter CSS-Eigenschaft ein contrast()-Filter auf den Absatz und den Monospace-Text angewendet, wodurch eine Farbverschiebung im Bereich hinter dem <p> und <code> erfolgt.

css
.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, der den Kontrast durch Verschieben der Farben des gesamten Elements ändert, einschließlich Inhalt, Rahmen, Hintergrund und Schatten.

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 über id referenziert werden können. Das Primitive <feComponentTransfer> des <filter> ermöglicht die Farbzuordnung auf Pixelniveau. Angenommen, folgende:

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 führen zu den gleichen Ergebnissen:

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

Spezifikationen

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

Browser-Kompatibilität

Siehe auch