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/ div
wirkt wiex-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.