W wielu przypadkach element musi być ustawiony, z-index
aby działał.
Rzeczywiście, zastosowanie position: relative
się do elementów w pytaniu prawdopodobnie rozwiązałoby problem (ale nie ma wystarczającej ilości kodu, aby wiedzieć na pewno).
Właściwie position: fixed
, position: absolute
i position: sticky
umożliwi również z-index
, ale te wartości również zmienić układ. Dzięki position: relative
układowi nie przeszkadza.
Zasadniczo, o ile element nie jest position: static
(ustawienie domyślne), jest uważany za ustawiony i z-index
będzie działał.
Wiele odpowiedzi na pytanie „Dlaczego indeks Z nie działa?” pytania twierdzą, że działa z-index
tylko na pozycjonowanych elementach. Od wersji CSS3 nie jest to już prawdą.
Elementy, które są elementami elastycznymi lub elementami siatki, mogą być używane z-index
nawet wtedy, gdy position
są static
.
Ze specyfikacji:
4.3. Zamawianie elementów elastycznych Z.
Elementy Flex malują dokładnie tak samo, jak bloki w wierszu, z tą różnicą, że zamiast pierwotnej kolejności dokumentów jest używana kolejność dokumentów o zmodyfikowanej kolejności, a z-index
wartości inne niż auto
tworzą kontekst układania, nawet jeśli position
jest static
.
5.4. Porządkowanie osi Z: z-index
właściwość
Kolejność malowania elementów siatki jest dokładnie taka sama, jak w blokach wbudowanych, z wyjątkiem tego, że zamiast kolejności dokumentów surowych używana jest kolejność dokumentów o zmodyfikowanej kolejności, a z-index
wartości inne niż auto
tworzą kontekst układania, nawet jeśli
position
jest static
.
Oto demonstracja z-index
pracy z niepozycjonowanymi elementami elastycznymi: https://jsfiddle.net/m0wddwxs/
Stacking Context
.