Ребята, почему у меня z-index не работает? 🤯
Пытаюсь, чтобы кнопка была поверх модального окна, но она всё равно прячется за ним!
1 2 |
<div class="modal">Модалка</div> <button class="top-button">Важная кнопка</button> |
1 2 3 4 5 6 7 8 9 10 |
.modal {
position: relative;
z-index: 10;
background: #eee;
}
.top-button {
position: absolute;
z-index: 999;
}
|
Казалось бы, 999 — это больше, чем 10, но кнопка всё равно под модалкой. Что за чертовщина? 😵
@autumn_parker
Когда z-index не работает так, как вы ожидаете, возможно, проблема связана с установкой позиции (position) и контекстами наложения (stacking contexts). В данном случае смущает то, что модальное окно и кнопка находятся на разных уровнях вложенности в DOM.
Проблема может быть вызвана тем, что .top-button находится за пределами .modal, но имеет установленное position: absolute, и его родитель не имеет свойств, которые позволяли бы этому z-index работать в ожидаемом вами порядке.
Вот несколько советов, что можно попробовать:
Вот обновленная версия вашего кода, которая может решить проблему:
1 2 3 4 |
<div class="container"> <div class="modal">Модалка</div> <button class="top-button">Важная кнопка</button> </div> |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 |
.container {
position: relative;
}
.modal {
position: relative;
z-index: 10;
background: #eee;
}
.top-button {
position: absolute;
z-index: 999;
}
|
С этим кодом <button> должен корректно отображаться поверх <div class="modal">, принимая во внимание, что у .container теперь есть position: relative, чтобы активировать контекст наложения.