Detaillierte Erläuterung der Anwendung der vier Zustände der Hyperverbindung

Detaillierte Erläuterung der Anwendung der vier Zustände der Hyperverbindung

Obwohl Sie denken, dass es sich möglicherweise um ein Browserproblem handelt, ist es wahrscheinlicher, dass die Reihenfolge Ihrer Stildefinitionen falsch ist. Um sicherzustellen, dass Sie die Verbindungsstile in verschiedenen Zuständen sehen können, sollte die richtige Stilreihenfolge sein:

„link-visited-hover-active“ oder „LVHA“ (Abkürzung).

Kerninhalte:

Jeder Selektor hat eine „Spezifität“, und wenn zwei Selektoren auf dasselbe Element angewendet werden, gewinnt der Selektor mit der höheren Spezifität und hat Vorrang. Zum Beispiel:

P.hithere {Farbe: grün;} /* Spezifität = 1,1 */ P {Farbe: rot;} /* Spezifität = 1 */

Jeder Absatzinhalt mit festgelegter Klasse „class=hithere“ wird grün statt rot angezeigt. Beide Selektoren legen die Farbe fest, aber der Selektor mit der höheren Spezifität gewinnt.

Welchen Einfluss haben Pseudoklassen auf die Spezifität? Sie haben genau dieselben Gewichtungswerte und die folgenden Stile haben dieselben Spezifitätsgewichtungswerte:

A:Link {Farbe: blau;} /* Spezifität = 1,1 */A:aktiv {Farbe: rot;} /* Spezifität = 1,1 */A:hover {Farbe: magenta;} /* Spezifität = 1,1 */A:besucht {Farbe: lila;} /* Spezifität = 1,1 */

Dies sind die Stileinstellungen für Hyperlinks. In den meisten Fällen müssen Sie mehrere dieser Stile gleichzeitig festlegen. Beispielsweise kann ein nicht besuchter Hyperlink unterschiedliche Stile für „Mouseover“ und „Mausaktiviert“ haben, wenn die Maus darüber bewegt und angeklickt wird. Da die oben genannten drei Regeln alle auf Hyperlinks angewendet werden können und alle Selektoren dieselbe Spezifität haben, „gewinnt“ gemäß den Regeln der letzte Stil. Der „aktive“ Stil wird also nie angezeigt, da er immer durch den „Hover“-Stil überschrieben wird (d. h. „Hover“ hat Vorrang). Lassen Sie uns nun analysieren, was passiert, wenn Sie mit der Maus über einen besuchten Hyperlink fahren. Das Ergebnis ist immer lila :(, da der Stil „besucht“ immer Vorrang vor anderen Statusstilregeln (einschließlich „aktiv“ und „Hover“) hat.

Aus diesem Grund empfiehlt CSS1 die folgende Reihenfolge der Stile:

A:LinkA:BesuchtA:HoverA:Aktiv

Tatsächlich kann die Reihenfolge der ersten beiden Stile vertauscht werden, da ein Hyperlink nicht gleichzeitig im Status „nicht besucht“ und „besucht“ vorhanden sein kann. ( :link bedeutet „nicht besucht“; ich weiß nicht, warum es nicht so definiert ist.)

CSS2 erlaubt jetzt das Auftreten von Pseudoklassen in „Gruppen“, zum Beispiel:

A:besucht:hover {Farbe: kastanienbraun;} /* Spezifität = 2,1 */A:link:hover {Farbe: magenta;} /* Spezifität = 2,1 */A:hover:aktiv {Farbe: cyan;} /* Spezifität = 2,1 */

Sie haben die gleiche Spezifität, gelten aber für grundsätzlich unterschiedliche Lebewesen und stehen daher nicht im Konflikt. Sie können beispielsweise schwebeaktive Kombinationen erhalten.

Wie verstehen Sie die „Spezifität“, die dieser Artikel mit sich bringt? Die Spezifität kann Zahlenfolgen verstehen, die nicht einfach aneinandergereiht sind. Ein Beispiel oben: P.hithere {color: green;} /* specifity = 11 */ P {color: red;} /* specifity = 1 */

Dies scheint eine einfache, auf Dezimalzahlen basierende Operation zu sein. Die Berechnung der „Spezifität“ kann jedoch nicht den Dezimalargorithmus verwenden. Wenn Sie beispielsweise 15 Selektoren zusammen verwenden, ist ihr Gewichtswert für die „Spezifität“ immer noch niedriger als der eines einfachen Klassenselektors. Beispiel:

.hallo {Farbe: rot;} /* Spezifität = 10 */ HTML BODY DIV UL LI OL LI UL LI OL LI UL LI OL LI (Farbe: grün;} /* Spezifität = 15 */

„10“ ist eigentlich eine „1“ gefolgt von einer „Null“, nicht eine „Zehn“. Wir können die Spezifität der vorherigen Stilregel hexadezimal beschreiben, wie folgt:

.hallo {Farbe: rot;} /* Spezifität = 10 */ HTML BODY DIV UL LI OL LI UL LI OL LI UL LI OL LI (Farbe: grün;} /* Spezifität = F */

Das einzige Problem besteht darin, dass Sie, wenn Sie der zweiten Stilregel zwei oder mehr Selektoren hinzufügen möchten, am Ende möglicherweise eine Spezifität von „17“ erhalten, was wiederum verwirrend wäre. Tatsächlich kann die Spezifität unendlich sein. Um weitere Verwirrung zu vermeiden, wird daher empfohlen, die Spezifitätswerte durch Kommas zu trennen.

Vorschlag des Webmasters: Üben Sie wiederholt, den gewichteten Wert der Spezifität zu berechnen. Die CSS-Einstellungen der Website spiegeln Ihre Fähigkeit wider, die Seite zu steuern. Bei der Entwicklung dynamischer Websites ist der Status von CSS ebenfalls sehr wichtig. Lesen Sie mehr Materialien, üben Sie mehr und besuchen Sie 123WORDPRESS.COM häufiger! Wenn Ihnen diese Site gefällt, machen Sie bitte Werbung dafür! Danke fürs Lesen.

<<:  Implementierungscode der CSS-Formularvalidierungsfunktion

>>:  Java verwendet Apache.POI, um HSSFWorkbook nach Excel zu exportieren

Artikel empfehlen

Detaillierte Installation und Konfiguration von Subversion (SVN) unter Ubuntu

Wenn Sie Softwareentwickler sind, müssen Sie mit ...

Einführung in gängige Befehle und Tastenkombinationen in Linux

Inhaltsverzeichnis 1 Systemeinführung 2 Systemver...

Docker Gitlab+Jenkins+Harbor erstellt einen persistenten Plattformbetrieb

CI/CD-Übersicht CI-Workflow-Design Das Git-Codeve...

Alibaba Cloud beantragt ein kostenloses SSL-Zertifikat (https) von Cloud Shield

Da das Projekt den https-Dienst nutzen muss, habe...

Docker verwendet ein einzelnes Image zum Zuordnen zu mehreren Ports

brauchen: Der Ressourcenserver der offiziellen We...

Kodierungsprobleme und -lösungen, wenn MySQL zwei Tabellen verknüpft

Wenn Mysql zwei Tabellen verknüpft, wird eine Feh...

Mehrere Möglichkeiten zum Wechseln zwischen Vue Tab und Cache-Seiten

Inhaltsverzeichnis 1. So wechseln Sie 2. Register...

mysql ist keine interne Befehlsfehlerlösung

Der Fehler „mysql ist kein interner Befehl“ tritt...

Vermeiden Sie den Missbrauch zum Lesen von Daten in Vue

Inhaltsverzeichnis Vorwort 1. Der Prozess der Ver...

Eine kurze Diskussion über die Typen von node.js-Middleware

Inhaltsverzeichnis Überblick 1. Middleware auf An...

So verwenden Sie die Clipboard-API in JS

Inhaltsverzeichnis 1. Document.execCommand()-Meth...