Ab Chrome 63 können Sie die Shadow-Piercing-Selektoren ::shadow
und /deep/
nicht mehr verwenden, um Inhalte innerhalb eines Shadow-Roots zu gestalten.
- Der Kombinator
/deep/
fungiert als Nachkommensselektor.x-foo /deep/ div
funktioniert wiex-foo div
. - Das Pseudoelement
::shadow
stimmt mit keinem Element überein.
Entscheidung über die Entfernung
Die Elemente ::shadow
und /deep/
wurden in Chrome-Version 45 eingestellt. Das wurde von allen Teilnehmern des Web Components-Meetups im April 2015 beschlossen.
Das Hauptproblem bei Shadow-Piercing-Selektoren besteht darin, dass sie die Kapselung verletzen und Situationen schaffen, in denen eine Komponente ihre interne Implementierung nicht mehr ändern kann.
Die Spezifikation CSS Shadow Parts wird als Alternative zu Selektoren für Shadow Piercing weiterentwickelt. Mit Shadow Parts können Komponentenautoren benannte Elemente so verfügbar machen, dass die Kapselung erhalten bleibt und Seitenautoren trotzdem mehrere Eigenschaften gleichzeitig formatieren können.
Was sollte ich tun, wenn auf meiner Website „::shadow“ und „/deep/“ verwendet werden?
Die Selektoren ::shadow
und /deep/
wirken sich nur auf Legacy-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 neuen Ä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, sollten Sie vom nativen Shadow DOM zum Shady DOM-Polyfill wechseln. Diese Änderung ist nur erforderlich, wenn Ihre Website auf dem nativen Shadow DOM v0 basiert.
Weitere Informationen
Absicht zum Entfernen | Chromestatus Tracker | Chromium-Fehler