"::shadow" und "/deep/" werden in Chrome 63 entfernt

Ab Chrome 63 können Sie die Auswahltools für Schattendurchdringung ::shadow und /deep/ nicht mehr verwenden, um Inhalte innerhalb eines Schatten-Root-Elements zu formatieren.

  • Der Kombinator /deep/ fungiert als Nachkommenauswahl. x-foo /deep/ divwirkt wie x-foo div.
  • Das ::shadow-Pseudoelement wird mit keinem Element abgeglichen.

Die Entscheidung zur Entfernung

::shadow und /deep/ wurden in Chrome-Version 45 eingestellt. Diese Entscheidung wurde von allen Teilnehmern des Web Components-Meetups im April 2015 getroffen.

Das Hauptproblem bei Auswahlen, die Schatten durchdringen, besteht darin, dass sie gegen die Kapselung verstoßen und Situationen schaffen, in denen eine Komponente ihre interne Implementierung nicht mehr ändern kann.

Die CSS-Spezifikation für Schattenteile wird als Alternative zu Selektoren für Schattendurchdringung entwickelt. Mit Schattenelementen können Komponentenautoren benannte Elemente so freigeben, dass die Kapselung erhalten bleibt und Seitenautoren trotzdem mehrere Properties gleichzeitig stylen können.

Was sollte ich tun, wenn meine Website ::shadow und /deep/ verwendet?

Die Selektoren ::shadow und /deep/ wirken sich nur auf alte Shadow DOM v0-Komponenten aus. Wenn Sie Shadow DOM v1 verwenden, müssen Sie auf Ihrer Website nichts ändern.

Mit Chrome Canary können Sie prüfen, ob Ihre Website durch diese Änderungen beeinträchtigt wird. Wenn Probleme auftreten, entfernen Sie alle Verwendungen von ::shadow und /deep/. Wenn es zu schwierig ist, die Verwendung dieser Selektoren zu entfernen, können Sie vom nativen Shadow-DOM auf die Shady DOM-Polyfill umstellen. Diese Änderung ist nur erforderlich, wenn Ihre Website natives Shadow DOM v0 verwendet.

Weitere Informationen

Entfernung geplant | Chromestatus-Tracker | Chromium-Fehler