An alternative to using /deep/
or ::ng-deep
is to disable View Encapsulation on your components that use third party UI elements.
@Component({
selector: 'app-mycomp',
templateUrl: './mycomp.component.html',
styleUrls: ['./mycomp.component.scss'],
encapsulation: ViewEncapsulation.None
})
Doing so means that:
Angular adds the CSS to the global styles. The scoping rules,
isolations, and protections discussed earlier don't apply. This is
essentially the same as pasting the component's styles into the HTML.
If you turn off view encapsulation make sure to target only the html element you really want, and not any other elements of the same type in different components of your app (e.g. add a custom class or id to your element).
When I disabled ViewEncapsulation I also had to use !important
in my CSS to overwrite existing third party styles, while it wasn't always needed with ::ng-deep
.
与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…