Die Nerd Enzyklopädie 41 - Welche Farbe hat Chuck Norris?

Eine Farbe sagt mehr als 1.000 Worte!

Oder so ähnlich. Im Webdesign können Farben unterschiedlich definiert werden. Ziemlich weit verbreitet ist die Angabe der roten, grünen und blauen Farbanteile mittels der entsprechenden Hexadezimal-Wertes. Jeder Farbanteil wird auf einer Skala von 0 bis 255 angegeben, bzw. in hexadezimaler Schreibweise von 0 bis FF.

Der folgende Farbcode steht z.B. für Grün (0 Rotanteile, 255 bzw. FF Grünanteile und 0 Blauanteile. (Ein Farbwert hat immer genau 2 Stellen, deshalb schreibt man 00 und nicht nur 0. So lässt sich auch genau erkennen, welcher Teil des Farbcodes für welche Farbe steht.)

#00FF00

Da hexadezimale Werte alphanumerische Zeichen enthalten, lassen sich damit auch Wörter bilden, in etwa so wie damals in der Schule auf dem Taschenrechner. Ein Beispiel:

#C0FFEE

Eigentlich darf ein Farbcode nicht mehr als 6 Stellen haben, die nur Ziffern und die Buchstaben von A bis F enthalten, trotzdem lassen sich auch beliebige Wörter verwenden und so ganze klandestine Botschaften im Farbcode verstecken! Wenn man damit leben kann, dass der Browser den Farbcode mitunter etwas seltsam interpretiert und das nur unter bestimmten Bedingungen anwendbar ist (siehe unten):

#CHUCKNORRIS

Wie funktioniert das? Der Browser ersetzt alle nicht gültigen Zeichen einfach mit 0. Aus CHUCKNORRIS wird also:

#C00C0000000

Da man nun aber mehr als 6 Stellen hat, geht der Browser einfach davon aus, dass sich die Stellen gleichmäßig auf die drei Farbanteile verteilen. Dazu muss erstmal eine 0 angehangen werden, um auf ein Vielfaches von 3 zu kommen:

#C00C00000000

Nun werden bei jedem einzelnen Farbwert die letzten beiden Stellen abgeschnitten, weil ja nur nur 2 Stellen erwartet werden! Eine Sonderregel besagt, dass zuerst führende Nullen abgeschnitten werden [SCRAP1]). Das interpretierte Resultat sieht also so aus:

#C00000

CHUCKNORRIS ist also rot! (Der geübte Nerd-Blick erkennt hier sofort 192 Rotanteile und sonst nichts.) Und irgendwie passt das ja auch, oder? Natürlich funktioniert das mit beliebigen Wörtern. nerdenzyklopädie ergibt z.B. ein prächtiges Lila!

Das klingt nach viel Spaß für Jung und Alt. Doch leider hat die Sachen einen kleinen Haken: Das Farbenspiel funktioniert nur bei Verwendung des HTML Attributs bgcolor, nicht über die typischen CSS-Attribute wie background-color und Co.