Ja, die Verwendung von Klassen ist ein guter Ansatz, aber es ist jetzt möglich, Variablen in CSS zu deklarieren. Und Variablen (insbesondere Farbvariablen) sind unglaublich nützlich, wenn Sie dieselbe Farbe deklarieren (eine, bei der Sie den Hex-Wert benötigen, wenn Sie eine integrierte Farbe verwenden, ist dies nicht so wichtig).
Und dies ist die Verwendung von einfachem CSS (und tbh, nicht annähernd so elegant wie die Verwendung von SASS oder lessCSS), aber es funktioniert für Zwecke von einfachem CSS. Definieren Sie zunächst die tatsächliche Variable im :rootBlock. Sie können es beispielsweise auch in einem pBlock definieren (oder in irgendetwas anderem), aber es ist nur in diesem Block verfügbar. Um sicherzustellen, dass es global zugänglich ist, legen Sie es im Stammblock ab:
:root {
--custom-color: #f0f0f0;
}
Und mit der varMethode (ohne die var-Methode wird sie nicht als tatsächliche Referenz aufgelöst) können Sie später darauf verweisen:
p{
color: var(--custom-color);
}
Da der :rootBlock (wie alle anderen CSS-Deklarationen) ein voll funktionsfähiger Block ist, der auf Elemente verweist, können Sie Folgendes nicht deklarieren:
:root{
color: #00ff00;
}
Das würde auf das Farbattribut jedes einzelnen Elements verweisen und es auf (in diesem Beispiel) setzen #00ff00. Jeder von Ihnen deklarierte Variablenname muss mit beginnen --, was bedeutet, dass Sie Folgendes tun können:
:root{
--color: #00ff00;
}
Und wieder, wenn Sie können, verwenden Sie etwas wie SASS oder lessCSS. Die Möglichkeit, sie durch Schreiben @color = #fff* und Verweisen auf @color* zu deklarieren, ist viel einfacher als der Umgang mit einfachem CSS und die Verwendung des varSchlüsselworts jedes Mal, wenn Sie auf eine benutzerdefinierte Eigenschaft zugreifen möchten.
Und Sie können mit JS auf Inline-CSS zugreifen, um die Eigenschaften abzurufen und / oder zu ändern:
element.style.getPropertyValue("--custom-color");
getComputedStyle(element).getPropertyValue("--custom-color");
element.style.setProperty("--custom-color", "#f0f0f0");
HINWEIS!
Dies ist eine kürzlich hinzugefügte Funktion, daher ist es wichtig, die Browserkompatibilität zu überprüfen . Insbesondere Firefox ist besondere Aufmerksamkeit wert, da es eine Lücke zwischen der Einführung der Variablendeklarationen selbst und der var()Methode gibt. caniuse schätzt derzeit, dass 91,65% der Benutzer einen Browser mit Unterstützung für die Methode ausführen. Und es ist auch erwähnenswert, dass IE das überhaupt nicht tut.
* mit lessCSS ist es @color, mit SASS ist es$color