suchen
HeimWeb-FrontendCSS-TutorialWie viel wissen Sie über die Stapelreihenfolge und den Stapelkontext?

Wie viel wissen Sie über die Stapelebene und den Stapelkontext?

Z-Index sieht laut der Ebene von z eigentlich sehr einfach aus -index bestimmt die Priorität der Kaskade. Wenn Sie tiefer gehen, werden Sie feststellen, dass sich darin etwas befindet.

Sehen Sie sich die folgende Frage an und definieren Sie zwei p A und B, die unter demselben übergeordneten p-Tag enthalten sind. Die HTML-Struktur ist wie folgt:

<p class="container">
    <p class="inline-block">#pA display:inline-block</p>
    <p class="float"> #pB float:left</p>
</p>

Ihre CSS-Definition lautet wie folgt:

.container{

    position:relative;

    background:#ddd;

}

.container > p{

    width:200px;

    height:200px;

}

.float{

    float:left;

    background-color:deeppink;

}

.inline-block{

    display:inline-block;

    background-color:yellowgreen;

    margin-left:-100px;

}

Um es grob zu beschreiben: it bedeutet, dass die beiden ps einen gemeinsamen übergeordneten Container haben, der sich überlappt, display:inline-block oben gestapelt ist oder float:left ist Oben gestapelt?

Achten Sie hier auf die Reihenfolge, in der zuerst Display:inline-block und dann float:left generiert werden. Natürlich können Sie auch die beiden DOM setzen Die Reihenfolge wird wie folgt umgekehrt:

<p class="container">
    <p class="float"> #pB float:left</p>
    <p class="inline-block">#pA display:inline-block</p>
</p>

Sie werden feststellen, dass unabhängig von der Reihenfolge das p von display:inline-block immer oben gestapelt ist.

Demo stupst mich an.

<p class="container">
    <p class="inline-block">#pA inline-block</p>
    <p class="float"> #pB float:left</p>
</p>

<p class="container">
    <p class="float"> #pB float:left</p>
    <p class="inline-block">#pA inline-block</p>
</p>

Dabei handelt es sich tatsächlich um die sogenannte Stapelebene. Es gibt ein Bild, das es gut erklären kann:

Wie viel wissen Sie über die Stapelreihenfolge und den Stapelkontext?

Mit der Logik im Bild oben kann das obige Problem leicht gelöst werden. Die Stapelebene von inline-blcok ist höher als die von float, also unabhängig vom DOM Die Bestellung wird oben gestapelt.

Die obige Abbildung ist jedoch etwas ungenau. Laut offizieller Aussage von W3 lauten die genauen 7 Schichten:

  1.  der Hintergrund und die Ränder des Elements, die den Stapelkontext bilden.

  2.  die untergeordneten Stapelkontexte mit negativen Stapelebenen (am negativsten). zuerst).

  3.  die einfließenden, nicht auf Inline-Ebene liegenden, nicht positionierten Nachkommen.

  4.  die nicht positionierten Floats.

  5.  die einströmenden, nicht positionierten Nachkommen auf Inline-Ebene, einschließlich Inline Tabellen und Inline-Blöcke.

  6.  die untergeordneten Stapelkontexte mit Stapelebene 0 und die positionierten Nachkommen mit Stapelebene 0.

  7.  die untergeordneten Stapelkontexte mit positiven Stapelebenen (am wenigsten positiv). zuerst).

Eine kleine Übersetzung:

  1. Die Elemente, die den Stapelkontext bilden Hintergrund und Rahmen

  2. Untergeordnete Stapelkontextelemente mit negativem Z-Index (je höher der Negativwert, desto niedriger die Stapelebene)

  3. Normales Flusslayout, kein Inline-Block, keine Position positioniert (außer statisch) untergeordnete Elemente

  4. Keine Position positioniert (außer statisch) float schwebende Elemente

  5. Normales flüssiges Layout, Inline-Block-Elemente, keine Position positioniert (außer statisch) untergeordnete Elemente (einschließlich display :table und display:inline )

  6. Untergeordnetes Stapelkontextelement mit Z-Index: 0

  7. Ein untergeordnetes Stapelkontextelement mit einem positiven Z-Index: (je niedriger der positive, desto niedriger die Stapelebene)

Der Vergleich unserer beiden p's lautet also Basierend auf den oben aufgeführten Punkten 4 und 5. Die Stapelstufe 5 ist höher, daher ist die Stapelbarkeit höher.

Aber! Jetzt modifizieren wir die Frage und geben zwei p , füge eine Deckkraft hinzu:

.container{

    position:relative;

    background:#ddd;

}

.container > p{

    width:200px;

    height:200px;

    opacity:0.9; // 注意这里,增加一个 opacity

}

.float{

    float:left;

    background-color:deeppink;

}

.inline-block{

    display:inline-block;

    background-color:yellowgreen;

    margin-left:-100px;

}

Demo poke me.

Sie werden sehen, dass das p von inline-block nicht mehr unbedingt über dem p von float gestapelt ist, sondern mit der Stapelreihenfolge des DOM im HTML-Code zusammenhängt. p wird auf das zuerst hinzugefügte p gestapelt.

Der entscheidende Punkt hierbei ist, dass die zusätzliche opacity:0.9 es beiden p ermöglicht, einen Stapelkontext zu generieren. Konzept. Zu diesem Zeitpunkt benötigen Sie zum Stapeln der beiden einen Z-Index. Je höher der Z-Index, desto höher die Stapelebene.

Ein Stapelkontext ist ein dreidimensionales Konzept von HTML-Elementen, die sich entlang einer imaginären Z-Achse relativ zum Benutzer erstrecken, der auf das Fenster (Computerbildschirm) oder die Webseite blickt, HTML Elemente belegen Platz im Stapelkontext in der Reihenfolge ihrer Priorität basierend auf ihren eigenen Attributen.

Wie löst man also ein Element aus, um einen Stapelkontext zu bilden? Die Methode ist wie folgt, entnommen aus MDN:

  • Stammelement (HTML),

  •  Z-Indexwert ist keine „automatische“ absolute/relative Positionierung,

  • Ein Flex-Element mit einem anderen Z-Index-Wert als „auto“, d. h. die Anzeige des übergeordneten Elements: flex|inline-flex,

  •   Elemente mit einem Opazitätsattributwert kleiner als 1 (siehe Spezifikation für Opazität),

  •  Elemente, deren Transformationsattributwert nicht „none“ ist,

  •  Elemente, deren Mix-Blend-Mode-Attributwert nicht ist „normal“ ,

  • Elemente, deren Filterwert nicht „none“ ist,

  • Ist der Perspektivwert Elemente, deren Isolationsattribut auf „isolieren“ gesetzt ist, sind

  • > Position: fest

  • Geben Sie alle CSS-Eigenschaften in will-change an, auch wenn Sie die Werte dieser Eigenschaften nicht direkt angeben

  • - Elemente, deren Webkit-Overflow-Scrolling-Attribut auf „touch“ eingestellt ist

  • Also geben wir oben an Der Zweck des Hinzufügens des Opazitätsattributs zu den beiden p besteht darin, zu bilden ein Stapelkontext. Das heißt, Deckkraft hinzufügen Durch Ersetzen der oben aufgeführten Eigenschaften kann der gleiche Effekt erzielt werden.

In einem Stapelkontext werden auch seine untergeordneten Elemente gemäß den oben erläuterten Regeln gestapelt. Besonders hervorzuheben ist der Z-Index seiner untergeordneten Elemente Der Wert ist nur im Kontext der übergeordneten Kaskade von Bedeutung. Das heißt, wenn der Z-Index des übergeordneten Elements niedriger ist als der eines anderen Geschwisterelements des übergeordneten Elements, ist es unbrauchbar, egal wie hoch der Z-Index des untergeordneten Elements ist.

Das Verständnis der oben genannten Stapelebene und des Stapelkontexts ist der Schlüssel zum Verständnis der Stapelreihenfolge von CSS.

Das obige ist der detaillierte Inhalt vonWie viel wissen Sie über die Stapelreihenfolge und den Stapelkontext?. 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
Draggin ' und Dropfen ' in ReactDraggin ' und Dropfen ' in ReactApr 17, 2025 am 11:52 AM

Das React -Ökosystem bietet uns viele Bibliotheken, die alle auf die Interaktion von Drag & Drop konzentrieren. Wir haben React-Dnd, React-beautiful-dnd,

Schnelle SoftwareSchnelle SoftwareApr 17, 2025 am 11:49 AM

In letzter Zeit gab es einige wunderbar miteinander verbundene Dinge über schnelle Software.

Verschachtelte Gradienten mit HintergrundclipVerschachtelte Gradienten mit HintergrundclipApr 17, 2025 am 11:47 AM

Ich kann nicht sagen, dass ich das all das oft im Hintergrund-Clip verwende. I ' D Wette It ' wird in der täglichen CSS-Arbeit kaum jemals verwendet. Aber ich wurde in einem Posten von Stefan Judis daran erinnert,

Verwenden von RequestAnimationFrame mit React -HooksVerwenden von RequestAnimationFrame mit React -HooksApr 17, 2025 am 11:46 AM

Die Animation mit RequestAnimationFrame sollte einfach sein, aber wenn Sie die Dokumentation von React nicht gründlich gelesen haben, werden Sie wahrscheinlich auf ein paar Dinge stoßen

Müssen Sie nach oben auf der Seite scrollen?Müssen Sie nach oben auf der Seite scrollen?Apr 17, 2025 am 11:45 AM

Vielleicht ist der einfachste Weg, dies dem Benutzer anzubieten, ein Link, der auf eine ID auf das Element abzielt. Also wie ...

Die beste API (GraphQL) ist eine, die Sie schreiben, die Sie schreibenDie beste API (GraphQL) ist eine, die Sie schreiben, die Sie schreibenApr 17, 2025 am 11:36 AM

Hören Sie, ich bin kein GraphQL -Experte, aber ich arbeite gerne damit. Die Art und Weise, wie es mir Daten als Front-End-Entwickler vorstellt, ist ziemlich cool. Es ist wie ein Menü von

Wöchentliche Plattform News: Textabstand Lesezeichen, Top-Level-Erwartung, neuer Verstärker-LadeindikatorWöchentliche Plattform News: Textabstand Lesezeichen, Top-Level-Erwartung, neuer Verstärker-LadeindikatorApr 17, 2025 am 11:26 AM

In der Roundup in dieser Woche, einem praktischen Lesezeichen für die Inspektion von Typografie, unter Verwendung dessen, wie sich JavaScript -Module gegenseitig importieren, sowie Facebook ' s.

Verschiedene Methoden zur Erweiterung einer Schachtel und gleichzeitig den GrenzradiusVerschiedene Methoden zur Erweiterung einer Schachtel und gleichzeitig den GrenzradiusApr 17, 2025 am 11:19 AM

I ' Ich habe kürzlich eine interessante Änderung auf Codepen bemerkt: Als es ein Rechteck mit abgerundeten Ecken auf der Homepage schwebt, expandieren Sie sich im Rücken.

See all articles

Heiße KI -Werkzeuge

Undresser.AI Undress

Undresser.AI Undress

KI-gestützte App zum Erstellen realistischer Aktfotos

AI Clothes Remover

AI Clothes Remover

Online-KI-Tool zum Entfernen von Kleidung aus Fotos.

Undress AI Tool

Undress AI Tool

Ausziehbilder kostenlos

Clothoff.io

Clothoff.io

KI-Kleiderentferner

AI Hentai Generator

AI Hentai Generator

Erstellen Sie kostenlos Ai Hentai.

Heißer Artikel

R.E.P.O. Energiekristalle erklärten und was sie tun (gelber Kristall)
1 Monate vorBy尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Beste grafische Einstellungen
1 Monate vorBy尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. So reparieren Sie Audio, wenn Sie niemanden hören können
1 Monate vorBy尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Chat -Befehle und wie man sie benutzt
1 Monate vorBy尊渡假赌尊渡假赌尊渡假赌

Heiße Werkzeuge

EditPlus chinesische Crack-Version

EditPlus chinesische Crack-Version

Geringe Größe, Syntaxhervorhebung, unterstützt keine Code-Eingabeaufforderungsfunktion

WebStorm-Mac-Version

WebStorm-Mac-Version

Nützliche JavaScript-Entwicklungstools

Sicherer Prüfungsbrowser

Sicherer Prüfungsbrowser

Safe Exam Browser ist eine sichere Browserumgebung für die sichere Teilnahme an Online-Prüfungen. Diese Software verwandelt jeden Computer in einen sicheren Arbeitsplatz. Es kontrolliert den Zugriff auf alle Dienstprogramme und verhindert, dass Schüler nicht autorisierte Ressourcen nutzen.

SublimeText3 Englische Version

SublimeText3 Englische Version

Empfohlen: Win-Version, unterstützt Code-Eingabeaufforderungen!

Senden Sie Studio 13.0.1

Senden Sie Studio 13.0.1

Leistungsstarke integrierte PHP-Entwicklungsumgebung