Filter

The CSS Podcast – 023: Filter

Angenommen, Sie müssen ein Element mit einem etwas undurchsichtigen Milchglaseffekt erstellen, das über dem Bild platziert wird. Der Text muss Live-Text und kein Bild sein. Wie gehen Sie vor?

Mit einer Kombination aus CSS-Filtern und backdrop-filter können wir Effekte anwenden und Inhalte in Echtzeit unkenntlich machen. Weichzeichnen und Deckkraft sind zwei von vielen verfügbaren Filtern. Sehen wir uns also kurz an, was sie bewirken und wie sie verwendet werden.

Das Attribut filter

Unterstützte Browser

  • 53
  • 12
  • 35
  • 9,1

Quelle

Sie können einen oder mehrere der folgenden Filter als Wert für filter anwenden. Wenn Sie einen Filter falsch anwenden, funktionieren die übrigen für filter definierten Filter nicht.

blur

Damit wird ein gaußscher Weichzeichner angewendet. Das einzige Argument, das Sie übergeben können, ist radius. Dies ist die Wirkung der Unkenntlichmachung. Es muss eine Längeneinheit sein, z. B. 10px. Prozentsätze sind nicht zulässig.

.my-element {
    filter: blur(0.2em);
}

brightness

Unterstützte Browser

  • 18
  • 12
  • 35
  • 6

Quelle

Um die Helligkeit eines Elements zu erhöhen oder zu verringern, Der Helligkeitswert wird in Prozent angegeben, wobei das unveränderte Bild ein Wert von 100 % ist. Bei einem Wert von 0% wird das Bild vollständig schwarz. Werte zwischen 0% und 100% machen es daher weniger hell. Verwenden Sie Werte über 100 %, um die Helligkeit zu erhöhen.

.my-element {
    filter: brightness(80%);
}

contrast

Unterstützte Browser

  • 18
  • 12
  • 35
  • 6

Quelle

Legen Sie einen Wert zwischen 0% und 100% fest, um den Kontrast zu verringern oder zu erhöhen.

.my-element {
    filter: contrast(160%);
}

grayscale

Unterstützte Browser

  • 18
  • 12
  • 35
  • 6

Quelle

Sie können einen Graustufeneffekt anwenden, indem Sie 1 als Wert für grayscale() verwenden, oder 0, um ein vollständig gesättigtes Element zu erhalten. Sie können auch Prozent- oder Dezimalwerte verwenden, damit nur ein partieller Graustufeneffekt angewendet wird. Wenn Sie keine Argumente übergeben, wird das Element vollständig in Graustufen dargestellt. Wenn Sie einen Wert übergeben, der größer als 100 % ist, wird der Wert auf 100 % begrenzt.

.my-element {
    filter: grayscale(80%);
}

invert

Unterstützte Browser

  • 18
  • 12
  • 35
  • 6

Quelle

Genau wie grayscale können Sie 1 oder 0 an die Funktion invert() übergeben, um sie ein- oder auszuschalten. Wenn sie aktiviert ist, werden die Farben des Elements vollständig invertiert. Sie können auch Prozent- oder Dezimalwerte verwenden, um nur eine teilweise Umkehr der Farben anzuwenden. Wenn Sie keine Argumente an die invert()-Funktion übergeben, wird das Element vollständig invertiert.

.my-element {
    filter: invert(1);
}

opacity

Unterstützte Browser

  • 18
  • 12
  • 35
  • 6

Quelle

Der Filter opacity() funktioniert wie das Attribut opacity, bei dem Sie eine Zahl oder einen Prozentsatz übergeben können, um die Deckkraft zu erhöhen oder zu verringern. Wenn Sie keine Argumente übergeben, ist das Element vollständig sichtbar.

.my-element {
    filter: opacity(0.3);
}

saturate

Unterstützte Browser

  • 18
  • 12
  • 35
  • 6

Quelle

Der Sättigungsfilter ist dem Filter brightness sehr ähnlich und akzeptiert dasselbe Argument: Zahl oder Prozentsatz. Anstatt den Helligkeitseffekt zu erhöhen oder zu verringern, erhöht oder verringert saturate die Farbsättigung.

.my-element {
    filter: saturate(155%);
}

sepia

Unterstützte Browser

  • 18
  • 12
  • 35
  • 6

Quelle

Mit diesem Filter, der wie bei grayscale() funktioniert, kannst du einen Sepiaeffekt hinzufügen. Der Sepiaton ist ein Fotodruckverfahren, bei dem Schwarztöne in Brauntöne umgewandelt werden, um sie aufzuwärmen. Sie können eine Zahl oder einen Prozentsatz als Argument für sepia() übergeben, wodurch der Effekt erhöht oder verringert wird. Wenn keine Argumente übergeben werden, wird ein vollständiger Sepia-Effekt hinzugefügt (entspricht sepia(100%)).

.my-element {
    filter: sepia(70%);
}

hue-rotate

Unterstützte Browser

  • 18
  • 12
  • 35
  • 6

Quelle

In der Lektion zu Farben haben Sie gelernt, wie der Farbton in hsl auf eine Drehung des Farbrads verweist. Dieser Filter funktioniert ähnlich. Wenn Sie einen Winkel übergeben, z. B. Grad oder Drehungen, wird der Farbton aller Farben des Elements verschoben und der Teil des Farbrads geändert, auf den es verweist. Wenn Sie kein Argument übergeben, geschieht nichts.

.my-element {
    filter: hue-rotate(120deg);
}

drop-shadow

Unterstützte Browser

  • 18
  • 12
  • 35
  • 6

Quelle

Mit drop-shadow kannst du wie in einem Designtool wie Photoshop einen kurvenförmigen Schlagschatten anwenden. Dieser Schatten wird auf eine Alphamaske angewendet und ist daher sehr nützlich, um einem ausgeschnittenen Bild einen Schatten hinzuzufügen. Für den Filter drop-shadow wird ein Schattenparameter verwendet, der durch Leerzeichen getrennte Werte für Offset-x, Offset-y, Weichzeichnen und Farbe enthält. Er ist fast identisch mit box-shadow, aber das Keyword inset und der Streuwert werden nicht unterstützt.

.my-element {
    filter: drop-shadow(5px 5px 10px orange);
}

Weitere Informationen zu den verschiedenen Schattentypen finden Sie im Modul shadows.

url

Unterstützte Browser

  • 5
  • 12
  • 3
  • 6

Quelle

Mit dem Filter url können Sie einen SVG-Filter aus einem verknüpften SVG-Element oder einer verknüpften Datei anwenden. Weitere Informationen zu SVG-Filtern

Bilderrahmenfilter

Unterstützte Browser

  • 76
  • 79
  • 103
  • 18

Quelle

Für das Attribut backdrop-filter können dieselben Filterfunktionswerte wie für filter verwendet werden. Der Unterschied zwischen backdrop-filter und filter besteht darin, dass das Attribut backdrop-filter die Filter nur auf den Hintergrund anwendet, während die Eigenschaft filter sie auf das gesamte Element anwendet.

Das Beispiel gleich zu Beginn dieser Lektion ist das perfekte Beispiel, denn der Text soll nicht unkenntlich gemacht werden und idealerweise keine zusätzlichen HTML-Elemente hinzufügen. Wenn Sie Filter nur auf den Hintergrund anwenden können, ist dies möglich.

Wissen testen

Testen Sie Ihr Wissen über Filter

Welche der folgenden sind CSS-Filterfunktionen?

grayscale()
🎉
invert()
🎉
flip()
Versuch es noch einmal.
multiply()
Versuch es noch einmal.
blur()
🎉
brightness()
🎉

Kann CSS SVG-Filter verwenden?

Ja
Mit der Filterfunktion url() können Sie
Nein
Versuch es noch einmal.