z-index не работает, элемент всё равно под другим — почему?
Поставил элементу z-index: 9999, а он всё равно оказывается ПОД соседним блоком. Что я делаю не так?
3 ответа
99% случаев — у элемента не задан position. z-index работает только на позиционированных элементах (relative, absolute, fixed, sticky). У position: static (по умолчанию) z-index просто игнорируется.
.box {
position: relative; /* без этого z-index не сработает */
z-index: 10;
}
Вторая частая причина — контекст наложения (stacking context). Если родитель элемента имеет свой z-index (или opacity < 1, transform, filter), то твой z-index: 9999 соревнуется только внутри этого родителя. То есть ребёнок с z-index 9999 всё равно будет ниже соседнего блока, если родитель этого блока стоит выше. Тогда поднимать нужно родителя, а не сам элемент.
Скорее всего забыл position: relative. Без позиционирования z-index не действует.
Просто поставь z-index побольше, например 99999.