У багатьох випадках елемент повинен бути встановлений для z-indexроботи.
Дійсно, звернення position: relativeдо елементів у запитанні, ймовірно, вирішить проблему (але код не надано достатньо, щоб точно знати).
На насправді, position: fixed, position: absoluteі position: stickyтакож дозволить z-index, але ці значення також змінити розташування. З position: relativeкомпонуванням не заважає.
По суті, поки елемент не є position: static(налаштування за замовчуванням), він вважається позиціонованим і z-indexбуде працювати.
Багато відповідей на "Чому z-індекс не працює?" питання стверджують, що працює z-index лише на позиціонованих елементах. Що стосується CSS3, це вже не відповідає дійсності.
Елементи, які є гнучкими елементами або елементами сітки, можна використовувати z-indexнавіть тоді, коли positionє static.
З специфікацій:
4.3. Flex Item Z-Ordering
Елементи Flex фарбують точно так само, як і вбудовані блоки, за винятком того, що замовлення з модифікованим порядком використовується замість необробленого порядку документа та z-indexзначення, відмінні від autoстворення контексту складання, навіть якщо positionє static.
5.4. Впорядкування осі Z: z-indexВластивість
Порядок фарбування елементів сітки точно такий же, як і вбудовані блоки, за винятком того, що замовлення документа, модифікованого порядком, використовується замість необробленого порядку документа та z-indexзначення, відмінні від autoстворення контексту складання, навіть якщо
positionє static.
Ось демонстрація z-indexроботи над непозиціонованими гнучкими елементами: https://jsfiddle.net/m0wddwxs/
Stacking Context.