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 sepertix-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.