#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. Да, я увидел это сейчас. Спасибо