Heim >Web-Frontend >CSS-Tutorial >Wie kann die Stapelreihenfolge trotz WebKit-Filter-Hover in CSS beibehalten werden?

Wie kann die Stapelreihenfolge trotz WebKit-Filter-Hover in CSS beibehalten werden?

DDD
DDDOriginal
2024-10-24 11:37:02822Durchsuche

How to Maintain Stacking Order Despite WebKit Filter Hover in CSS?

Änderungen der Stapelreihenfolge im Webkit-Filter beim Bewegen des Mauszeigers: Stapelkontexte verstehen

Ein merkwürdiges Problem tritt bei der Stapelreihenfolge auf, wenn ein WebKit-Filter angewendet wird: beim Bewegen des Mauszeigers Über einem Bild verschiebt sich die Reihenfolge unerwartet. Um diese Herausforderung zu lösen, ohne andere Elemente der Website zu stören, tauchen Sie in die Feinheiten des Stapelns von Kontexten ein.

Stapeln von Kontexten bestimmen die Reihenfolge, in der Elemente auf der Seite angezeigt werden. Ein Element erstellt einen neuen Stapelkontext, wenn seine Stileigenschaften bestimmte Werte enthalten, z. B. Transformation, Überlauf oder einen Filter.

Wenn im bereitgestellten Beispiel ein WebKit-Filter (Graustufen) auf das Bild angewendet wird, a Der Stapelkontext wird automatisch eingerichtet. Dieser neu erstellte Kontext führt dazu, dass das absolut positionierte Div („.slide-content“) unter dem Bild positioniert wird, wodurch es ausgeblendet wird.

Um dieses unerwünschte Verhalten zu verhindern und die ursprüngliche Stapelreihenfolge beizubehalten, ist hier ein überarbeitete Lösung:

Ersetzen Sie dieses CSS:

<code class="css">li a:hover img {
  -webkit-filter: grayscale(100%);
}</code>

Mit dieser Alternative, die die Erstellung eines Stapelkontexts vermeidet:

<code class="css">li a:hover img::before {
  content: "";
  background-color: rgba(0, 0, 0, 0.5);
  width: 100%;
  height: 100%;
  position: absolute;
  left: 0;
  filter: grayscale(100%);
  z-index: -1;
}</code>

Durch die Verwendung eines Pseudoelements (: :before) mit einer absoluten Position und der Platzierung unter dem Bild simulieren wir effektiv die Wirkung eines Filters, ohne einen neuen Stapelkontext zu erstellen. Mit dieser cleveren Problemumgehung können Sie den gewünschten visuellen Effekt erzielen und gleichzeitig die beabsichtigte Stapelreihenfolge beibehalten.

Das obige ist der detaillierte Inhalt vonWie kann die Stapelreihenfolge trotz WebKit-Filter-Hover in CSS beibehalten werden?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
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