Компонент Z-Index of Material Dropdown не размещается под фиксированным div при открытии

Цель: Я хотел бы, чтобы заголовок, раздел вкладок и раздел радиокнопок были зафиксированы в форме (см. изображение ниже). Это означает, что они всегда должны быть на виду и никогда не должны иметь перекрывающихся элементов.

Форма выглядит следующим образом:

Компонент Z-Index of Material Dropdown не размещается под фиксированным div при открытии

Это работает нормально, когда я просто прокручиваю форму вниз:

Компонент Z-Index of Material Dropdown не размещается под фиксированным div при открытии

Эта проблема:

Когда я открываю раскрывающийся список Angular Material, он перекрывает раздел радиокнопки:

Компонент Z-Index of Material Dropdown не размещается под фиксированным div при открытии

Вот HTML. Выделенные разделы — это элементы, которые я хочу зафиксировать на форме:

Компонент Z-Index of Material Dropdown не размещается под фиксированным div при открытии

А вот 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, но это не дало никакого эффекта. Компонент Z-Index of Material Dropdown не размещается под фиксированным div при открытии

попробуйте поставить z-index: -1 или ниже в раскрывающемся списке.

Ismail Vittal 31.05.2019 02:54

Я пробовал это, но затем за всей формой появляется cdk-overlay-container.

Kode_12 31.05.2019 03:05

также увеличьте z-index радиоконтейнера.

Ismail Vittal 31.05.2019 03:11

это все равно не сработает.

Kode_12 31.05.2019 04:31

Где CSS для выпадающего меню выбора?

Bman70 04.06.2019 00:23

добавил скриншот, чтобы показать, имейте в виду, что это просто css по умолчанию, который поставляется с компонентами материала

Kode_12 04.06.2019 01:01

Можете ли вы создать пример на stackblitz.com, воспроизводящий проблему?

David 04.06.2019 08:58
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Улучшение производительности загрузки с помощью Google Tag Manager и атрибута Defer
Улучшение производительности загрузки с помощью Google Tag Manager и атрибута Defer
В настоящее время производительность загрузки веб-сайта имеет решающее значение не только для удобства пользователей, но и для ранжирования в...
Безумие обратных вызовов в javascript [JS]
Безумие обратных вызовов в javascript [JS]
Здравствуйте! Юный падаван 🚀. Присоединяйся ко мне, чтобы разобраться в одной из самых запутанных концепций, когда вы начинаете изучать мир...
Система управления парковками с использованием HTML, CSS и JavaScript
Система управления парковками с использованием HTML, CSS и JavaScript
Веб-сайт по управлению парковками был создан с использованием HTML, CSS и JavaScript. Это простой сайт, ничего вычурного. Основная цель -...
JavaScript Вопросы с множественным выбором и ответы
JavaScript Вопросы с множественным выбором и ответы
Если вы ищете платформу, которая предоставляет вам бесплатный тест JavaScript MCQ (Multiple Choice Questions With Answers) для оценки ваших знаний,...
9
7
4 642
2
Перейти к ответу Данный вопрос помечен как решенный

Ответы 2

Ответ принят как подходящий

Проблема в том, что у 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;
}

Другие вопросы по теме