Z-Index НЕ работает с диалоговым окном материала Angular

Ошибка:

Z-Index НЕ работает с диалогом материалов

Какое ожидаемое поведение?

Z-Index должен работать с диалогом материалов или диалог должен быть поверх всего остального.

Каково текущее поведение?

Диалог материалов покрывается опциями выбора, приведенными ниже.

Какие шаги для воспроизведения? https://stackblitz.com/edit/angular-gsa8kr-rkss7t?file=app/dialog-overview-example.html

  1. Введите текст.
  2. Выберите раскрывающийся список.

Скриншоты: https://postimg.cc/gallery/2i3tc2sbc/

Есть что-нибудь еще мы должны знать?

Пробные исправления CSS:

.modal__content,dialog-layout,mat-dialog-container,.mat-dialog-container,#cdk-overlay-0,.cdk-overlay-pane {
    z-index: 9999 !important;
}

Ничего из этого не сработало.

Приемы CSS-макетирования - floats и Flexbox
Приемы CSS-макетирования - floats и Flexbox
Здравствуйте, друзья-студенты! Готовы совершенствовать свои навыки веб-дизайна? Сегодня в нашем путешествии мы рассмотрим приемы CSS-верстки - в...
Введение в CSS
Введение в CSS
CSS является неотъемлемой частью трех основных составляющих front-end веб-разработки.
Как выровнять Div по центру?
Как выровнять Div по центру?
Чтобы выровнять элемент <div>по горизонтали и вертикали с помощью CSS, можно использовать комбинацию свойств и значений CSS. Вот несколько методов,...
Навигация по приложениям React: Исчерпывающее руководство по React Router
Навигация по приложениям React: Исчерпывающее руководство по React Router
React Router стала незаменимой библиотекой для создания одностраничных приложений с навигацией в React. В этой статье блога мы подробно рассмотрим...
Система управления парковками с использованием HTML, CSS и JavaScript
Система управления парковками с использованием HTML, CSS и JavaScript
Веб-сайт по управлению парковками был создан с использованием HTML, CSS и JavaScript. Это простой сайт, ничего вычурного. Основная цель -...
CSS: FlexBox
CSS: FlexBox
Ранее разработчики использовали макеты с помощью Position и Float. После появления flexbox сценарий полностью изменился.
3
0
8 671
2

Ответы 2

Элемент <select> - это элемент интерактивного содержимого в HTML. Он ведет себя как контекстное меню, вызываемое правой кнопкой мыши, и отображается над всеми элементами документа.

В вашем случае, когда вы нажимаете выбрать после ввода своего имени в поле, последовательно происходят следующие вещи:

  1. Вызывается событие размытия в текстовом поле, и открывается диалоговое окно.
  2. Откроется меню выбора.

Итак, в соответствии с последовательностью, что происходит правильно, то есть сначала открывается диалоговое окно, а затем выбор, поэтому выбор находится над диалоговым окном, что является правильным.

Но, конечно, интерфейс не кажется хорошим, когда это происходит, поэтому есть обходной путь, то есть скрыть выбор при открытии диалогового окна, а затем показать его снова, скажем, через 0,1 секунды. По мере того, как выбор скрывается, его меню скроется вместе с ним.

Я реализовал это для вас. Взгляните на этот Stackblitz: Выбрать закрытие при открытии диалога

Надеюсь, это поможет.

Очень хорошо. Большое спасибо за Вашу помощь! Высоко оценен.

Andrius 19.10.2018 09:29

Добро пожаловать. Если вы считаете, что это правильный ответ, примите этот ответ как лучший, чтобы другие пользователи прочитали его.

Nabil Shahid 19.10.2018 09:41

@NabilShahid, что, если мне нужен его z-index по-разному для разных элементов, например, mat-menu идет за моим фиксированным заголовком и mat-dialog над моим фиксированным заголовком, но я не могу этого сделать, оба использовали cdk-overlay-container, поэтому я не могу установить его индекс отдельно.

Awais 16.10.2019 12:03

Класс, содержащий оверлей matdialog, - cdk-оверлей-контейнер

Добавьте этот код в свой style.css

.cdk-overlay-container {
    z-index: 9999 !important;
}

Это должно решить проблему.

Это решило мою проблему, когда я добавил :: ng-deep. Почему?

mr.Nobody 16.02.2021 12:49

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