Usuwanie tagów ::shadow i /deep/ w Chrome 63

Od wersji 63 Chrome nie można używać selektorów przenikających cień ::shadow i /deep/ do stylizowania treści w tle.

  • Kombinator /deep/ będzie działać jako selektor potomków. x-foo /deep/ divbędzie działać jak x-foo div.
  • Element pseudo ::shadow nie będzie pasować do żadnych elementów.

Decyzja o usunięciu

W wersji 45 Chrome zostały wycofane opcje ::shadow/deep/. Taką decyzję podjęli wszyscy uczestnicy spotkania Web Components w kwietniu 2015 r..

Głównym problemem z selektorami przebijającymi cień jest to, że naruszają one enkapsulację i tworzą sytuacje, w których komponent nie może już zmienić swojej implementacji wewnętrznej.

Specyfikacja CSS sekcji cienia jest rozwijana jako alternatywa dla selektorów przebijania cienia. Elementy w tle pozwolą autorowi komponentu na wyświetlanie elementów nazwanych w taki sposób, aby zachować enkapsulację, a jednocześnie umożliwić autorom stron stylizowanie wielu właściwości naraz.

Co zrobić, jeśli moja witryna używa ::shadow i /deep/?

Selektory ::shadow/deep/ mają wpływ tylko na starsze komponenty Shadow DOM v0. Jeśli używasz Shadow DOM w wersji 1, nie musisz nic zmieniać w swojej witrynie.

Możesz użyć Chrome Canary, aby sprawdzić, czy Twoja witryna nie ulegnie uszkodzeniu po wprowadzeniu tych zmian. Jeśli zauważysz problemy, spróbuj usunąć elementy ::shadow/deep/. Jeśli trudno jest Ci usunąć użycie tych selektorów, rozważ przejście z natywnego shadow DOM na shady DOM polyfill. Tę zmianę należy wprowadzić tylko wtedy, gdy Twoja witryna korzysta z domyślnego skryptu shadow DOM w wersji 0.

Więcej informacji

Intend to Remove | Chromestatus Tracker | Chromium Bug