09. Nov 2012
Im CSS können beliebige Variablen verwendet werden, um z.B. Farben oder sonstige mehrfach verwendeten Definitionen zentral festzulegen. Anpassungen können so einfacher und übersichtlicher durchgeführt werden.
Innerhalb einer CSS Datei können beliebige Werte über Variablen definiert werden. Dies ist schon länger möglich, wird aber erst mit der BASE Version 2.x in der Standarauslieferung eingesetzt.
Über einen CSS-Prozesser, der das CSS vor der Auslieferung verarbeitet, werden die Variablen ersetzt. Das geschieht übrigens im gleichen Zug, wie auch die automatische Generierung von CSS-Definitionen für die unterschiedlichen Browser. Selbstverständlich wird der CSS-Prozessor nur dann aktiv, wenn Änderungen in der CSS-Datei gemacht wurden.
$fontColorHeadlines: #666666; /* Schriftfarbe Überschriften */ h1 {color:$fontColorHeadlines;} h2 {color:$fontColorHeadlines;} h3 {color:$fontColorHeadlines;}
Das Beispiel macht deutlich, dass durch die Nutzung von Variablen weniger Anpassungen notwendig sind, da Redundanzen reduziert werden können.
CSS-Variablen können übrigens beliebig eingesetzt werden. Auch mehrere CSS-Definitionen lassen sich über eine Variable definieren. Der Prozesser führt lediglich eine einfache Ersetzung durch. Die Variablendefinitionen werden anschließend aus der ausgelieferten CSS gelöscht, so dass diese nicht mehr sichtbar sind.
Neben dem Vorteil, dass zum Beisiel bei der Änderung von Farben nicht mehrere Werte geändert werden müssen, haben CSS-Variablen noch den Vorteil, dass diese über Pflegemasken angepasst werden können.
Sobald Sie CSS-Farbvariablen nach folgendem Namensschema definieren, werden diese automatisch in der Maske des Layoutwizards zur Pflege über eine Farbauswahl angeboten. Automatisch erkannte Bezeichnungen sind:
Wenn Sie also eine Variable mit dem Namen $borderColorMyBox definieren, wird diese Variable auf dem Farbreiter im Layoutwizard angezeigt. Die Bezeichnung vor der Eingabemaske wird über den Kommentar hinter der Variable festgelegt.
Auch Breiten werden in die Pflegemaske übernommen, wenn diese nach folgendem Schema definiert sind:
Nicht nur im Layoutwizard, sondern auch im Quelltext werden Variablen, die als Farbe definiert sind mit einer Farbvorschau sowie einer Farbauswahl versehen. Da alle verwendeten Farben in einem Block zusammengefasst werden, bleibt das Farbschema der Webseite übersichtlich.
CSS hat inzwischen die Zentrale Rolle bei der Gestaltung der Webseite. Weblication geht sogar so weit, dass CSS den HTML-Quelltext bzw. Bilder beeinflussen kann. Sie kennen das vom CSS-Picture Rendering, wo die Bilder automatisch entsprechend der im CSS definierten Breiten ausgeliefert werden.
Mit CSS Variablen gehen wir nun noch einen Schritt weiter. So wird nun die HTML-Seitenstruktur über CSS definiert. So wird unter anderem definiert, ob bestimmte Seitenelemente genutzt werden sollen.
$displayNavigationBreadcrumb:block; /* Darstellung der Breadcrumb-Navigation */
<xsl:if test="php:functionString('wCSS::getValue', $wCSSPath, '$displayNavigationBreadcrumb') != 'none'"> <div id="navigationBreadcrumb">
Die Anwendungsmöglichkeiten sind unbegrenzt. Für Sie als Entwickler hat das den Vorteil, dass Sie noch weniger in XSLT-Templates anpassen müssen, da dort bereits jetzt viele Werte aus der CSS-Datei abgefragt werden.