Deckkraft vs. Z-Index: Die unsichtbare Überlagerung
Beim Überlagern von Elementen in Webbrowsern kommen zwei wichtige Eigenschaften ins Spiel: Deckkraft und Z-Index. Die Deckkraft steuert die Transparenz eines Elements, während der Z-Index seine Position in der Stapelreihenfolge bestimmt. Es wurde jedoch eine überraschende Wechselwirkung zwischen diesen Eigenschaften entdeckt.
Das Problem: völlig widersprüchlich
Stellen Sie sich das Szenario vor, in dem ein „Popup-Fenster“ über einem hinzugefügt wird marineblaues Quadrat. Intuitiv würde man erwarten, dass das Quadrat vollständig unter dem Popup verborgen ist. Wenn die Deckkraft des Quadrats jedoch unter 1 (z. B. 0,3) eingestellt ist, bleibt ein Teil des Quadrats unter dem Popup-Fenster sichtbar.
Das Rätsel lösen
Dieses Verhalten ist kein Fehler, sondern eine bewusste Designentscheidung von Webbrowsern. Gemäß dem CSS-Farbmodul erstellen Elemente mit einer Deckkraft von weniger als 1 einen neuen Stapelkontext. Folglich können Elemente außerhalb dieses Kontexts nicht darin geschichtet werden, unabhängig von ihren Z-Indexwerten.
Der Silent Stacking-Kontext
Standardmäßig werden nicht positionierte Elemente mit Opazität kleiner als 1 werden so behandelt, als ob sie „Z-Index: 0“ und „Opazität: 1“ hätten. Dies bedeutet, dass sie immer in der gleichen Stapelreihenfolge gerendert werden, als ob sie sich am Ende ihres übergeordneten Stapelkontexts befänden, unabhängig von ihren tatsächlichen Z-Indexwerten.
Konflikt lösen
Um dieses Verhalten zu beheben, kann man einfach vermeiden, Deckkraftwerte unter 1 für Elemente zu verwenden, die vollständig ausgeblendet werden sollen. Alternativ kann die gewünschte Stapelreihenfolge erreicht werden, indem das Element mit einer Deckkraft von weniger als 1 mithilfe von CSS-Eigenschaften wie „Position: absolut“ oder „Position: fest“ positioniert wird, da die Eigenschaft „Z-Index“ dann die Stapelreihenfolge darin steuert der neue Stapelkontext, der durch die Opazität erstellt wird.
Das obige ist der detaillierte Inhalt vonOpazität vs. Z-Index: Warum funktioniert Z-Index nicht immer mit halbtransparenten Elementen?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!