filter
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.
* Some parts of this feature may have varying levels of support.
Die filter CSS Eigenschaft wendet grafische Effekte wie Unschärfe oder Farbverschiebung auf ein Element an. Filter werden häufig verwendet, um die Darstellung von Bildern, Hintergründen und Rändern anzupassen.
Es gibt mehrere Funktionen, wie blur() und contrast(), die Ihnen helfen, vordefinierte Effekte zu erzielen.
Probieren Sie es aus
filter: url("/shared-assets/images/examples/shadow.svg#element-id");
filter: blur(5px);
filter: contrast(200%);
filter: grayscale(80%);
filter: hue-rotate(90deg);
filter: drop-shadow(16px 16px 20px red) invert(75%);
<section id="default-example">
<div class="example-container">
<img
id="example-element"
src="/shared-assets/images/examples/firefox-logo.svg"
width="200" />
</div>
</section>
.example-container {
background-color: white;
width: 260px;
height: 260px;
display: flex;
align-items: center;
justify-content: center;
}
#example-element {
flex: 1;
padding: 30px;
}
Syntax
/* <filter-function> values */
filter: blur(5px);
filter: brightness(0.4);
filter: contrast(200%);
filter: drop-shadow(16px 16px 20px blue);
filter: grayscale(50%);
filter: hue-rotate(90deg);
filter: invert(75%);
filter: opacity(25%);
filter: saturate(30%);
filter: sepia(60%);
/* URL */
filter: url("filters.svg#filter-id");
/* Multiple filters */
filter: contrast(175%) brightness(3%);
filter: drop-shadow(3px 3px red) sepia(100%) drop-shadow(-3px -3px blue);
/* Use no filter */
filter: none;
/* Global values */
filter: inherit;
filter: initial;
filter: revert;
filter: revert-layer;
filter: unset;
Referenzieren eines SVG-Filters
Sie können url() verwenden, um auf ein SVG-Filterelement zu verweisen. Für einen Verweis auf ein SVG <filter> Element verwenden Sie die folgende Syntax:
filter: url("file.svg#filter-element-id");
Funktionen
Die filter-Eigenschaft wird als none oder eine oder mehrere der unten aufgeführten Funktionen angegeben. Wenn der Parameter für eine Funktion ungültig ist, gibt die Funktion none zurück. Sofern nicht anders angegeben, akzeptieren die Funktionen, die einen Wert mit einem Prozentzeichen (wie in 34%) annehmen, auch den Wert als Dezimalzahl ausgedrückt (wie in 0.34).
Wenn die filter-Eigenschaft Werte mit mehreren Funktionen enthält, werden die Filter in der Reihenfolge angewendet.
blur()-
Wendet einen Gaußschen Weichzeichner auf das Eingabebild an.
cssfilter: blur(5px); brightness()-
Wendet einen linearen Multiplikator auf das Eingabebild an, sodass es heller oder dunkler erscheint. Werte sind lineare Multiplikatoren auf den Effekt, wobei
0%ein vollständig schwarzes Bild erzeugt,100%keine Wirkung hat und Werte über100%das Bild aufhellen.cssfilter: brightness(2); contrast()-
Passt den Kontrast des Eingabebildes an. Ein Wert von
0%macht das Bild grau,100%hat keine Wirkung, und Werte über100%erhöhen den Kontrast.cssfilter: contrast(200%); drop-shadow()-
Wendet den Parameter
<shadow>als Schlagschatten an, der den Konturen des Bildes folgt. Die Schattensyntax ist ähnlich wie<box-shadow>(definiert im CSS backgrounds and borders module), mit der Ausnahme, dass das Schlüsselwortinsetund der Parameterspreadnicht erlaubt sind. Wie bei allenfilter-Eigenschaftswerten werden alle Filter nachdrop-shadow()auf den Schatten angewendet.cssfilter: drop-shadow(16px 16px 10px black); grayscale()-
Wandelt das Bild in Graustufen um. Ein Wert von
100%ist vollständig in Graustufen. Der Anfangswert von0%lässt das Eingabebild unverändert. Werte zwischen0%und100%erzeugen lineare Multiplikatoren auf den Effekt.cssfilter: grayscale(100%); hue-rotate()-
Wendet eine Farbtonrotation an. Der
<angle>-Wert definiert die Anzahl der Grad um den Farbkreis, bei denen die Eingabestichproben angepasst werden. Ein Wert von0deglässt das Eingabebild unverändert.cssfilter: hue-rotate(90deg); invert()-
Invertiert die Stichproben im Eingabebild. Ein Wert von
100%invertiert das Bild vollständig. Ein Wert von0%lässt das Eingabebild unverändert. Werte zwischen0%und100%haben lineare Multiplikatoren auf den Effekt.cssfilter: invert(100%); opacity()-
Wendet Transparenz an.
0%macht das Bild vollständig transparent und100%lässt das Bild unverändert.cssfilter: opacity(50%); saturate()-
Sättigt das Bild, wobei
0%vollständig entsättigt ist,100%das Bild unverändert lässt und Werte über100%die Sättigung erhöhen.cssfilter: saturate(200%); sepia()-
Wandelt das Bild in Sepia um, wobei ein Wert von
100%das Bild vollständig in Sepia umwandelt und0%keine Änderung vornimmt.cssfilter: sepia(100%);
Kombinieren von Funktionen
Sie können eine beliebige Anzahl von Funktionen kombinieren, um die Wiedergabe zu manipulieren. Die Filter werden in der angegebenen Reihenfolge angewendet. Das folgende Beispiel erhöht den Kontrast und die Helligkeit des Bildes:
filter: contrast(175%) brightness(103%);
Interpolation
Wenn animiert, und sowohl die Anfangs- als auch die Endfilter haben eine Funktionsliste der gleichen Länge ohne <url> in gleicher Reihenfolge, wird jede ihrer Filterfunktionen gemäß den spezifischen Regeln der Filterfunktion interpoliert.
Wenn die Filterlisten unterschiedlich lang sind, werden die fehlenden äquivalenten Filterfunktionen aus der längeren Liste am Ende der kürzeren Liste hinzugefügt. Die hinzugefügten Funktionen verwenden ihre Anfangswerte ohne Filtermodifikation. Alle aufgelisteten Filter werden dann gemäß den spezifischen Regeln der Filterfunktion interpoliert. Andernfalls wird eine diskrete Interpolation verwendet.
Formale Definition
| Anfangswert | none |
|---|---|
| Anwendbar auf | alle Elemente; In SVG gilt betrifft dies Containerelemente mit Ausnahme des <defs> Elements und allen Grafikelementen |
| Vererbt | Nein |
| Berechneter Wert | wie angegeben |
| Animationstyp | eine Filterfunktionsliste |
Formale Syntax
filter =
none |
<filter-value-list>
<filter-value-list> =
[ <filter-function> | <url> ]+
<filter-function> =
<blur()> |
<brightness()> |
<contrast()> |
<drop-shadow()> |
<grayscale()> |
<hue-rotate()> |
<invert()> |
<opacity()> |
<sepia()> |
<saturate()>
<blur()> =
blur( <length>? )
<brightness()> =
brightness( [ <number> | <percentage> ]? )
<contrast()> =
contrast( [ <number> | <percentage> ]? )
<drop-shadow()> =
drop-shadow( [ <color>? && <length>{2,3} ] )
<grayscale()> =
grayscale( [ <number> | <percentage> ]? )
<hue-rotate()> =
hue-rotate( [ <angle> | <zero> ]? )
<invert()> =
invert( [ <number> | <percentage> ]? )
<opacity()> =
opacity( [ <number> | <percentage> ]? )
<sepia()> =
sepia( [ <number> | <percentage> ]? )
<saturate()> =
saturate( [ <number> | <percentage> ]? )
Beispiele
>Anwenden von Filterfunktionen
Die filter-Eigenschaft wird auf das zweite Bild angewendet, wobei sowohl das Bild als auch sein Rahmen in Grautöne und Unschärfe gewandelt werden.
img {
border: 5px solid yellow;
}
/* Gray the second image by 40% and blur by 5px */
img:nth-of-type(2) {
filter: grayscale(0.4) blur(5px);
}
<img src="pencil.jpg" alt="Original image is sharp" />
<img src="pencil.jpg" alt="The image and border are blurred and muted" />
Wiederholen von Filterfunktionen
Filterfunktionen werden in der Reihenfolge des Erscheinens angewendet. Dieselbe Filterfunktion kann wiederholt werden.
#MDN-logo {
border: 1px solid blue;
filter: drop-shadow(5px 5px 0 red) hue-rotate(180deg)
drop-shadow(5px 5px 0 red);
}
Die Filter werden in der angegebenen Reihenfolge angewendet. Aus diesem Grund haben die Schlagschatten nicht die gleiche Farbe: Der Farbton des ersten Schlagschattens wird durch die hue-rotate()-Funktion verändert, der zweite jedoch nicht.
Spezifikationen
| Specification |
|---|
| Filter Effects Module Level 1> # FilterProperty> |
Browser-Kompatibilität
Loading…
Siehe auch
backdrop-filtermask- SVG
filterAttribut - CSS [compositing and blending](/de/docs/Web/CSS/CSS_compositing_and_blen
ding) Modul, einschließlich der CSS
background-blend-modeundmix-blend-modeEigenschaften. - SVG, einschließlich des SVG
<filter>Elements und des SVGfilterAttributs. - Anwenden von SVG-Effekten auf HTML-Inhalte