Die CSS-Eigenschaft backdrop-filter

Avatar of Robin Rendle
Robin Rendle am

DigitalOcean bietet Cloud-Produkte für jede Phase Ihrer Reise. Starten Sie mit 200 $ kostenlosem Guthaben!

Ich hatte gestern noch nie von der Eigenschaft backdrop-filter gehört, aber nachdem ich ein paar Stunden damit herumgespielt habe, bin ich sicher, dass sie nichts weiter als Magie ist. Das liegt daran, dass sie Filter (wie das Ändern von Farbton, Kontrast oder Unschärfe) auf den Hintergrund eines Elements anwendet, ohne den Text oder andere Elemente im Inneren zu verändern.

Nehmen Sie dieses Beispiel, in dem ich den iOS-Benachrichtigungsstil nachgebildet habe: Sehen Sie, wie der Hintergrund all dieser Boxen unscharf ist, der Text aber nicht?

Das ist nur eine einzige Zeile CSS, um diesen ausgeblendeten Hintergrundeffekt zu erzeugen, genau wie dieser

.notification {
  backdrop-filter: blur(3px);
}

Nun ist es erwähnenswert, dass die Browserunterstützung für diese CSS-Eigenschaft noch nicht besonders gut ist (siehe unten). Aber wir versuchen schon seit langem, solche Filtereffekte zu erzielen, und es ist großartig zu sehen, dass hier Fortschritte gemacht werden. Chris schrieb 2014 über die „Milchglas“-Technik und schon damals musste man eine Reihe seltsamer Hacks und zusätzliche Bilder verwenden, um den Effekt nachzubilden. Jetzt können wir viel weniger Code schreiben, um den gleichen Effekt zu erzielen!

Wir können auch aus viel mehr Filtern wählen als nur dem Milchglas-Stil. Die folgende Demo zeigt alle backdrop-filter-Werte und wie sie den Hintergrund verändern

Jede dieser Boxen sind nur separate divs, auf die ich einen anderen backdrop-filter angewendet habe. Und das ist alles! Ich kann ehrlich gesagt kaum glauben, wie einfach das ist.

Natürlich kann man sie auch miteinander verketten, so

.element {
  backdrop-filter: blur(5px) contrast(.8);
} 

Und das könnte zu allerlei aufwendigen und komplexen Designs führen, besonders wenn man sie mit Animationen kombiniert.

Aber warten Sie mal, warum brauchen wir diese Eigenschaft überhaupt? Nun, nach einigem Lesen scheint das Standardbeispiel ein Modal irgendeiner Art zu sein. Damit hat Guillermo Esteves 2015 experimentiert experimentiert

Siehe den Stift PwRPZa von Guillermo Esteves (@gesteves) auf CodePen.

Ich schätze, wir können etwas viel Seltsameres und Schöneres machen, wenn wir uns darauf konzentrieren.

Eine Notiz zur Browserunterstützung

Die Eigenschaft backdrop-filter wird zum Zeitpunkt des Schreibens nicht gut unterstützt. Und selbst in Safari, wo sie unterstützt wird, müssen Sie sie immer noch mit einem Präfix versehen. In Firefox gibt es überhaupt keine Unterstützung. Aber mal ehrlich, müssen Websites in jedem Browser exakt gleich aussehen?

Diese Browserunterstützungsdaten stammen von Caniuse, wo weitere Details zu finden sind. Eine Zahl gibt an, dass der Browser die Funktion ab dieser Version und aufwärts unterstützt.

Desktop

ChromeFirefoxIEEdgeSafari
76103Nein179*

Mobil / Tablet

Android ChromeAndroid FirefoxAndroidiOS Safari
1271271279.0-9.2*

Weitere Lektüre