Heim > Web-Frontend > CSS-Tutorial > Opazität vs. Z-Index: Warum funktioniert Z-Index nicht immer mit halbtransparenten Elementen?

Opazität vs. Z-Index: Warum funktioniert Z-Index nicht immer mit halbtransparenten Elementen?

DDD
Freigeben: 2024-12-08 15:41:10
Original
590 Leute haben es durchsucht

Opacity vs. Z-Index: Why Doesn't Z-Index Always Work with Semi-Transparent Elements?

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!

Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage