Inhaltsverzeichnis
Schauen Sie sich die Beschreibung der beiden Anwendungen im W3C an:
Heim Web-Frontend Front-End-Fragen und Antworten Was ist der Unterschied zwischen Pseudoklassen und Pseudoobjekten (Pseudoelementen) in CSS?

Was ist der Unterschied zwischen Pseudoklassen und Pseudoobjekten (Pseudoelementen) in CSS?

Jul 06, 2021 pm 01:58 PM
css 伪元素 伪类

Pseudoklassen werden verwendet, um bestimmten Selektoren Spezialeffekte hinzuzufügen; Pseudoelemente werden verwendet, um bestimmten Selektoren Spezialeffekte hinzuzufügen. Die Wirkung von Pseudoklassen kann durch Hinzufügen tatsächlicher Klassen erreicht werden; die Wirkung von Pseudoobjekten kann durch Hinzufügen tatsächlicher Elemente erzielt werden. Einfach ausgedrückt: Ihre wesentliche Differenz schafft neue Elemente, ob abstrakt oder nicht.

Was ist der Unterschied zwischen Pseudoklassen und Pseudoobjekten (Pseudoelementen) in CSS?

Die Betriebsumgebung dieses Tutorials: Windows 7-System, CSS3-Version, Dell G3-Computer.

Der grundlegende Unterschied zwischen Pseudoklassen und Pseudoelementen (Pseudoobjekten) besteht darin, ob sie neue Elemente erstellen.

Pseudoelement/Pseudoobjekt: Es existiert nicht im DOM-Dokument. Es ist ein virtuelles Element und erstellt ein neues Element. Stellt ein untergeordnetes Element eines Elements dar. Obwohl dieses untergeordnete Element logisch existiert, existiert es nicht tatsächlich in der Dokumentstruktur.

Pseudo-Objektauswahl

Eigenschaften
Eigenschaften
CSS-Version
Version
Vom übergeordneten Element erben
Vererbung
Beschreibung
Einführung
E:Anfangsbuchstabe/E :: first-letter CSS3/CSS1 None CSS2/CSS1 E:first-letter/E::first-letter Pseudoobjektselektor, legt den Stil des ersten Zeichens im Objekt fest.
E:first-line/E::first-line CSS3/CSS1 None CS3/CSS1-Pseudoobjektselektor E:first-line/E::first-line, legt das darin enthaltene Objekt fest Der Stil der ersten Reihe.
E:before/E::before CSS3/CSS2 None CSS3/CSS3 Pseudoobjektselektor E:before/E::before, wird vor dem Objekt gesetzt (gemäß der logischen Struktur des Objektbaum) Was ist passiert? Wird mit dem Inhaltsattribut verwendet. E:after/E::after. CSS3/CSS2 entsprechend der logischen Struktur des Objektbaums). Wird mit dem Inhaltsattribut
E::selection CSS3 None CSS3-Pseudoobjektselektor E::selection verwendet und legt die Farbe des Objekts fest, wenn es ausgewählt wird.

Pseudoklasse: Eine „Geister“-Kategorie, die logisch im DOM-Dokument vorhanden ist, aber nicht im Dokumentbaum identifiziert werden muss.

Pseudo-Klassenselektor

Eigenschaften
Eigenschaften
CSS-Version
Version
Vom übergeordneten Element erben
Vererbung
Beschreibung
Einführung
E:link CSS1 Keine CSS1-Pseudoklassenselektor E:link legt den Stil des Hyperlinks fest, bevor er besucht wird.
E:visited CSS1 None CSS1-Pseudoklassenselektor E:visited legt den Stil des Hyperlinks fest, wenn seine Linkadresse besucht wurde.
E:hover CSS2 None CSS2/CSS1-Pseudoklassenselektor E:hover, legt den Stil des Elements fest, wenn es mit der Maus bewegt wird.
E:aktiv CSS2/CSS1 Keine CSS2/CSS1 Pseudoklassenselektor E:aktiv, legt den Stil des Elements fest, wenn es vom Benutzer aktiviert wird (ein Ereignis, das zwischen Mausklick und auftritt freigeben).
E:focus CSS2/CSS1 None CSS2/CSS1-Pseudoklassenselektor E:focus legt den Stil des Elements fest, wenn es zum Eingabefokus wird (das Onfocus-Ereignis des Elements tritt auf).
E:lang() CSS2 None CSS2-Pseudoklassenselektor E:lang() gleicht E-Elemente mit einer speziellen Sprache ab.
E:not() CSS3 None CSS3-Pseudoklassenselektor E:not() stimmt mit Element E überein, das den s-Selektor nicht enthält.
E:root CSS3 None CSS3-Pseudoklassenselektor E:root, entspricht dem E-Element im Stammelement des Dokuments.
E:first-child CSS2 None CSS2-Pseudoklassenselektor E:first-child stimmt mit dem ersten untergeordneten Element E des übergeordneten Elements überein.
E:last-child CSS3 None CSS3-Pseudoklassenselektor E:last-child stimmt mit dem letzten untergeordneten Element E des übergeordneten Elements überein.
E:only-child CSS3 None CSS3 Beispielsweise stimmt der Selektor E:only-child mit dem einzigen untergeordneten Element E des übergeordneten Elements überein.
E:nth-child(n) CSS3 None CSS3-Pseudoklassenselektor E:nth-child(n) stimmt mit dem n-ten untergeordneten Element E des übergeordneten Elements überein.
E:nth-last-child(n) CSS3 None CSS3-Pseudoklassenselektor E:nth-last-child(n) stimmt mit dem n-ten untergeordneten Element E vom unteren Rand des übergeordneten Elements überein .
E:first-of-type CSS2 None CSS3-Pseudoklassenselektor E:first-of-type stimmt mit dem ersten Geschwisterelement E desselben Typs überein.
E:last-of-type CSS3 None CSS3-Pseudoklassenselektor E:last-of-type stimmt mit dem letzten Geschwisterelement E desselben Typs überein.
E:only-of-type CSS3 None CSS3-Pseudoklassenselektor E:only-of-type, entspricht dem einzigen Geschwisterelement E desselben Typs.
E:nth-of-type(n) CSS3 None CSS3-Pseudoklassenselektor E:nth-of-type(n), entspricht dem n-ten Geschwisterelement desselben Typs E.
E:nth-last-of-type(n) CSS3 None CSS3-Pseudoklassenselektor E:nth-last-of-type(n) stimmt mit dem n-ten vom letzten desselben überein Typ Geschwisterelement E.
E:empty CSS3 None CSS3-Pseudoklassenselektor E:empty stimmt mit Element E ohne untergeordnete Elemente (einschließlich Textknoten) überein.
E:checked CSS3 None CSS3-Pseudoklassenselektor E:checked stimmt mit dem ausgewählten Element E auf der Benutzeroberfläche überein. (Für Formularelemente mit dem Eingabetyp Radio und Kontrollkästchen)
E:aktiviert CSS3 Keine CSS3-Pseudoklassenselektor E:aktiviert entspricht dem Element E im verfügbaren Zustand auf der Benutzeroberfläche.
E:disabled CSS3 None CSS3-Pseudoklassenselektor E:disabled stimmt mit dem deaktivierten Element E auf der Benutzeroberfläche überein.
E:target CSS3 None CSS3-Pseudoklassenselektor E:target stimmt mit dem E-Element überein, auf das die entsprechende URL verweist.
@page:first CSS2 None CSS2-Pseudoklassenselektor @page:first legt den Stil fest, der auf der ersten Seite des Seitencontainers verwendet wird. Wird nur für @page-Regeln verwendet
@page:left CSS2 Keine CSS2-Pseudoklassenselektor @page:left Legt den Stil fest, der von allen Seiten verwendet wird, deren Seitencontainer sich auf der linken Seite des Bundstegs befindet . Nur für @page-Regeln
@page:right CSS2 None CSS2 Legt den Stil fest, der für alle Seiten verwendet wird, deren Objektselektor @page:right den Seitencontainer rechts vom Bundsteg hat. Nur für @page-Regeln

Schauen Sie sich die Beschreibung der beiden Anwendungen im W3C an:

Pseudoklasse: Wird zum Hinzufügen von Spezialeffekten zu bestimmten Selektoren verwendet
Pseudoelement: Wird zum Hinzufügen von Spezialeffekten zu bestimmten Selektoren verwendet
Tatsächlich ist es im Grunde so Ergänzen Sie die Elemente, die nicht nach Klasse, ID usw. ausgewählt werden können.

Zum Beispiel:

<div>
    <p>a</p>
    <p>b c</p>
</div>
Nach dem Login kopieren

Was wäre, wenn wir möchten, dass die Schriftfarbe des ersten p-Tags rot wird? Verwenden Sie dazu Pseudoklassen:

p:first-child {
    color: red;
}
Nach dem Login kopieren
Nach dem Login kopieren

Aber was können wir tun, wenn wir keine Pseudoklassen verwenden? Zu diesem Zeitpunkt müssen wir dem ersten p-Tag eine Klasse hinzufügen

<div>
    <p class="first-child">a</p>
    <p>b c</p>
</div>
Nach dem Login kopieren
p:first-child {
    color: red;
}
Nach dem Login kopieren
Nach dem Login kopieren

, um den gleichen Effekt zu erzielen, aber wir müssen eine weitere Klasse schreiben

Wie kann die obige Operation erreicht werden, wenn Pseudoelemente verwendet werden?

p::first-letter {
    color: red;
}
Nach dem Login kopieren

Wie schaffen wir das ohne Pseudoelemente?

<div>
    <p><span>a</span></p>
    <p>b c</p>
</div>
Nach dem Login kopieren
p span {
    color: red;
}
Nach dem Login kopieren

Sie können den Unterschied zwischen den beiden erkennen:

Der Pseudoklasseneffekt kann durch Hinzufügen tatsächlicher Klassen erzielt werden.

Der Pseudoelementeffekt kann durch Hinzufügen tatsächlicher Elemente erzielt werden.

Der wesentliche Unterschied Dazwischen liegt die Frage, ob durch Abstraktion neue Elemente erstellt werden " oder "::"

Da Pseudoklassen dem Hinzufügen von Klassen ähneln, können sie mehrfach vorhanden sein, während Pseudoelemente nur einmal in einem Selektor und nur am Ende erscheinen können

Verwandte Frage: Die Ähnlichkeiten und Unterschiede zwischen

:

而伪元素既可以使用“:”,也可以使用“::

:after/::after und :before/::before

Gleiche Punkte:

kann verwendet werden, um Pseudoklassenobjekte darzustellen und um den Inhalt vor dem festzulegen object

:before und ::before Die Schreibmethoden sind gleichwertig; :after und ::after sind gleichwertig

Der Unterschied:

:before/:after ist die Schreibmethode von Css2, ::before/:: after ist die Schreibmethode von Css3

:before/ :after hat eine bessere Kompatibilität als ::before/::after,

Es wird jedoch empfohlen, ::before/::after in der H5-Entwicklung zu verwenden

Hinweis:

Pseudoobjekte sollten zusammen mit dem Inhaltsattribut verwendet werden.

Pseudoobjekte werden nicht im DOM angezeigt, daher können sie nicht über js bedient werden. Es werden nur die Spezialeffekte von

Pseudoobjekten hinzugefügt Normalerweise muss der :hover-Pseudoklassenstil aktiviert werden

Beispiel: Wenn sich die Maus über die Spanne bewegt, fügen Sie beim Hochladen „duang“ vor span ein

<style>
span{
  background: yellow;
}
span:hover::before{
  content:"duang";
}
</style>
 
<span>222</span>
Nach dem Login kopieren
(Lernvideo-Sharing:

css-Video-Tutorial

)

Das obige ist der detaillierte Inhalt vonWas ist der Unterschied zwischen Pseudoklassen und Pseudoobjekten (Pseudoelementen) in CSS?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

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

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)
2 Wochen vor By 尊渡假赌尊渡假赌尊渡假赌
Repo: Wie man Teamkollegen wiederbelebt
4 Wochen vor By 尊渡假赌尊渡假赌尊渡假赌
Hello Kitty Island Abenteuer: Wie man riesige Samen bekommt
3 Wochen vor By 尊渡假赌尊渡假赌尊渡假赌

Heiße Werkzeuge

Notepad++7.3.1

Notepad++7.3.1

Einfach zu bedienender und kostenloser Code-Editor

SublimeText3 chinesische Version

SublimeText3 chinesische Version

Chinesische Version, sehr einfach zu bedienen

Senden Sie Studio 13.0.1

Senden Sie Studio 13.0.1

Leistungsstarke integrierte PHP-Entwicklungsumgebung

Dreamweaver CS6

Dreamweaver CS6

Visuelle Webentwicklungstools

SublimeText3 Mac-Version

SublimeText3 Mac-Version

Codebearbeitungssoftware auf Gottesniveau (SublimeText3)

Was bedeutet Platzhalter in Vue? Was bedeutet Platzhalter in Vue? May 07, 2024 am 09:57 AM

In Vue.js gibt das Platzhalterattribut den Platzhaltertext des Eingabeelements an, der angezeigt wird, wenn der Benutzer keinen Inhalt eingegeben hat, Eingabetipps oder Beispiele bereitstellt und die Barrierefreiheit des Formulars verbessert. Seine Verwendung besteht darin, das Platzhalterattribut für das Eingabeelement festzulegen und das Erscheinungsbild mithilfe von CSS anzupassen. Zu den Best Practices gehört es, relevant für die Eingabe zu sein, kurz und klar zu sein, Standardtexte zu vermeiden und die Barrierefreiheit zu berücksichtigen.

Was bedeutet span in js Was bedeutet span in js May 06, 2024 am 11:42 AM

Das Span-Tag kann Stile, Attribute oder Verhaltensweisen zum Text hinzufügen. Es wird verwendet, um Stile wie Farbe und Schriftgröße hinzuzufügen. Legen Sie Attribute wie ID, Klasse usw. fest. Zugehörige Verhaltensweisen wie Klicks, Hovers usw. Markieren Sie Text zur weiteren Bearbeitung oder zum Zitieren.

Was bedeutet rem in js Was bedeutet rem in js May 06, 2024 am 11:30 AM

REM in CSS ist eine relative Einheit relativ zur Schriftgröße des Stammelements (HTML). Es weist die folgenden Merkmale auf: relativ zur Schriftgröße des Stammelements, nicht vom übergeordneten Element beeinflusst. Wenn sich die Schriftgröße des Stammelements ändert, werden Elemente, die REM verwenden, entsprechend angepasst. Kann mit jeder CSS-Eigenschaft verwendet werden. Zu den Vorteilen der Verwendung von REM gehören: Reaktionsfähigkeit: Halten Sie den Text auf verschiedenen Geräten und Bildschirmgrößen lesbar. Konsistenz: Stellen Sie sicher, dass die Schriftgrößen auf Ihrer gesamten Website einheitlich sind. Skalierbarkeit: Ändern Sie die globale Schriftgröße ganz einfach, indem Sie die Schriftgröße des Stammelements anpassen.

So führen Sie Bilder in Vue ein So führen Sie Bilder in Vue ein May 02, 2024 pm 10:48 PM

Es gibt fünf Möglichkeiten, Bilder in Vue einzuführen: über URL, Require-Funktion, statische Datei, V-Bind-Direktive und CSS-Hintergrundbild. Dynamische Bilder können in den berechneten Eigenschaften oder Listenern von Vue verarbeitet werden, und gebündelte Tools können zum Optimieren des Bildladens verwendet werden. Stellen Sie sicher, dass der Pfad korrekt ist, da sonst ein Ladefehler auftritt.

Welche Funktion hat das Span-Tag? Welche Funktion hat das Span-Tag? Apr 30, 2024 pm 01:54 PM

Das SPAN-Tag ist ein Inline-HTML-Tag, das zum Hervorheben von Text durch Anwenden von Attributen wie Stil, Farbe und Schriftgröße verwendet wird. Dazu gehören das Hervorheben von Text, das Gruppieren von Text, das Hinzufügen von Hover-Effekten und das dynamische Aktualisieren von Inhalten. Es wird verwendet, indem <span>- und </span>-Tags um den Text herum platziert werden, den Sie hervorheben möchten, und wird über CSS-Stil oder JavaScript manipuliert. Zu den Vorteilen von SPAN-Tags zählen semantische Klarheit, Gestaltungsflexibilität und einfache Wartung.

So verpacken Sie eine Eingabeaufforderung in js So verpacken Sie eine Eingabeaufforderung in js May 01, 2024 am 06:24 AM

Wenn Sie die Methode prompt() in JavaScript verwenden, können Sie Zeilenumbrüche durch die folgenden drei Methoden erreichen: 1. Fügen Sie das Zeichen „\n“ an der Position ein, an der Sie die Zeile umbrechen möchten. 2. Verwenden Sie das Zeilenumbruchzeichen in der Zeile Eingabeaufforderungstext; 3. Verwenden Sie den CSS-Stil „white“ -space: pre“, um Zeilenumbrüche zu erzwingen.

In welcher Sprache ist das Browser-Plugin geschrieben? In welcher Sprache ist das Browser-Plugin geschrieben? May 08, 2024 pm 09:36 PM

Browser-Plugins werden normalerweise in den folgenden Sprachen geschrieben: Front-End-Sprachen: JavaScript, HTML, CSS Back-End-Sprachen: C++, Rust, WebAssembly Andere Sprachen: Python, Java

Was ist ein Knoten in js? Was ist ein Knoten in js? May 07, 2024 pm 09:06 PM

Knoten sind Entitäten im JavaScript-DOM, die HTML-Elemente darstellen. Sie stellen ein bestimmtes Element auf der Seite dar und können verwendet werden, um auf dieses Element zuzugreifen und es zu bearbeiten. Zu den gängigen Knotentypen gehören Elementknoten, Textknoten, Kommentarknoten und Dokumentknoten. Über DOM-Methoden wie getElementById() können Sie auf Knoten zugreifen und diese bearbeiten, einschließlich der Änderung von Eigenschaften, dem Hinzufügen/Entfernen untergeordneter Knoten, dem Einfügen/Ersetzen von Knoten und dem Klonen von Knoten. Das Durchqueren von Knoten hilft bei der Navigation innerhalb der DOM-Struktur. Knoten sind nützlich für die dynamische Erstellung von Seiteninhalten, die Ereignisbehandlung, Animation und Datenbindung.

See all articles