То, что вы испытываете, является эффектом ViewEncapsulation
компонентов по умолчанию в Angular.
Когда вы определяете компонент, такой как ниже, инкапсуляция вида компонента будет значением по умолчанию, которое я включил в комментарий.Это означает, что Angular не будет создавать так называемый «теневой DOM» для вашего компонента, и все стили будут применяться только к вашему компоненту.
Инкапсулированный компонент
@Component({
selector: 'my-component',
templateUrl: './app.component.html',
styleUrls: ['./app.component.css'],
//encapsulation: ViewEncapsulation.Emulated
})
Если вместо этого вы хотите применить стили не только к вашему компоненту, вы можете указать конкретный ViewEncapsulation
в объявлении компонента.Использование ViewEncapsulation.None
приведет к перемещению стилей в заголовок DOM, и оно все равно не создаст теневой DOM.
Без инкапсуляции
@Component({
selector: 'my-component',
templateUrl: './app.component.html',
styleUrls: ['./app.component.css'],
encapsulation: ViewEncapsulation.None
})
Посмотрите на этот пример StackBlitz
Важно иметь в виду, что ViewEncapsulation.None
"утечет" ваших стилей в другие компоненты, что, в свою очередь, усложнит стилизациюваше приложение, если вы не знаете точно, где определены ваши стили.