Bisher glaubte ich, dass ein untergeordnetes Element nicht über ein Element z-indexiert werden kann, das ein Geschwister seines übergeordneten Elements ist, das einen höheren z-Index als sein übergeordnetes Element aufweist. Zum Beispiel sind Divs A und B Geschwister. Div A
hat einen Z-Index von 10 und div B
hat ein Z-Index von 5. Div B
ein untergeordnetes Element hat: Div C
, mit einem Z-Index von 9999. Von meinem Verständnis, div C
wird nicht oben div A
positioniert werden, weil div C
's Eltern (div B
) hat einen niedrigeren Z-Index als div A
. Dies gilt, es sei denn, div B
hat einen Z-Index von 'auto'. Wenn div B
hat einen Z-Index von 'Auto', die wäre '0', wie er von Körper erbt, div C
Positionen über div A
, obwohl div B's Z-Index ist tatsächlich LOWER als es war, als es warn ' t arbeiten.Kinder von Z-Index: 'Auto' vs Z-Index: 0, und was ist "Stacking-Kontext" in CSS?
Vom CSS2 spec, z-Index ‚Auto‘ wird als
Die Stapelebene des erzeugten Box im aktuellen Stapelkontext 0 ist definiert als die Box einen Kontext neuen Stapel nicht etablieren, es sei denn es ist das Wurzelelement.
Ich habe Schwierigkeiten beim Verständnis „Kontext zu stapeln.“ Es scheint, der einzige Unterschied zwischen einem definierten Z-Index von 0 und eine Standard von ‚auto‘ zu sein, die 0 ist, aber auch keinen Stapelkontext . Genauer gesagt:
Warum werden untergeordnete Elemente ohne Stapelinhalt anders als in einem Stapelkontext indexiert?
Hier ist eine Geige, die den Unterschied zwischen Z-Index von 0 und einem Z-Index von Auto zeigt. Das grüne div ist ein Kind des blauen div und das rote div ist ein Geschwister des blauen div.
Eine kürzere Antwort sein könnte: Sie brauchen eine Standard-Stapelreihenfolge für alle nicht positionierten Elemente auf der Seite, die keinen explizit festgelegten Z-Index aufweisen. –