Inhaltsverzeichnis
Hinweis: Berechnen Sie die Spezifität
Schlussfolgerung
häufig gestellte Fragen zu CSS -Selektoren und Spezifität (FAQ)
Welche Bedeutung hat die CSS -Spezifität in der Webentwicklung?
Wie berechnet man die CSS -Spezifität?
Können Sie das Konzept der CSS -Spezifität mit einem Beispiel erklären?
Was passiert, wenn zwei CSS -Regeln die gleiche Spezifität haben?
Wie kann man die CSS -Spezifität abdecken?
Welche Rolle spielt die Vererbung in der CSS -Spezifität?
Wie wirkt sich der Wildcard -Selektor auf die CSS -Spezifität aus?
Was ist die Spezifität von Pseudoelementen in CSS?
: nicht () Wie wirkt sich die Pseudoklasse auf die CSS-Spezifität aus?
Kann ich mehrere Selektoren in einer einzelnen CSS -Regel verwenden? Wie wirkt sich dies auf die Spezifität aus?
Heim Web-Frontend CSS-Tutorial CSS -Selektoren: Spezifität

CSS -Selektoren: Spezifität

Feb 19, 2025 am 11:20 AM

CSS Selectors: Specificity

CSS Selectors: Specificity

Die folgenden Auszüge stammen aus dem Buch "CSS Master" von Tiffany B. Brown. Dieses Buch ist in Geschäften auf der ganzen Welt erhältlich und Sie können die E-Book-Version hier auch kaufen.

CSS -Spezifität bestimmt, welche Stildeklarationen letztendlich für das Element gelten. Der Wildcard Selector (*) hat die niedrigste Spezifität und der ID -Selektor hat die höchste Spezifität. Der Nachkommenswählte (z. B. p img) und der Subelektor (z. B. Panel & GT; H2) sind spezifischer als der Typ -Selektor (z. B. P, IMG oder H1).

Auf den ersten Blick erscheint die Berechnung der genauen Spezifitätswerte schwierig. Wie in Selektorstufe 3 angegeben, benötigen Sie:

  • Statistik Die Anzahl der ID -Selektoren im Selektor (= A)
  • Statistik Die Anzahl der Klassenauswahl, Attribut-Selektoren und Pseudoklassen in Selektoren (= B)
  • Statistik Die Anzahl der Typ-Selektoren und Pseudo-Elemente in Selektoren (= C)
  • Ignorieren Sie den Wildcard -Selektor

Diese A-, B- und C -Werte werden dann kombiniert, um den endgültigen spezifischen Wert zu bilden. Zum Beispiel hat der ID -Selektor #Foo eine Spezifität von 1,0,0. Die Spezifität des Attributauswahl (z. B. [Type = E -Mail]) und der Klassenauswahl (z. B. .Chart) beträgt 0,1,0. Das Hinzufügen einer Pseudoklasse (z. B.: Erstkind, z. B. Chart: First-Kind) wird die Spezifität von 0,2,0 machen. Die Verwendung eines einfachen Typ- oder Element -Selektors (z. B. H1 oder P) macht jedoch nur die Spezifität von 0,0,1.

Hinweis: Berechnen Sie die Spezifität

Keegan Streets Spezifitätsrechner und Joshua Peeks CSS erläutern helfen, die Spezifität der Selektor zu lernen und zu berechnen.

komplexe Selektoren und kombinierte Selektoren erzeugen natürlich höhere Spezifitätswerte. Schauen wir uns ein Beispiel an. Betrachten Sie das folgende CSS:

<code>ul#story-list > .book-review {
    color: #0c0;
}

#story-list > .book-review {
    color: #f60;
}</code>
Nach dem Login kopieren

Diese beiden Regelsätze sind ähnlich, aber nicht gleich. Der erste Selektor, UL#Story-List & GT; Sein Spezifitätswert beträgt 1,1,1. Der zweite Selektor #Story-List & GT; Sein Spezifitätswert beträgt 1,1,0. Auch wenn unsere #Story-List & GT; .

Pseudoklassen wie: Link oder: Ungültig sind die gleiche Spezifitätsniveau wie Klassenauswahl. Die Spezifitätswerte von A: Link und A.external sind beide 0,1,1. In ähnlicher Weise sind Pseudo-Elemente wie :: vor und :: nach so spezifisch wie Typen oder Element-Selektoren. Wenn die Spezifität der beiden Selektoren gleich ist, wird die Kaskade wirksam. Hier ist ein Beispiel:

<code>a:link {
    color: #369;
}
a.external {
    color: #f60;
}</code>
Nach dem Login kopieren

Wenn wir dieses CSS anwenden, sind alle Links schieferblau, mit Ausnahme der Links, die die .externale Klasse anwenden. Diese Links werden in Orange geändert.

Bei der niedrigen Spezifität verhindern die Ausbreitung des Selektors, d. H. Die Tendenz der Selektorspezifität und -länge, um im Laufe der Zeit zu steigen. Dies geschieht normalerweise, wenn Sie Ihrem Team oder neuen Inhaltsformularen zu Ihrer Website neue Entwickler hinzufügen. Die Ausbreitung der Selektoren kann auch zu langfristigen Wartungsschwierigkeiten führen. Am Ende verwenden Sie entweder einen spezifischeren Selektor, um andere Regeln zu überschreiben, oder Sie müssen den Code neu umarbeiten. Der längere Selektor erhöht auch das Gewicht der CSS -Datei.

Wir diskutieren Strategien, um die Spezifität in Kapitel 2 niedrig zu halten.

Schlussfolgerung

Nach dem Lesen dieses Kapitels sollten Sie ein gutes Verständnis für den CSS -Selektor haben. Insbesondere sollten Sie wissen, wie man:

  • CSS auf bestimmte Elemente, Pseudo-Elemente und Pseudoklassen unter Verwendung von Selektoren
  • anwenden
  • Verstehen Sie den Unterschied zwischen Pseudoelementen und Pseudoklasse
  • Verwenden Sie neuere Pseudoklassen, die in den Selektorebenen 3 und 4 Spezifikationen eingeführt werden
  • Berechnungsspezifität

Im nächsten Kapitel werden wir einige der goldenen Regeln für das Schreiben von Wartungsbetrag, erweiterbarer CSS einführen.

häufig gestellte Fragen zu CSS -Selektoren und Spezifität (FAQ)

Welche Bedeutung hat die CSS -Spezifität in der Webentwicklung?

CSS -Spezifität ist ein Schlüsselkonzept in der Webentwicklung, da sie bestimmt, welche CSS -Regel der Browser angewendet wird. Wenn mehrere CSS -Regeln auf ein Element angewendet werden können, befolgt der Browser bestimmte Regeln, um zu entscheiden, welche Regeln verwendet werden sollen. Das Verständnis der CSS -Spezifität kann Entwicklern helfen, effizientere und effizientere CSS -Code zu schreiben, unnötige Überschreibungen zu vermeiden und CSS -Probleme effektiver zu beheben.

Wie berechnet man die CSS -Spezifität?

Die Berechnung der CSS -Spezifität basiert auf verschiedenen Arten von Selektoren, die in CSS -Regeln verwendet werden. Jeder Selektorstyp hat einen anderen Spezifitätswert. Inline-Stile haben die höchste Spezifität, gefolgt von ID-Selektoren, Klassenauswahl, Attributauswahl und Pseudoklassen sowie schließlich Typ-Selektoren und Pseudo-Elemente. Die Spezifität einer CSS-Regel ist die Summe ihrer selektorspezifischen Werte.

Können Sie das Konzept der CSS -Spezifität mit einem Beispiel erklären?

Betrachten wir ein Beispiel. Angenommen, wir haben eine CSS -Regel mit Klassenauswahl .class1 und eine andere Regel mit ID -Selektor #ID1. Wenn diese beiden Regeln auf dasselbe Element angewendet werden können, wird eine Regel mit einem ID -Selektor angewendet, da der ID -Selektor eine höhere Spezifität als der Klassenauswahl hat.

Was passiert, wenn zwei CSS -Regeln die gleiche Spezifität haben?

Wenn zwei CSS -Regeln die gleiche Spezifität haben, wird die letzte Regel, die im CSS -Code angezeigt wird, angewendet. Dies liegt daran, dass CSS die Strategie „Last Rule Win“ befolgt, wenn sie sich mit Regeln mit derselben Spezifität befassen.

Wie kann man die CSS -Spezifität abdecken?

Sie können die CSS -Spezifität überschreiben, indem Sie die Spezifität der CSS -Regeln erhöhen. Dies kann durch Hinzufügen spezifischerer Selektoren zu den Regeln erfolgen. Eine andere Möglichkeit, die CSS -Spezifität zu überschreiben, besteht darin, die wichtige Regel zu verwenden. Es ist jedoch wichtig, wenn möglich zu vermeiden, da Ihr CSS -Code schwieriger zu verwalten und zu debuggen wird.

Welche Rolle spielt die Vererbung in der CSS -Spezifität?

Vererbung ist ein Merkmal in CSS, bei dem bestimmte Arten von Attributen automatisch vom übergeordneten Element an sein untergeordnetes Element übergeben werden. Geerbte Stile haben jedoch die niedrigste Spezifität und können durch jeden direkten Stil, der auf das Element angewendet wird, leicht überschrieben werden.

Wie wirkt sich der Wildcard -Selektor auf die CSS -Spezifität aus?

Wildcard Selector (*) hat keinen Einfluss auf die CSS -Spezifität. Dies bedeutet, dass sein Spezifitätswert 0,0,0,0 beträgt. Daher überschreibt jeder andere in derselbe Regel verwendete Selektor den Wildcard -Selektor.

Was ist die Spezifität von Pseudoelementen in CSS?

Die Spezifität des Pseudo-Elements in CSS beträgt 0,0,0,1. Dies bedeutet, dass sie die gleiche Spezifität wie Type -Selektoren (z. B. Div, P usw.) haben und von Klassenauswahlern, ID -Selektoren und Inline -Stilen überschrieben werden.

: nicht () Wie wirkt sich die Pseudoklasse auf die CSS-Spezifität aus?

Die: nicht () Pseudo-Klasse in CSS erhöht die Selektorspezifität nicht. Stattdessen basiert die spezifische Berechnung auf den Parametern, die an die Funktion: nicht () übergeben wurden. Zum Beispiel in: nicht (.class1) ist die Spezifität die gleiche wie .class1.

Kann ich mehrere Selektoren in einer einzelnen CSS -Regel verwenden? Wie wirkt sich dies auf die Spezifität aus?

Ja, Sie können mehrere Selektoren in einer einzelnen CSS -Regel verwenden. Die Spezifität solcher Regeln ist die Summe aller Auswahlspezifitäten. In #id1.class1 ist die Spezifität beispielsweise die Summe der Spezifität von #ID1 und .class1.

Das obige ist der detaillierte Inhalt vonCSS -Selektoren: Spezifität. 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

Video Face Swap

Video Face Swap

Tauschen Sie Gesichter in jedem Video mühelos mit unserem völlig kostenlosen KI-Gesichtstausch-Tool aus!

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)

Heiße Themen

Java-Tutorial
1653
14
PHP-Tutorial
1251
29
C#-Tutorial
1224
24
Gestapelte Karten mit klebriger Positionierung und einem Schuss Sass Gestapelte Karten mit klebriger Positionierung und einem Schuss Sass Apr 03, 2025 am 10:30 AM

Neulich habe ich dieses besonders schöne Stück von der Website von Corey Ginnivan entdeckt, auf der eine Sammlung von Karten aufeinander stapelt.

Google -Schriftarten variable Schriftarten Google -Schriftarten variable Schriftarten Apr 09, 2025 am 10:42 AM

Ich sehe, dass Google -Schriftarten ein neues Design (Tweet) ausgelöst haben. Im Vergleich zur letzten großen Neugestaltung fühlt sich dies viel iterativer an. Ich kann den Unterschied kaum erkennen

So erstellen Sie einen animierten Countdown -Timer mit HTML, CSS und JavaScript So erstellen Sie einen animierten Countdown -Timer mit HTML, CSS und JavaScript Apr 11, 2025 am 11:29 AM

Haben Sie jemals einen Countdown -Timer für ein Projekt benötigt? Für so etwas ist es möglicherweise natürlich, nach einem Plugin zu greifen, aber es ist tatsächlich viel mehr

HTML -Datenattributehandbuch HTML -Datenattributehandbuch Apr 11, 2025 am 11:50 AM

Alles, was Sie schon immer über Datenattribute in HTML, CSS und JavaScript wissen wollten.

Wie wähle ich ein untergeordnetes Element mit dem erstklassigen Namen über CSS aus? Wie wähle ich ein untergeordnetes Element mit dem erstklassigen Namen über CSS aus? Apr 05, 2025 pm 11:24 PM

Wenn die Anzahl der Elemente nicht festgelegt ist, wählen Sie das erste untergeordnete Element des angegebenen Klassennamens über CSS aus. Bei der Verarbeitung der HTML -Struktur begegnen Sie häufig auf verschiedene Elemente ...

Warum werden die lila abgeschnittenen Bereiche im Flex -Layout fälschlicherweise als 'Überlaufraum' betrachtet? Warum werden die lila abgeschnittenen Bereiche im Flex -Layout fälschlicherweise als 'Überlaufraum' betrachtet? Apr 05, 2025 pm 05:51 PM

Fragen zu lila Schrägstrichen in Flex -Layouts Bei der Verwendung von Flex -Layouts können Sie auf einige verwirrende Phänomene stoßen, wie beispielsweise in den Entwicklerwerkzeugen (D ...

Ein Beweis für das Konzept, um Sass schneller zu machen Ein Beweis für das Konzept, um Sass schneller zu machen Apr 16, 2025 am 10:38 AM

Zu Beginn eines neuen Projekts erfolgt die SASS -Zusammenstellung im Blinzeln eines Auges. Dies fühlt sich gut an, besonders wenn es mit Browsersync kombiniert ist, das nachlädt

See all articles