Rätsel zur CSS-Selektorspezifität: Warum .foo a:link a:hover überschreibt
Im Bereich CSS kann die Selektorspezifität ein wenig umwerfend sein . Lassen Sie uns in ein interessantes Rätsel eintauchen, das zeigt, wie der .foo a:link-Selektor die spezifischeren a:hover- und a:active-Selektoren überschreiben kann.
Problemdefinition
Bedenken Sie den folgenden Code:
<div class="foo"> <a href="#">Example</a> </div>
a:link, a:visited { color: blue; } a:hover, a:active { color: red; } .foo a:link, .foo a:visited { color: green; }
Die Erwartung ist, dass der Mauszeiger über den Link rot wird, stattdessen aber grün bleibt. Dieses rätselhafte Verhalten erfordert eine genauere Untersuchung der CSS-Kaskade.
Spezifität in CSS
Die Spezifität bestimmt die Reihenfolge, in der CSS-Regeln auf ein Element angewendet werden. Eine höhere Spezifität setzt sich gegenüber einer niedrigeren Spezifität durch. Die folgende Formel berechnet die Spezifität:
- Inline-Stile: 1, 0, 0, 0
- ID-Selektoren: 0, 1, 0, 0
- Klassenselektoren: 0, 0, 1, 0
- Pseudoklassen und Pseudoelemente: 0, 0, 0, 1
Selektorspezifität im Puzzle
Berechnung der Spezifität unserer Selektoren:
- a:link, a:visited , a:hover, a:active: 0, 0, 1, 1
- .foo a:link, .foo a:visited: 0, 0, 2, 1
Wie Sie sehen können, haben die Selektoren .foo a:link und .foo a:visited eine höhere Spezifität als die a:hover und a:active Selektoren (2 > 1).
Fazit
Der Grund Denn das überraschende Verhalten besteht darin, dass die Selektoren .foo a:link und .foo a:visited eine höhere Spezifität aufweisen als die Selektoren a:hover und a:active. Das bedeutet, dass, obwohl a:hover und a:active in Bezug auf ihre Pseudoklassen spezifischer sind, die Klassenspezifität des .foo-Selektors siegt.
Um dieses Problem zu beheben, wird der im Problem vorgeschlagene Fix ( Das Auskommentieren der Regeln .foo a:hover und .foo a:active ist erforderlich. Durch das Hinzufügen dieser Regeln mit derselben Spezifität wie die Regeln .foo a:link und .foo a:visited haben die Stile a:hover und a:active nun Vorrang.
Das obige ist der detaillierte Inhalt vonWarum überschreibt „.foo a:link' „a:hover' in der CSS-Spezifität?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Wenn Sie kürzlich mit GraphQL gearbeitet oder seine Vor- und Nachteile überprüft haben, haben Sie zweifellos Dinge wie "GraphQL nicht unterstützen Caching" oder gehört

In diesem Artikel werden wir in die Welt der Scrollbars eintauchen. Ich weiß, es klingt nicht zu glamourös, aber vertrau mir, eine gut gestaltete Seite geht Hand in Hand

Die Sufelte Transition -API bietet eine Möglichkeit, Komponenten zu beleben, wenn sie das Dokument eingeben oder verlassen, einschließlich benutzerdefinierter Svelte -Übergänge.

Wie viel Zeit damit, die Inhaltspräsentation für Ihre Websites zu entwerfen? Wenn Sie einen neuen Blog -Beitrag schreiben oder eine neue Seite erstellen, denken Sie darüber nach

Mit dem jüngsten Aufstieg von Bitcoins Preis über 20.000 USD und kürzlich von 30.000, dachte ich, es lohnt

NPM-Befehle führen verschiedene Aufgaben für Sie aus, entweder als einmalige oder als kontinuierlich ausgeführter Vorgang für Dinge wie das Starten eines Servers oder das Kompilieren von Code.

Ich habe mich neulich mit Eric Meyer unterhalten und erinnerte mich an eine Eric Meyer -Geschichte aus meinen prägenden Jahren. Ich habe einen Blog -Beitrag über CSS -Spezifität geschrieben, und

In dem Artikel werden CSS für Texteffekte wie Schatten und Gradienten verwendet, diese für die Leistung optimiert und die Benutzererfahrung verbessert. Es listet auch Ressourcen für Anfänger auf (159 Zeichen)


Heiße KI -Werkzeuge

Undresser.AI Undress
KI-gestützte App zum Erstellen realistischer Aktfotos

AI Clothes Remover
Online-KI-Tool zum Entfernen von Kleidung aus Fotos.

Undress AI Tool
Ausziehbilder kostenlos

Clothoff.io
KI-Kleiderentferner

AI Hentai Generator
Erstellen Sie kostenlos Ai Hentai.

Heißer Artikel

Heiße Werkzeuge

ZendStudio 13.5.1 Mac
Leistungsstarke integrierte PHP-Entwicklungsumgebung

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.

SAP NetWeaver Server-Adapter für Eclipse
Integrieren Sie Eclipse mit dem SAP NetWeaver-Anwendungsserver.

WebStorm-Mac-Version
Nützliche JavaScript-Entwicklungstools

Herunterladen der Mac-Version des Atom-Editors
Der beliebteste Open-Source-Editor