Farbdeklarationen in CSS
Farben lassen sich innerhalb von CSS auf unterschiedliche Weise definieren: nominal, sechs- und dreistellig hexadezimal, dezimal oder prozentual.
von at
Eine Untergruppe der hexadezimalen oder dezimalen Schreibweise bilden die web-sicheren Farben, und schließlich gibt es da noch Paletten-Farben, die aber nicht direkt in CSS definiert werden können. Doch der Reihe nach.
nominal
Zunächst einmal besteht die Möglichkeit, Farbwerte an Hand ihrer Namen festzulegen. So verstehen alle gängigen Browser die Zuweisungen “color: black; background-color: white;”. Allerdings funktionieren diese Angaben nur in begrenztem Umfang, wie man etwa auf j-a-b.net nachlesen kann. Und wer will — und kann — sich schon so viele Farben merken?
hexadezimal (6-stellig)
Das Gegenteil der namentlichen Definition ist die Angabe von hexadezimalen RGB-Werten auf Basis der additiven Farbmischung, wobei jedem der sogenannten Farbkanäle für R (Rot), G (Grün) und B (Blau) ein zweistelliger Wert zugeordnet wird: “#3696cf” etwa ist für Laien kryptisch, aber technisch präzise und browser-übergreifend vollkommen zuverlässig. Aber auch hier gilt es, einige Dinge zu beachten.
hexadezimal (3-stellig)
So lassen sich Farbwerte nicht nur sechsstellig hexadezimal darstellen, sondern auch dreistellig hexadezimal. Der Farbwert entspricht dann nicht etwa dem Schema #RGB = #R0G0B0, sondern dem Schema #RGB = #RRGGBB. Dies ist sinnvoll, damit zumindest die farblichen Extremwerte Schwarz (#000 bzw. #000000) und Weiß (#fff bzw. #ffffff) auch in der Kurzform geschrieben werden können. Diese Form der Notation ist jedoch ausschließlich ein Zugeständnis an die Faulheit und den Geiz von Web-Designern und Internet-Providern, die froh um jedes Zeichen waren, das sie nicht tippen oder übertragen mussten. Denn man nimmt mit dem weit reduzierten Farbumfang von gerade einmal 4096 (16 x 16 x 16) Abstufungen gegenüber den 16.777.216 (256 x 256 x 256) Farbtönen, die die lange Schreibweise mit sechs Stellen beschreiben kann, einen großen Nachteil in Kauf.
dezimal
Wer mit Hexadezimalwerten nichts anfangen kann und daher die dezimale Schreibweise bevorzugt, etwa weil das eigene Grafik- oder Bildbearbeitungsprogramm sich darauf besser versteht, kann Farbwerte auch in der Form “rgb(123,123,123)” angeben. Zulässig sind hier alle ganzzahligen Stufen von 0 (dunkel) bis 255 (hell).
Zu beachten ist hier aber der Unterschied zwischen etwa #989898 und rgb(98,98,98), denn die Raute steht hier stets für hexadezimale Werte, und eine hexadezimale “(#)98″ ist eben eine dezimale “152″ — auf einer bis 255 reichenden Skala natürlich eine deutliche Differenz.
prozentual
Die prozentuale Angabe der Farbwerte in der Form “rbg(10%,20%,30%)” entspricht dem gleichen Schema wie die dezimale; nur endet die Skala nicht bei 255, sondern eben bei 100%. Dies ist für Laien sicher anschaulicher — wenn man hiervon bei der additiven Farbmischung überhaupt sprechen möchte —, birgt aber den Nachteil eines eingeschränkten Spektrums, da ausschließlich ganzzahlige Prozentwerte angegeben werden dürfen, was dazu führt, dass statt 16.777.216 (256 x 256 x 256) Farben nur noch 1.000.000 Farben zur Verfügung stehen. Natürlich käme man auch mit einer runden Million Farben aus — wenn dieser Umstand nicht dazu führte, dass ähnliche Farben zusammengefasst werden müssen. Denn “rgb(10%,10%,10%)” kann ja sowohl “rgb(25,26,25)” wie auch “rgb(26,25,26)” entsprechen. Ein Prozentpunkt entspricht ja 2,56 (256 durch 100) Farbabstufungen pro Kanal.
Dieser Unterschied scheint zunächst gering, kann sich aber als tückisch erweisen, wenn etwa ein Bild aus einem Bildbearbeitungsprogramm und eine mittels CSS gesetzte Farbe eine mehr oder minder deutliche Kante zueinander bilden, obwohl der Farbton eigentlich der gleiche sein sollte.
Damit wären wir bei der Frage angelangt, welche Farben denn überhaupt ohne Bedenken für Web-Projekte eingesetzt werden können. Und wie verhält es sich mit den in diesem Zusammenhang oft propagierten, und zwischenzeitlich immer wieder als veraltet deklarierten sogenannten „web-sicheren“ Farben?



