Z-index over9000 не нужен вообще. Это костыль, который некоторые люди, не понимающие css, используют для того, чтобы быть уверенными в том, что их элемент будет "сверху". При этом цивилизованные люди ограничиваются небольшими значениями z-index, с которыми проще работать. Иногда используют логические схемы вроде таких:
- 0-9 - в пределах компонента
- 10-19 - для всплывающих менюшек, подсказок и.т.д.
- 20-25 - для выезжающих меню, модалок и.т.д.
Можно ограничиться только диапазоном 0-9, но такая схема, хоть и является избыточной, позволяет проще ориентироваться в коде.
А те, кто говорит "Но если используются сторонние плагины, в которых элементы имеют большой z-index, а их надо перекрыть, то ничего другого не остается" в ответах выше (
mletov ) просто решают один костыль подпереть другим. Не стоит утверждать, что ничего другого не остается - в большинстве случаев предпочтительнее в такой ситуации использовать обертку (пример упрощен для наглядности):
<div class="my-div">My element</div>
<div class="wrapper">
<div class="over9000">over9000</div>
</div>
div { position: absolute; width: 100%; }
.my-div { background: #0f0; z-index: 2; }
.wrapper { z-index: 1; }
.over9000 { background: #f00; z-index: 9999 !important; }
В такой ситуации "мой элемент" будет выше, чем "over9000".
codepen