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

Od wersji Chrome 63 nie można używać selektorów przekłuwania cienia ::shadow i /deep/ do określania stylu treści w głównym katalogu cienia.

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

Decyzja o usunięciu

Reguły ::shadow i /deep/ zostały wycofane w Chrome w wersji 45. Tak zastanowili się wszyscy uczestnicy spotkania Web Komponenty w kwietniu 2015 roku.

Głównym problemem związanym z selektorami przechwytywania cienia jest to, że naruszają one zasady hermetyczne i stwarzają sytuacje, w których komponent nie może już zmienić swojej wewnętrznej implementacji.

Specyfikacja funkcji CSS Shadow Parts jest zaawansowana jako alternatywa dla selektorów przekłuwania cienia. Funkcja Części cienia umożliwia autorowi komponentu wyświetlanie nazwanych elementów w sposób, który zachowuje ich energię, a autorom stron – możliwość zmiany stylu wielu właściwości jednocześnie.

Co mam zrobić, jeśli moja witryna korzysta z tagów ::shadow i /deep/?

Selektory ::shadow i /deep/ mają wpływ tylko na starsze komponenty DOM w wersji 0. Jeśli używasz modelu Shadow DOM w wersji 1, nie musisz wprowadzać żadnych zmian w witrynie.

Aby sprawdzić, czy po wprowadzeniu tych zmian witryna nie narusza zasad, możesz użyć Chrome Canary. Jeśli zauważysz problemy, spróbuj usunąć użycie ::shadow i /deep/. Jeśli usunięcie użycia tych selektorów okaże się zbyt trudne, rozważ przejście z natywnego modelu shadow DOM na tryb zacieniony DOM polyfill. Tę zmianę należy wprowadzić tylko wtedy, gdy witryna korzysta z natywnego modelu DOM w wersji 0.

Więcej informacji

Intencje do usunięcia | Narzędzie do śledzenia stanu Chrome | Błąd Chromium