In vielen Fällen muss ein Element positioniert werden, damit z-index
es funktioniert.
In der Tat würde eine Anwendung position: relative
auf die Elemente in der Frage das Problem wahrscheinlich lösen (aber es wird nicht genügend Code bereitgestellt, um dies sicher zu wissen).
Eigentlich position: fixed
, position: absolute
und position: sticky
wird auch ermöglichen z-index
, aber diese Werte auch das Layout ändern. Mit position: relative
dem Layout wird nicht gestört.
Solange das Element nicht vorhanden ist position: static
(Standardeinstellung), wird es im Wesentlichen als positioniert betrachtet und z-index
funktioniert.
Viele Antworten auf "Warum funktioniert der Z-Index nicht?" Fragen behaupten, dass z-index
nur auf positionierten Elementen funktioniert. Ab CSS3 ist dies nicht mehr der Fall.
Elemente, die flexible Elemente oder Rasterelemente sind, können auch dann verwendet werden z-index
, wenn dies der Fallposition
ist static
.
Aus den Spezifikationen:
4.3. Flex Artikel Z-Bestellung
Flex-Elemente werden genauso wie Inline-Blöcke gezeichnet, außer dass die Reihenfolge der geänderten Dokumente anstelle der Reihenfolge der Rohdokumente verwendet wird und z-index
andere Werte als das auto
Erstellen eines Stapelkontexts verwendet werden, selbst wenn dies der Fall position
ist static
.
5.4. Z-Achsen-Reihenfolge: die z-index
Eigenschaft
Die Malreihenfolge von Rasterelementen entspricht genau der von Inline-Blöcken, außer dass die Reihenfolge der geänderten Dokumente anstelle der Reihenfolge der Rohdokumente verwendet wird und z-index
andere Werte als das auto
Erstellen eines Stapelkontexts verwendet werden, selbst wenn dies der Fall
position
ist static
.
Hier ist eine Demonstration der z-index
Arbeit an nicht positionierten Flex-Elementen: https://jsfiddle.net/m0wddwxs/
Stacking Context
.