atualização 2 ::slotted
::slotted agora é suportado por todos os novos navegadores e pode ser usado com ViewEncapsulation.ShadowDom
https://developer.mozilla.org/en-US/docs/Web/CSS/::slotted
atualização 1 :: ng-deep
/deep/foi descontinuado e substituído por ::ng-deep.
::ng-deep também já está marcado como obsoleto, mas ainda não há substituição disponível.
Quando ViewEncapsulation.Nativefor adequadamente suportado por todos os navegadores e suportar estilo entre os limites do DOM da sombra, ::ng-deepprovavelmente será descontinuado.
original
Angular adiciona todos os tipos de classes CSS ao HTML que adiciona ao DOM para emular o encapsulamento CSS DOM de sombra para evitar estilos de sangramento dentro e fora dos componentes. Angular também reescreve o CSS adicionado para corresponder a essas classes adicionadas. Para HTML adicionado usando [innerHTML]essas classes, não são adicionados e o CSS reescrito não corresponde.
Como uma solução alternativa, tente
- para CSS adicionado ao componente
/* :host /deep/ mySelector { */
:host ::ng-deep mySelector {
background-color: blue;
}
- para CSS adicionado a
index.html
/* body /deep/ mySelector { */
body ::ng-deep mySelector {
background-color: green;
}
>>>(e o equivalente, /deep/mas /deep/funciona melhor com o SASS) e ::shadowforam adicionados no 2.0.0-beta.10. Eles são semelhantes aos combinadores de sombra DOM CSS (que foram descontinuados) e só funcionam com o encapsulation: ViewEncapsulation.Emulatedque é o padrão no Angular2. Eles provavelmente também trabalham com, ViewEncapsulation.Nonemas são ignorados apenas porque não são necessários. Esses combinadores são apenas uma solução intermediária até que recursos mais avançados para o estilo de componentes cruzados sejam suportados.
Outra abordagem é usar
@Component({
...
encapsulation: ViewEncapsulation.None,
})
para todos os componentes que bloqueiam seu CSS (depende de onde você adiciona o CSS e de onde você deseja estilizar o HTML - podem ser todos os componentes em seu aplicativo)
Atualizar
Exemplo Plunker
index.html?