
Ich experimentiere schon seit einiger Zeit mit CSS-Variablen. Wenn Sie sich noch nicht an sie gewandt haben, können Sie diese kurze Anleitung verwenden, um sich schnell zurechtzufinden und an die Arbeit zu gehen.
Was ist das?
 Ein einfaches Anwendungsbeispiel für Schaltflächen mit einem Bereich
Ein einfaches Anwendungsbeispiel für Schaltflächen mit einem BereichMit CSS-Variablen können Sie wiederverwendbare Werte in CSS definieren.
Sie sind vor langer Zeit erschienen. In letzter Zeit haben sie aufgrund der breiteren 
Browserunterstützung an Popularität gewonnen.
Wenn Sie einen Präprozessor wie SASS verwenden, sind Sie bereits mit Variablen vertraut. Jetzt können Sie dasselbe ohne Präprozessor tun.
Warum Stilvariablen verwenden?
Variablen ermöglichen es uns, das Prinzip von DRY einzuhalten (wiederholen Sie sich nicht). Dank ihnen haben wir auch die Möglichkeit, einen einzelnen Referenzpunkt für doppelte Werte zu erstellen. Wenn Sie einen Präprozessor verwenden, sind Ihnen die Vorteile dieses Ansatzes höchstwahrscheinlich bereits bekannt. Meistens wird dies verwendet, um die Grundfarbe festzulegen, die für viele Elemente verwendet wird.
 Wiederholen Sie die Hintergrundfarbe für mehrere Selektoren
Wiederholen Sie die Hintergrundfarbe für mehrere SelektorenIm obigen Snippet könnte und sollte der Wert von 
#e74c3c eine Variable sein. Wenn wir aus diesem Wert eine Variable erstellen, erhalten wir einen einzelnen Punkt, auf den verwiesen werden kann. Dies verringert das Risiko von Fehlern und Stilproblemen, da weitere Wartungsarbeiten erleichtert werden.
 Erstellen eines Referenzpunkts mithilfe einer Variablen
Erstellen eines Referenzpunkts mithilfe einer VariablenIm zweiten Snippet verwende ich einen Präprozessor, um zu zeigen, wie Sie eine Variable für den 
background-color können.
Warum nicht Präprozessorvariablen anstelle von nativen CSS-Variablen verwenden?
Gute Frage. In den meisten Fällen möchten Sie lieber an Präprozessorvariablen gebunden bleiben. Dies ist der Fall, wenn Sie sie bereits verwenden. Sie können jedoch beide Ansätze gleichzeitig nutzen. Dies wird relevant, wenn die Funktionen nativer CSS-Variablen vollständig genutzt werden müssen. Dazu später mehr.
Native CSS-Variablen sollten verwendet werden, wenn:
- Sie haben keinen Präprozessor oder verwenden ihn nicht.
- Sie möchten native CSS-Variablen nutzen.
Hauptvorteile nativer CSS-Variablen
Meiner Meinung nach haben native CSS-Variablen zwei große Vorteile.
Der erste. Sie werden zur Laufzeit aktualisiert! Sie können mithilfe von Medienabfragen, Status oder sogar JavaScript gesteuert werden. Der Browser übernimmt die vorgenommenen Änderungen. Dies eröffnet viele Möglichkeiten.
Darüber hinaus ermöglichen CSS-Variablen den Gültigkeitsbereich. Dies bedeutet, dass Sie beispielsweise den Stil oder das Verhalten eines Elements ändern können, indem Sie den Wert einer Variablen aktualisieren. Andernfalls müssen Sie neue Stile für dieses Element von Grund auf neu registrieren. Infolgedessen nimmt das CSS-Volumen am Ausgang ab.
Nicht die schönste Syntax
Schauen wir uns ein Beispiel an.

Was ist ein 
:root Pseudo- 
:root ? Alles ist logisch: Es ist ein Pseudo-Selektor einer Baumwurzel. Mit dem 
:root Selektor: können globale Variablen definiert werden. In diesem Fall definieren wir den 
rebeccapurple Wert für die Variable 
--primary .

Um eine Variable zu definieren, werden zwei Bindestriche als Präfix verwendet.

Um eine Variable zu verwenden, benötigen wir die 
var Funktion.
Und was passiert, wenn wir auf eine Variable verweisen, deren Wert nicht festgelegt ist? In diesem Fall können Sie Fallback-Werte oder Standardwerte festlegen. Die 
var Funktion unterstützt einen zweiten optionalen Parameter, der Fallback-Werten oder Standardwerten entspricht.

Dieses Snippet legt den Quellstil für das 
button Tag fest. Wenn möglich für 
background-color , wird der Wert 
--btn-color . Wenn die Variable nicht vorhanden ist oder der Wert nicht festgelegt ist, wird der Wert 
--primary .
Für unseren Fallback muss keine Variable verwendet werden. Sie können den Wert nehmen. Mit Variablen ist es jedoch einfacher, die Codeunterstützung zu implementieren.
Beachten Sie, dass für 
button.btn keine Stile deklariert 
button.btn . Stattdessen wird der Wert aktualisiert. Jetzt ist es angebracht, mit Kaskade und Umfang fortzufahren.
Kaskadierung und Bereiche
Bei der Arbeit mit Variablen werden die Kaskadierung sowie der Umfang der Variablen berücksichtigt. Im vorherigen Beispiel werden Variablen in der 
:root Pseudoklasse deklariert. Alle Variablen im 
:root Selektor haben einen globalen Gültigkeitsbereich.
In einem Beispiel oben war 
--primary für alle Selektoren verfügbar. Aufgrund des Gültigkeitsbereichs kann dieser Wert überschrieben werden. Zum Beispiel möchten wir, dass sich der 
--primary für die 
premium ändert.

In diesem Fragment ist der Wert der Variablen 
--primary eines 
premium Klassenelements 
dodgerblue . Das heißt, wenn keine Klasse auf die 
button angewendet wird, ist der Wert der Variablen 
rebeccapurple . Wenn Sie jedoch die 
premium anwenden, ändert sich die Farbe in 
dodgerblue .
Es ist erwähnenswert, dass Inline-CSS-Variablen wie bei Inline-Stilen die höchste Priorität haben.

In diesem Fragment wird die Hintergrundfarbe der Schaltfläche auf 
red , obwohl hier die 
premium verwendet wird. Dies geschieht, weil der Wert 
--primary direkt im Tag beschrieben wird.
Wertmanagement
Sie können die Werte von CSS-Variablen mithilfe anderer CSS-Regeln steuern. Die Hauptansätze sind Medienabfragen und Statusänderungen.
Beispielsweise kann sich der Wert einer Variablen ändern, wenn die Breite des Bildschirms einen bestimmten Wert überschreitet.

Durch die Änderung wird der Browser neu gezeichnet und dem Benutzer das Ergebnis angezeigt.
In diesem Fall ändert sich der Hintergrundverlauf, wenn die Breite 
768px überschreitet.
Wie verwalte ich Variablen mit Zuständen? Nehmen Sie zum Beispiel die 
button . Die CSS-Variable wird basierend auf dem Status der 
button aktualisiert.

In diesem Fall können Sie den Schaltflächenstil basierend auf dem Status " 
:active anpassen.
Verwalten von Werten mit JavaScript
Das Verwalten von Variablen über CSS ist sehr praktisch. Aber um wirklich die Kontrolle über sie zu erlangen, müssen Sie sie mit JavaScript kontrollieren. Zum Glück ist das echt.
Mit der 
setProperty Methode können 
setProperty Elementstilvariablen festlegen und verwalten.

Wie aktualisiere ich den Variablensatz in der 
:root Pseudoklasse? Gute Frage. Sie müssen Dokumenteigenschaften für 
documentElement festlegen.

Wenn Sie CSS-Variablen auf diese Weise bearbeiten können, gibt es viele Möglichkeiten. Neugierig auf die Verfolgung der Cursorposition mit dem 
mousemove .
Verwenden von calc () und Verwerfen von Einheiten
Versuchen Sie, keine Einheiten in Variablen zu verwenden. Dies erleichtert die weitere Wartung.

Mit der Funktion 
calc() können Sie Werte mit den gewünschten Einheiten normalisieren und einstellen.

CSS-Variablen können sogar zum Speichern von Informationen über bevorzugte Einheiten verwendet werden. Aus Gründen der Übersichtlichkeit haben wir "1px" in das Fragment aufgenommen, aber Sie können es durch "1pt", "1rem" usw. ersetzen.
Das Fehlen von Einheiten ist normalerweise relevanter, wenn Werte aus JavaScript festgelegt werden. Bei der Verarbeitung reiner Werte abstrahiert unser Skript von CSS. Die Verbindung ist unterbrochen.

Wenn Einheiten in CSS enthalten sind, wird der Service auch über CSS geleitet.
Anwendungsbeispiele
Ich studiere immer noch verschiedene Beispiele für die Verwendung von CSS-Variablen. Zunächst fällt ein dynamisches Thema ein. Das Verfolgen des Cursors und das Scrollen des Bildschirms sind ebenfalls interessante Anwendungen. Ich habe Schulungsunterlagen vorbereitet, die unten aufgeführt sind.
Beispiel mit einem Hund und einem Ball
Lassen Sie uns ein Beispiel zusammenarbeiten!
Hier verfolgen wir einfach die Position des Cursors und aktualisieren die Position der beiden Emojis.

Die Hauptsache hier ist, Emojis von einem zentralen Punkt mit 
translate und gleichzeitig eine 
transition-delay auf den Hund anzuwenden.
Wie aktualisiere ich die Situation? Verwenden von Variablen für 
--x und 
--y .

Wie kann man den Hund zurückhalten? 
transition-delay wird angewendet. Ein komplexer Verlangsamungseffekt kann auch mit der 
transition-timing-function erzielt werden.

Es bleibt nur, diese Variablen für 
mousemove zu aktualisieren.

Das ist alles. Noch ein paar kleinere Verbesserungen, und so etwas stellt sich heraus:

Nachteile
Bisher verlief die Arbeit mit CSS-Variablen recht reibungslos. Ich bin selten auf Situationen gestoßen, in denen etwas nicht geklappt hat. Hier sind einige Möglichkeiten, die ich für CSS-Variablen sehen möchte.
- Animation von Variablen. In diesem Artikel habe ich überhaupt nicht über Animation gesprochen. Sie können Variablen dafür verwenden. Die Animation der Werte selbst ist jedoch nicht möglich.
- CSS-Variablen können in Selektoren nicht verwendet werden. Dies ist logisch, aber es wäre großartig, wenn ein solches Interpolationsniveau verfügbar wäre. Die Verwendung von Variablen im n-ten untergeordneten Selektor wäre cool.
Fazit
Ich arbeite gerne mit CSS-Variablen. Je mehr ich sie mache, desto mehr Anwendungsbeispiele fallen mir ein.
Dank dieses Artikels können Sie selbst mit dem Erlernen von CSS-Variablen beginnen.
Wenn Sie einen detaillierteren Überblick über CSS-Variablen erhalten möchten, sehen Sie sich dieses 
Video an .
LOOKING.HOUSE - Das Projekt sammelte mehr als 150 Spiegel in 40 Ländern. Sie können Host-, Ping-, Traceroute- und mtr-Befehle schnell ausführen.
