Menghapus ::shadow dan /deep/ di Chrome 63

Mulai Chrome 63, Anda tidak dapat menggunakan pemilih shadow-piercing ::shadow dan /deep/ untuk menata gaya konten di dalam root bayangan.

  • Penggabung /deep/ akan bertindak sebagai pemilih turunan. x-foo /deep/ div akan berfungsi seperti x-foo div.
  • Elemen pseudo ::shadow tidak akan cocok dengan elemen apa pun.

Keputusan untuk menghapus

::shadow dan /deep/ tidak digunakan lagi di Chrome versi 45. Hal ini ditentukan oleh semua peserta di meetup Web Components April 2015.

Masalah utama dengan pemilih shadow-piercing adalah pemilih tersebut melanggar enkapsulasi dan menciptakan situasi saat komponen tidak dapat lagi mengubah implementasi internalnya.

Spesifikasi CSS Shadow Parts sedang ditingkatkan sebagai alternatif untuk pemilih shadow piercing. Bagian Bayangan akan memungkinkan penulis komponen mengekspos elemen bernama dengan cara yang mempertahankan enkapsulasi dan tetap memungkinkan penulis halaman menata gaya beberapa properti sekaligus.

Apa yang harus saya lakukan jika situs saya menggunakan ::shadow dan /deep/?

Pemilih ::shadow dan /deep/ hanya memengaruhi komponen Shadow DOM v0 lama. Jika menggunakan Shadow DOM v1, Anda tidak perlu mengubah apa pun di situs.

Anda dapat menggunakan Chrome Canary untuk memverifikasi bahwa situs Anda tidak mengalami error dengan perubahan baru ini. Jika Anda melihat masalah, coba hapus penggunaan ::shadow dan /deep/. Jika terlalu sulit untuk menghapus penggunaan pemilih ini, pertimbangkan untuk beralih dari DOM bayangan native ke polyfill DOM bayangan. Anda hanya perlu melakukan perubahan ini jika situs Anda mengandalkan shadow DOM native v0.

Informasi selengkapnya

Intent to Remove | Chromestatus Tracker | Chromium Bug