разница между глобальным styles.scss и добавлением styles.scss к компоненту в Angular

#angular #sass #angular-material

#angular #sass #angular-материал

Вопрос:

Есть ли разница между помещением стилей / миксинов в styles.scss и добавлением их с помощью @use или @import в какой-либо компонент.scss? (И удалением styles.scss из angular.json раздела styles.) В случае @angular/material почему первый подход работает, а второй нет?

Комментарии:

1. если вы добавляете css в компонент, область видимости будет только для этого компонента ( * ), если вы используете styles.scss, область видимости — это все приложение. ( * ) вы можете изменить это поведение с помощью ViewState.None. Некоторые компоненты в material используют cdk-overlay для отображения всплывающего окна. Это создает div «вне» компонента, поэтому вы не можете «добраться» до css, используя .css с областью видимости только в компоненте

2. Спасибо, то, что вы сказали, имеет смысл, я не думал об элементах, созданных вне компонента. Если вы добавите свой комментарий в качестве ответа, я приму его

3. не беспокойтесь о том, чтобы поставить ответ. Например, о «cdk-overlay-container». Создайте приложение с mat-диалогом, если вы откроете диалоговое окно, посмотрите «html» (используя F12), вы увидите <cdk-overlay-container> , который находится «вне» компонента

4. Да, я увидел это сейчас. Спасибо