Если вы проверите сгенерированный CSS для элемента mat-select
, вы обнаружите, что класс .mat-disabled
не стилизует <mat-select>
напрямую.Вместо этого его потомки меняют стиль в зависимости от присутствия этого класса;а именно, значение триггера (элемент, к которому применен наиболее визуальный стиль) имеет правило специфичности
.mat-select-disabled .mat-select-value {
color: rgba(black, 0.38);
}
(примечание: я вижу, что вы используете opacity: 1
в вашем примере правила.Это не заставит текст с color: rgba(x)
выглядеть по-другому.)
Просто по своей природе CSS вам нужно будет получить более конкретное значение, чем это правило, чтобы переопределить его.
Поскольку AngularУдивительно, он работает по концепции, называемой инкапсуляцией представлений - стили компонента являются локальными для этого компонента.Это достигается с помощью тега атрибута, где все стили компонентов будут добавлены в селекторы как правило.
Это означает, что если вы просто скопируете это же правило в свой компонент, оно будет более конкретным, чем предыдущийСелекторы и будут применяться.
Если вы пытаетесь применить это глобально, вам нужно будет добавить другой селектор класса и добавить этот класс к элементу.Или те, кто использует темы SASS и Material, могут обернуть это в тему и применить его с простым классом.Директива тоже сработает.
Также, пожалуйста, никогда не используйте !important
.Щенок умирает каждый раз, когда вы это делаете.