У багатьох випадках елемент повинен бути встановлений для 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
.