Согласно спецификации материала 3, различные уровни высоты должны обрабатываться цветом, а не тенью. Однако в моем проекте Angular Material 18 все фоны имеют одинаковый цвет/высоту (например, панель инструментов, панель навигации и карты). Как именно это должно работать? Согласно документации (https://material.angular.io/guide/elevation) я должен использовать классы, но в версии 18+ они, похоже, ничего не делают. Любая помощь будет принята с благодарностью.
Кажется, это известная P4
ошибка в угловом материале. Это до сих пор не исправлено, было поднято для углового 15.
Проголосуйте за эту проблему, чтобы она была исправлена в будущем.
Причина, по которой вы получаете эту проблему, заключается в том, что стили темы имеют больший приоритет, чем класс возвышения, поэтому тень поля не применяется.
Что касается временного решения.
Все, что вам нужно сделать, чтобы реализовать временный обходной путь от пользователя GoodGuyGregory
@for $i from 0 through 24 {
.mat-mdc-card.mat-elevation-z#{$i} {
@include mat.elevation($i);
}
}
Мы воссоздаем классы высот на уровне таблицы стилей angular, чтобы решить проблему приоритета.
Если для других компонентов углового материала, попробуйте приведенное ниже исправление, которое я использую !important
, чтобы гарантировать применение переопределения.
@for $i from 0 through 24 {
.mat-elevation-z#{$i} {
@include mat.elevation($i) !important;
}
}
Таким образом, конечный результат будет:
@use '@angular/material' as mat;
$theme: mat.define-theme(
(
color: (
theme-type: light,
primary: mat.$azure-palette,
tertiary: mat.$blue-palette,
),
)
);
body {
@include mat.all-component-themes($theme);
font-family: Roboto, 'Helvetica Neue', sans-serif;
margin: 0;
padding: 30px;
height: 100%;
}
html {
height: 100%;
}
@include mat.core();
@include mat.color-variants-backwards-compatibility($theme);
@for $i from 0 through 24 {
.mat-mdc-card.mat-elevation-z#{$i} {
@include mat.elevation($i);
}
}
@henkenstein Глядя на документы, это способ M3, вы указываете только на документы M3.
Я знаю, что так написано на сайте angular, но согласно спецификации это другое (см. m3.material.io/styles/elevation/overview).
@henkenstein Невозможно показать высоту, изменив цвет поверхности элемента, они устанавливают тень блока и показывают глубину, так же, как и то, что делает угловой материал. Если вы хотите, вы можете проверить элемент на элементе материала, и вы это сделаете. Посмотрите, как применена тень блока, точно так же, как это делает угловой материал!
@henkenstein проголосуйте за (^
) и поставьте зеленую галочку, если ответ помог, спасибо!
Спасибо! Кажется, это работает. Единственная проблема в том, что кажется, что тени используются для возвышения. Какой материал 2 способ. Знаете ли вы, как вместо этого я могу использовать цвета (трехсторонний материал)?