A partir do Chrome 63, não é possível usar os seletores de perfuração de sombra ::shadow
e /deep/
para estilizar o conteúdo dentro de uma raiz de sombra.
- O combinador
/deep/
vai funcionar como um seletor descendente.x-foo /deep/ div
vai funcionar comox-foo div
. - O pseudoelemento
::shadow
não corresponde a nenhum elemento.
A decisão de remover
Os métodos ::shadow
e /deep/
foram descontinuados na versão 45 do Chrome. Isso foi
decidido por todos os participantes no encontro sobre componentes da Web de abril de 2015.
A principal preocupação com os seletores de perfuração de sombra é que eles violam o encapsulamento e criam situações em que um componente não pode mais mudar a implementação interna.
A especificação CSS Shadow Parts está sendo avançada como uma alternativa aos seletores de piercing de sombra. As partes de sombra permitem que o autor do componente exponha elementos nomeados de uma maneira que preserva o encapsulamento e ainda permite que os autores da página estilizem várias propriedades de uma só vez.
O que devo fazer se meu site usar ::shadow e /deep/?
Os seletores ::shadow
e /deep/
afetam apenas os componentes legados do Shadow DOM v0. Se você estiver usando o Shadow DOM v1, não será necessário mudar
nada no site.
Você pode usar o Chrome Canary
para verificar se o site não é afetado por essas novas mudanças. Se você notar problemas,
tente remover o uso de ::shadow
e /deep/
. Se for muito difícil
remover o uso desses seletores, considere mudar do DOM de sombra nativo para
o polyfill de DOM de sombra. Você só vai precisar fazer essa mudança se o site
depender do DOM shadow v0 nativo.