USO
::ng-deep
, >>>
Y la /deep/
vista de encapsulación para desactivar las reglas CSS específicas, en otras palabras, que le da acceso a los elementos DOM, que no están en el HTML de su componente. Por ejemplo, si está usando Angular Material (o cualquier otra biblioteca de terceros como esta), algunos elementos generados están fuera del área de su componente (como el diálogo ) y no puede acceder a esos elementos directamente o usando un CSS normal camino. Si desea cambiar los estilos de esos elementos, puede usar una de esas tres cosas, por ejemplo:
::ng-deep .mat-dialog {
}
Por ahora, el equipo de Angular recomienda realizar manipulaciones "profundas" solo con la encapsulación de vista EMULADA .
DEPRECACIÓN
Las manipulaciones "profundas" también están en desuso , PERO sigue funcionando por ahora, porque Angular admite el preprocesamiento (no se apresure a rechazarlo ::ng-deep
hoy, primero eche un vistazo a las prácticas de desuso ).
De todos modos, antes de seguir este camino, le recomiendo que eche un vistazo a la desactivación del enfoque de encapsulación de vistas (que tampoco es ideal, permite que sus estilos se filtren en otros componentes), pero en algunos casos, es una mejor manera. Si decidió deshabilitar la encapsulación de vista, se recomienda encarecidamente utilizar clases específicas para evitar la intersección de reglas CSS y, finalmente, evitar un desorden en sus hojas de estilo. Es realmente fácil de deshabilitar directamente en el .ts
archivo del componente :
@Component({
selector: '',
template: '',
styles: [''],
encapsulation: ViewEncapsulation.None
})
Puede encontrar más información sobre la encapsulación de vistas en este artículo.
/deep/
y::ng-deep
están en desuso, le sugiero que consulte esta respuesta stackoverflow.com/a/49308475/2275011 y comentarios para obtener más detalles y soluciones.