CSS mit Variablen - Webdesign wird modularer dank neuem CSS4 Modul
-
CSS
- 17 Aug, 2012
- Kommentare (14)
Während CSS 2.1 noch als ein großes Gesamtpaket veröffentlicht wurde, wurde CSS3 in verschiedene Module untergliedert, womit die Weiterentwicklung und die spätere Veröffentlichung wesentlich schneller vonstatten. Selbige Herangehensweise gibt es auch bei CSS4. Bereits im letzten Jahr wurden hier einige neue Ansätze, wie neue Selektoren und Variablen vorgestellt. Und genau in diesem CSS Modul für Variablen gibt es nun endlich etwas Bewegung seitens des W3C, aber auch der Unternehmen die diese Entwicklung mit Variablen mit CSS vorantreiben. Seit Mitte Juni gibt es hierfür vom W3C einen sogenannten Editors Draft, in dem einige Eigenschaften und Vorgehensweisen zu diesem Modul für CSS Variablen zusammengefasst sind. Tab Atkins Jr., seines Zeichens Entwickler des Google Browser Chrome und Mitarbeiter der CSS Working Group die an dieser Spezifikation für das W3C arbeitet, schreibt in seinem Blog das sich eben diese CSS Working Group darauf verständigt, CSS Eigenschaften mit Variablen wie bereits hier vor einem Jahr vorgestellt, mit var-foo zu kennzeichnen, um dann mit var(foo) auf diese Eigenschaft zugreifen zu können
CSS4 Variablen - Vorteil oder Nachteil?
Ziel ist es den Webdesignern, Webworker oder wie Jens Grochtdreis sagen würde Oberflächenmasseuren, die Arbeit zu erleichtern. Denn viele dieser CSS Eigenschaften und Werte mehrfach verwendet, wodurch der zeitliche Aufwand für Änderungen sehr zeitintensiv ist. Ein modularer Umgang und leichtere Pflegbarkeit von CSS Eigenschaften und den dazugehörigen Werten, könnte hier einiges bewirken. Das hier eine Notwendigkeit vorliegt, die nun auch das W3C zunehmend erkennt, ist nicht verwunderlich, denn neue Methoden wie SASS, Compass & Co sind sicherlich nicht aus reiner Langeweile entstanden, sondern weil sie fü,r bestimmte Entwickler und bestimmten Umständen notwendig wurden. Die Beliebtheit und die immer größer werdende "Anhängerschaft" dieser neuen Ansätze, sind dem W3C und den Browser-Herstellern sicherlich nicht verborgen geblieben, kein Wunder also das sich langsam etwas tut, auch wenn es bis zu einer endgültigen "finalen Version" dieses Moduls noch etwas Zeit vergehen wird.
CSS4 Variablen - Die Syntax
Der Unterschied dieser Methoden zudem Ansatz des W3C und seinen Mitstreitern, ist der das für das Definieren von Variablen in CSS keine weiteren Dateien notwendig werden. Die Diskussion darüber ob Stylesheet-Dateien somit noch komplexer werden, kann hier gern aufgegriffen werden. Ich persönlich finde den Ansatz gut und würde nicht behaupten das eine CSS-Datei dadurch unübersichtlicher wird. Ob man eine Variable "var-foo" oder eine Eigenschaft "background-color" oder einen Wert "white" anlegt, macht von der Übersicht her keinen Unterschied. Um dies noch einmal verständlich zu machen, anbei ein kleines und hoffentlich verständliches Beispiel für den Einsatz von Variablen in CSS:
CSS & Variablen
:root {
var-main-color: #FFF;
}
header, aside, footer {
background-color: var(main-color);
}
In diesem wird mit Hilfe des Selektors :root (CSS3) die Wurzel des HTML-Dokumentes, das -Element, angesprochen und die Hintergrundfarbe Weiß zugewiesen. Mittels der Funktion var() kann man nun die Bereiche der Webseite anlegen denen diese Hintergrundfarbe zugewiesen werden kann. In diesem Fall sind dies <header>, <aside> und <footer>. Diskutiert wurde im übrigen auch die Variante $main-color, favorisiert wird momentan allerdings die hier im Beispiel verwendete Syntax var(main-color).
Eure Meinung zu Variablen in CSS?!
Wie steht ihr zu diesen Entwicklungen in Bezug auf die Verwendung von Variablen in CSS? Wen dieses Thema interessieren sollte, kann dies hier gern kundtun. Denn bei entsprechendem Interesse könnte das Thema "CSS & Variablen" inhaltlich in eine neue Auflage meines Buches zu gegebener Zeit mit einfließen.

















Als ich möchte auf SASS & Co. nicht mehr verzichten und würde daher den hier aufgezeigten Weg durchaus begrüßen.
17 Aug 2012, 13:42
Wenn jetzt noch einfache Operationen (plus, minus, mal, dividiert) dazukommen, wird's langsam richtig gut.
17 Aug 2012, 13:44
Ich schließe mich meinem Vorredner an! Wenn man sich einmal durch eine mehrere tausend Zeichen lange CSS Datei gequält hat, möchte man die Vereinfachung, die einem solche Variablen (demnächst) erlauben nicht mehr missen.
17 Aug 2012, 14:50
Bitte Bitte Bitte.
Es wäre einfach so traumhaft, gerade für mehrfach verwendete Systeme, die Farbcodes in ein paar Variablen zu packen und auf einen Schlag ändern zu können. Zwar kann man einiges über Klassen regeln, an manchen Stellen geht es damit aber auch einfach nicht weiter.
Variablen in CSS: Traumwunderhaftvolltastisch
17 Aug 2012, 16:00
Ich würd deswegen Compass nicht abschaffen, aber je mehr die Sprache/der Browser einen abnimmt, desto weniger haben die entsprechenden Tools zu tun, heißt: Weniger fehleranfällig, mehr Zeit für andere Sachen :)
17 Aug 2012, 16:18
@Sebastian alias KingCrunch: Niemand möchte Compass abschaffen (ich schon gar nicht), aber "Konkurrenz" belebt das Geschäft und sorgt somit unter Umständen dafür, das bestimmte eben noch schneller umgesetzt werden.
17 Aug 2012, 21:21
Super Sache das!
Ob Stylesheets dadurch überladener werden ist die falsche Frage.
Die Frage ist, ob man sich als Entwickler damit den Code etwas übersichtlicher schreiben kann und ich denke, das wäre doch am wünschenswertestesten (ubersuperlativ.. ich weiß).
Die (neuen) Möglichkeiten sind schon echt gut. Mich ärgert es momentan nur, dass die aktuellen Sachen ja kaum vernünftig unterstützt werden. Besonders der IE ist immer einfach das letzte.
Toller Beitrag, ist ein echt interessantes Thema!
Die neuen Möglichkeiten mit CSS4 sind schon genial. In die ganze Thematik muss ich mich auch mal einlesen und bei neuen Projekten auch umsetzen.
05 Okt 2012, 11:27
was genau meinst du mit css3 ist in verschiedenen modulen aufgebaut? css3 ist soweit nicht mal offiziell vom w3c verabschiedet. in so fern könnte man auch alles was du als css4 bezeichnest dazu zählen. es gibt keine offizielle css4 bezeichnung oder sehe ich das grundsätzlich falsch?
davon abgesehen... das verfahren mit variablen im css zu arbeiten bietet enormen spielraum und vor allem den vorteil das man nicht mehr inline-php im css schreiben muss wie das oft der fall war und ist. eine unschöne lösung. diese "css4"lösung ist natürlcih komfortabel und bietet sehr viel potenzial.
Ich würde behaupten wollen dass Variablen eine gute Sache sein können bzw. auch Vererbung (siehe Programmierung). Aber dass hier dann Operationen durchgeführt werden oder gar tiefere logik integriert werden soll. Dann muss ich mich fragen was CSS ist und was alles möglich sein sollte. Denn Websprachen gibt es genügend PHP, JS und so weiter .. Brauchen wir dann wirklich noch die Möglichkeit die Logik ins CSS zu packen,verkomplizieren wir damit nicht auch noch alles ? (Besonders bei grösseren Projekten)
23 Okt 2012, 23:53
CS4 ist eien feine Sache. Wenn die Browser es nur schon mal interpretieren könnte. Bis das nicht gegeben ist kann man es leider noch nicht flächendeckend einsetzen.
Besonders die Tabellen mit Schatten könnte für viele interessant sein. Das spart auch unheimlich Traffic :-)
noch ein wenig abwarten.
02 Nov 2012, 12:15
Ich halte Variablen und wie meine Vorredner teilweise bereits bemerkt haben einfache Rechenoperationen für überaus sinnvoll.
Da wären einige Problem leichter zu lösen - und eine Codedokumentierung sollte sowieso da sein - von daher ist auch die Übersichtlichkeit gegeben..
Ich selber versuche so wenig wie möglich Java u. JS u.ä. zu benutzen, damit die Seiten auf möglichst vielen und vorallem auch beschränkten Systemen gleich aussehen und entsprechend nutzbar sind
Alles in allem finde ich: Die Entwicklung geht in eine richtige Richtung - Wenn dann noch intelligente Browser das richtig interpretieren... :-)