Beispiel zum Ändern von Stilen über CSS-Variablen

Beispiel zum Ändern von Stilen über CSS-Variablen

Frage

Wie ändere ich den CSS-Pseudoklassenstil mit js? Aber js hat keinen Pseudoklassenselektor. Was sollen wir also tun? Im Internet gibt es zahlreiche Methoden, wie etwa das Wechseln von Elementklassen, das dynamische Einfügen neuer Stile in Stile usw.

Hier ist eine andere Methode, die darin besteht, die CSS-Variable (var) festzulegen und diese Variable über JS zu ändern, um dies zu erreichen.

Beispiel: Ändern der Hover-Hintergrundfarbe eines Div

<!-- css -->
<style type="text/css">
    :Wurzel {
        --divHoverColor: rot;
    }
    div {
        Breite: 100px;
        Höhe: 100px;
        Hintergrund: Biskuitporzellan;
    }
    div:hover {
        Hintergrund: var(--divHoverColor);
    }
</Stil>
<!-- html -->
<div beiKlick="onDivClick('grün')"/>
<!-- js -->
<Skripttyp="text/javascript">
    Funktion onDivClick(Wert){
        document.documentElement.style.setProperty('--divHoverColor', Wert);
    }
</Skript>

Lernen wir also CSS-Variablen kennen.

1. Grundlegende Verwendung

Lokale Variablen

div {
    --masterColor: rot;
    Hintergrund: var(--masterColor);
}

Globale Variablen

/* Bei HTML bezieht sich :root auf das <html>-Element*/
:Wurzel {
    --masterColor: rot;
}
div {
    Hintergrund: var(--masterColor);
}

2. Syntax

var( <Name der benutzerdefinierten Eigenschaft> [, <Deklarationswert> ]? )

<custom-property-name> : Name der benutzerdefinierten Eigenschaft

<declaration-value> : Deklarationswert (Fallback-Wert)

Beispiel:

div {
    /*
    --masterColor ist nicht definiert, daher ist die Hintergrundfarbe rot 
    Es können mehrere durch Kommas getrennte Deklarationswerte definiert werden, var(--masterColor, red, green)
    */
    Hintergrund: var(--masterColor, rot);
}

Auf Variablen kann mit var() verwiesen werden.

Beispiel:

div {
    --masterColor: rot;
    --bgColor:var(--masterColor)
}

Hinweis: Variablen können nicht in Attributnamen verwendet werden.

Fehlerbeispiel:

div {
    --bg: Hintergrund;
    var(--bg): rot;
}

3. Browser-Unterstützung

Kann ich

Verwenden der @support-Erkennung

@supports ( (--masterColor: rot)) {
  /* unterstützt */
}
@supports ( nicht (--masterColor: rot)) {
  /* nicht unterstützt */
}

Verwenden der JS-Erkennung

const isSupported = window.CSS && window.CSS.supports 
    && window.CSS.supports('--masterColor', 'rot');

if (wird unterstützt) {
  /* unterstützt */
} anders {
  /* nicht unterstützt */
}

siehe

MDN
CSS-Variablenspezifikation

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.

<<:  HTML-, CSS- und JS-Kompatibilitätsbaum (IE, Firefox, Chrome)

>>:  Vorteile und Nachteile des MySQL Advanced Learning Index sowie Nutzungsregeln

Artikel empfehlen

Vue erzielt einen nahtlosen Karusselleffekt (Laufschrift)

In diesem Artikelbeispiel wird der spezifische Co...

Zusammenfassung häufig verwendeter Leistungstestskripte für VPS-Server

Hier ist ein allgemeines Ein-Klick-Leistungstests...

MySQL InnoDB MRR-Optimierungshandbuch

Vorwort MRR ist die Abkürzung für Multi-Range Rea...

Vollständige MySQL-Sicherung und schnelle Wiederherstellungsmethoden

Ein einfaches MySQL-Vollsicherungsskript, das die...

Prinzip des Linux-Nohup-Befehls und Beispielanalyse

nohup-Befehl Bei der Verwendung von Unix/Linux mö...

Bootstrap 3.0 Studiennotizen Grid-System-Fall

Vorwort Im vorherigen Artikel haben wir hauptsäch...

Vue-CLI3.x stellt Projekte automatisch auf dem Server bereit

Inhaltsverzeichnis Vorwort 1. Installieren Sie sc...

So passen Sie die Höhe eines Divs an die Höhe des Browsers an

Diese alte Frage hat unzählige Frontend-Entwickler...

MySQL-Partitionierungspraxis mit Navicat

MySQL-Partitionierung ist hilfreich bei der Verwa...

Bedingtes Rendering von Vue (v-if und v-show)

Inhaltsverzeichnis 1. v-wenn 2. Verwenden Sie v-i...

Tutorial zum Herunterladen und Installieren von MySQL 8.0.12 WinX64

MySQL 8.0.12 Download- und Installations-Tutorial...

TypeScript-Aufzählungstypen im Detail erklären

Inhaltsverzeichnis 1. Digitale Aufzählung 2. Zeic...

JavaScript zum Erzielen eines einfachen Drag-Effekts

In diesem Artikel wird der spezifische JavaScript...