Ein kurzer Überblick über CSS3-Pseudoklassenselektoren

Ein kurzer Überblick über CSS3-Pseudoklassenselektoren

Vorwort

Wenn CSS die Grundfertigkeit der Front-End-Entwicklung ist, dann sind „Selektoren“ die Grundlage der Grundlage. Wenn Sie diese verwirrenden Selektoren kopieren oder lernen, dann sind Sie hier richtig, mein alter Freund.

In diesem Artikel werden die Funktionen direkt verglichen, damit Sie sie schnell beherrschen:

  • erstes Kind
  • letztes Kind
  • Erster seines Typs
  • Letzter Typ
  • Einzelkind
  • nur vom Typ
  • n-tes Kind
  • n-tes-letztes-Kind
  • n-ter-Typ
  • n-ter-letzter-des-Typs

erstes Kind und letztes Kind

Diese beiden Selektoren gleichen das erste Element in einer Gruppe von Geschwistern ab:

Hinweis: Damit dieser Selektor funktioniert, müssen eigentlich drei Bedingungen erfüllt sein:

  • Entspricht dem vorherigen Selektor, in diesem Fall p
  • Ist eine Gruppe von Geschwisterelementen
  • Ist das erste (oder letzte) Element

Auf last-child werde ich hier nicht näher eingehen. Der Unterschied besteht darin, dass es von hinten nach vorne übereinstimmt.

Erster des Typs und Letzter des Typs

Diese beiden Selektoren stimmen mit dem ersten (letzten) Element desselben Typs überein, unabhängig davon, ob das Element tatsächlich das erste (letzte) Element in der Gruppe ist:

Hinweis: Damit dieser Selektor funktioniert, müssen eigentlich zwei Bedingungen erfüllt sein:

  • Entspricht dem vorherigen Selektor, in diesem Fall p
  • Ist eine Gruppe von Geschwisterelementen

Auf last-of-type werde ich hier nicht näher eingehen. Der Unterschied besteht darin, dass es von hinten nach vorne übereinstimmt.

Einzelkind & Einziger vom Typ

only-child entspricht Elementen, die keine Geschwisterelemente haben, also „verwaiste“ Elemente:

Die „isolierten“ Elemente in der obigen Abbildung sind das erste <p> und das verschachtelte <span> , die beide vom Selektor abgeglichen werden.

only-of-type stimmt mit Elementen eines Typs überein, der in einer Menge gleichgeordneter Elemente eindeutig ist:

Da das erste <p> , das zweite <p> und das letzte <span> in ihrem übergeordneten Elementtyp alle eindeutig sind, werden sie vom Selektor abgeglichen.

n-tes Kind & n-tes-letztes Kind

Das Interessanteste an diesen Pseudoklassenselektoren ist, dass sie eine Formel an+b übergeben können, um Elemente gemäß dieser Formel abzugleichen. Es gibt viele Möglichkeiten, mit dieser Formel zu spielen, was dazu geführt hat, dass sich viele Leute alle Kombinationen dieser Formel und den passenden Inhalt merken.

Tatsächlich wird unsere Denkweise durch CSS verfestigt, da es sehr einfach ist, die Regeln aus mathematischer Sicht herauszufinden. Als Beispiel gibt es den folgenden Code:

<Stil>
  p:n-tes-Kind(2n+1){
    Farbe: blau;
  }
</Stil>
<Text>
  <p>Erste Zeile</p>
  <p>Zeile 2</p>
  <p>Zeile 3</p>
</body>

Denkmodus:

  1. Sammeln Sie zunächst die übereinstimmenden Elemente, in diesem Beispiel drei <p> -Tags
  2. Zählen Sie vom Index 0 bis 2, um die Anzahl der <p> darzustellen, und setzen Sie sie zur Auswertung in die Formel ein.
  3. Ordnen Sie die Elemente den entsprechenden Indizes zu (die Elementindizes beginnen bei 1 zu zählen)

Ergebnis:

Formel erklären
2n Alle geraden Elemente
2n+1 Alle ungeraden Elemente
n und n+1 Alle Elemente
n+2 Elemente nach dem zweiten Element (einschließlich des zweiten Elements)
n+3 Elemente nach dem dritten Element (einschließlich des dritten Elements)
0n Nichts passt zusammen
3n+4 4,7,10,13 ....
1 Entspricht nur dem ersten Element
-n+2 Stimmt nur mit den ersten beiden Elementen überein
n-tes Kind (ungerade) Ungerade Elemente
n-tes Kind (gerade) Sogar Elemente

Vergessen Sie jedoch nicht nth-child immer noch mit demselben Satz von Geschwisterelementen übereinstimmt. Interessant ist jedoch, nth-child den Selektor zum Filtern verwendet, beim Anwenden des Stils den Stil jedoch nicht auf die übereinstimmenden Elemente anwendet:

In der obigen Abbildung werden die beiden Gruppen von <p> -Elementen im <div> als Geschwisterelemente abgeglichen, aber interessanterweise wird auch das dritte <p> -Element „die dritte Zeile“ abgeglichen, was bedeutet, dass der Stil direkt auf die Gruppe der Geschwisterelemente angewendet wird und nicht auf das abgeglichene <p> -Element. Es ist jedoch zu beachten, dass die unterschiedlichen Typstile nicht angewendet werden, wenn <p> in der „dritten Gruppe“ im Bild <div> ist.

nth-last-child ist die Back-to-Front-Version, für die ich hier kein detailliertes Beispiel geben werde:

MDN bietet auch ein interessantes Beispiel, mit dem der Stil von Elementen entsprechend der Anzahl der Elemente gesteuert werden kann:

li:n-tes-letztes-Kind(n+3),
li:n-tes-letztes-Kind(n+3) ~ li {
  Farbe: rot;
}
<h4>Eine Liste mit vier Elementen (gestaltet):</h4>
<ol>
  <li>Eins</li>
  <li>Zwei</li>
  <li>Drei</li>
  <li>Vier</li>
</ol>

<h4>Eine Liste mit zwei Elementen (ohne Stil):</h4>
<ol>
  <li>Eins</li>
  <li>Zwei</li>
</ol>

n-ter Typ und n-ter letzter Typ

nth-of-type -Übereinstimmungen:

  • Geschwisterelemente des gleichen Typs in der gleichen Gruppe
  • Entspricht dem Element, das dem berechneten Wert der Formel entspricht

Ist Ihnen aufgefallen, dass nth-of-type sich von nth-child unterscheidet? Nach der Berechnung wird der Stil auf das übereinstimmende Element angewendet, nicht auf Geschwisterelemente.

nth-last-of-type Front-Version, die hier nicht näher beschrieben wird:

Das Obige ist der vollständige Inhalt dieses Artikels. Ich hoffe, er wird für jedermanns Studium hilfreich sein. Ich hoffe auch, dass jeder 123WORDPRESS.COM unterstützen wird.

<<:  dh Filtersammlung

>>:  Detaillierte Erklärung zur Bereitstellung von Elasticsearch Kibana und IK Word Segmenter im Docker

Artikel empfehlen

HTML-Lernhinweise – Detaillierte Erklärung der HTML-Syntax (unbedingt lesen)

1. Was ist die HTML-Auszeichnungssprache? HTML is...

Eine kurze Erläuterung des Lazy-Loading-Attributmusters in JavaScript

Inhaltsverzeichnis 1. Einleitung 2. On-Demand-Att...

Praktische Optimierung des MySQL-Paging-Limits

Vorwort Wenn wir Abfrageanweisungen verwenden, mü...

Führen Sie die folgenden Schritte aus, damit Docker Images abrufen kann

1. Docker Pull zieht das Image Wenn Sie zum Abruf...

Detaillierte Erklärung wichtiger Kaskadierungskonzepte in CSS

Kürzlich stieß ich im Verlauf des Projekts auf ei...

Rückblick auf die besten Webdesign-Arbeiten 2012 [Teil 1]

Zum Beginn des neuen Jahres möchte ich meinen Fre...

Über Front-End JavaScript ES6 Details

Inhaltsverzeichnis 1. Einleitung 1.1 Babel-Transc...

So erstellen Sie ein Apache-Image mit Dockerfile

Inhaltsverzeichnis 1. Docker-Image 2. Erstellen S...