A partir do Chrome 63, não é possível usar os seletores de sobreposição de sombra ::shadow
e /deep/
para definir o estilo do conteúdo dentro de uma raiz paralela.
- O combinador
/deep/
vai atuar como um seletor descendente.x-foo /deep/ div
funcionará comox-foo div
. - O pseudoelemento
::shadow
não corresponderá a nenhum elemento.
A decisão de remover
O uso de ::shadow
e /deep/
foi descontinuado no Chrome 45. Isso foi
decidido por todos os participantes no encontro de componentes da Web de abril de 2015.
A principal preocupação com seletores de shadow-piercing é 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 shadow piercing. Elas permitem que o autor de um componente exponha elementos nomeados de uma maneira que preserve o encapsulamento e ainda permita que os autores de páginas 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 componentes legados do Shadow DOM v0. Se você estiver usando o Shadow DOM v1, não precisará alterar nada no seu site.
Use o Chrome Canary
para verificar se o site não é interrompido com essas novas alterações. Se você encontrar problemas,
tente e remova o uso de ::shadow
e /deep/
. Se for muito difícil remover o uso desses seletores, mude do shadow DOM nativo para o polyfill do DOM sombreado. Você só precisará fazer essa mudança se o site
depender do shadow DOM v0 nativo.