Цель: Я хотел бы, чтобы заголовок, раздел вкладок и раздел радиокнопок были зафиксированы в форме (см. изображение ниже). Это означает, что они всегда должны быть на виду и никогда не должны иметь перекрывающихся элементов.
Форма выглядит следующим образом:
Это работает нормально, когда я просто прокручиваю форму вниз:
Эта проблема:
Когда я открываю раскрывающийся список Angular Material, он перекрывает раздел радиокнопки:
Вот HTML. Выделенные разделы — это элементы, которые я хочу зафиксировать на форме:
А вот CSS для 3-х разделов
//Header:
.module__header {
position: fixed;
top: 0px;
z-index: 1001;
display: flex;
height: 35px;
width: 100%;
background-color: #082749;
color: #FFFFFF;
font-size: 14px;
font-weight: 500;
align-items: center;
justify-content: stretch;
padding: 0;
margin-bottom: 0;
}
// Tab Section:
.mat-tab-label-container {
position: fixed;
top: 35px;
padding-top: 10px;
z-index: 1001;
width: 100%;
background: #fff;
}
// Radio Button Section:
.timaticFullTextView {
padding-top: 35px;
padding-left: 15px;
padding-bottom: 15px;
background: #fff;
z-index: 1001;
position: fixed;
width: 100%;
border-bottom: 1.5px solid gray;
}
Я попытался изменить cdk-overlay-container на z-index <1001, но это все еще перекрывает раздел Radio Button.
Как я могу открыть раскрывающийся список под всеми тремя разделами?
Обновлено: добавлен скриншот, чтобы показать наложение cdk, которое вызывает проблемы. Я пытался удалить и понизить z-index, но это не дало никакого эффекта.
Я пробовал это, но затем за всей формой появляется cdk-overlay-container.
также увеличьте z-index
радиоконтейнера.
это все равно не сработает.
Где CSS для выпадающего меню выбора?
добавил скриншот, чтобы показать, имейте в виду, что это просто css по умолчанию, который поставляется с компонентами материала
Можете ли вы создать пример на stackblitz.com, воспроизводящий проблему?
Проблема в том, что у mat-tab-body
есть z-index: 1
, и это не позволит вашему фиксированному виду внутри иметь большую высоту. Вы можете удалить z-index
из mat-tab-body
, тогда ваш контент без z-index
больше не будет кликабельным, поэтому вам нужно добавить z-index
и position
к нефиксированному контенту.
Код должен был бы выглядеть примерно так:
<mat-tab>
<mat-tab-body> <!-- <-- added automatically -->
<div class = "tab-header"></div>
<div class = "tab-content"></div>
</mat-tab-body>
</mat-tab>
::ng-deep mat-tab-body {
z-index: unset !important;
}
.tab-header {
position: fixed;
z-index: 1001;
}
.tab-content {
position: relative;
z-index: 1;
}
Вы нашли правильный элемент, применив стили не к тому.
Вот как я заставил это работать
.cdk-global-overlay-wrapper, .cdk-overlay-container {
z-index: 99999 !important;
}
попробуйте поставить
z-index: -1
или ниже в раскрывающемся списке.