Обычно вы не можете полагаться на атрибуты _ngcontent-*
, так как они являются динамическими и непредсказуемыми. Эти атрибуты являются частью того, как Angular ограничивает стиль, чтобы стиль, применяемый в одном компоненте, не влиял на стиль, применяемый к тому же элементу в другом компоненте. Вы все еще можете ограничить стиль областью, применяя класс или атрибут к внешнему компоненту:
HTML
<mat-expansion-panel my-mat-expansion-panel>
<mat-expansion-panel-header>...</mat-expansion-panel-header>
...
</mat-expansion-panel>
CSS
.mat-expansion-panel[my-mat-expansion-panel] .mat-expansion-panel-body {
padding: 0;
}
Для вас это не сильно отличается от использования атрибута _ngcontent- *, если это было возможно.
Вы также можете использовать любой компонент, в котором находится компонент Angular Material, как часть селектора CSS, чтобы ограничить область действия:
my-outer-component .mat-expansion-panel .mat-expansion-panel-body {
padding: 0;
}
Обратите внимание, что ваш стиль должен быть в глобальной таблице стилей, а не в стиле компонента.