Warum Clip-Path die Stapelreihenfolge ändert: Ein tieferer Einblick
In der Welt von CSS beschäftigen wir uns oft mit der Stapelreihenfolge von Elementen , wobei weiter oben im Code positionierte Elemente im Allgemeinen über den darunter positionierten Elementen gezeichnet werden. Allerdings können bestimmte Eigenschaften, wie zum Beispiel Clip-Pfad, diese erwartete Stapelreihenfolge stören und zu unerwarteten Ergebnissen führen.
Beachten Sie den folgenden CSS-Code:
header { background: #a00; clip-path: polygon(0 0, 100% 0, 100% calc(100% - 5em), 0 100%); }
Bei Anwendung auf eine Überschrift (
Um dieses Verhalten zu verstehen, müssen wir verstehen, dass Clip-Pfad, ähnlich wie CSS-Opazität, eine erstellt Neuer Stapelkontext. In der durch CSS definierten Malreihenfolge werden Elemente, die Stapelkontexte erstellen, vor nicht positionierten Elementen positioniert.
8. All positioned, opacity or transform descendants, in tree order that fall into the following categories: - All positioned descendants with 'z-index: auto' or 'z-index: 0', in tree order. - All opacity descendants with opacity less than 1, in tree order, create a stacking context generated atomically. - All transform descendants with transform other than none, in tree order, create a stacking context generated atomically.
In unserem Beispiel wird das Element mit der Clip-Pfad-Eigenschaft in Schritt 8 gemalt, während das Bild , ohne jegliche Positionierung, wird in Schritt 4 gezeichnet. Obwohl das Bild später im Code erscheint, wird es aufgrund des durch Clip-Pfad erstellten Stapelkontexts vor dem abgeschnittenen Header gezeichnet.
Zu Um dies zu beheben, kann man position:relative explizit auf dem Bild definieren. Dadurch wird das Bild positioniert, sodass es im selben Stapelkontext wie der abgeschnittene Header platziert wird. Die Baumreihenfolge bestimmt dann, dass das Bild über der Kopfzeile gerendert wird.
img { margin-top: -10em; position:relative; }
Zusammenfassend lässt sich sagen, dass der Clip-Pfad ebenso wie die CSS-Deckkraft einen Stapelkontext herstellt, der sich auf die Malreihenfolge der Elemente auswirkt. Durch das Verständnis dieser Konzepte können wir das Stapelverhalten steuern und die gewünschten visuellen Ergebnisse erzielen.
Das obige ist der detaillierte Inhalt vonWarum ändert „clip-path' die Stapelreihenfolge von HTML-Elementen?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!