Es ist ein absolutes Ärgernis, dass für den Internet-Explorer immer eine Extrawurst gebraten werden muss, weil M$ meint sich nicht an den Standard halten zu müssen. Es kann einfach nicht sein, dass durch eine Boykottierung des Standards versucht wird ein eigener Standard zu schaffen. Dies wird hoffentlich langfristig mit den Füßen entschieden. Trotzdem ist leider nach wie vor erforderlich in CSS sog. Hacks einzubauen, um das gewünschte Layout auch für die M$-User zugänglich zu machen. Zwischenzeitlich war ich geneigt diese User einfach zu ignorieren. Trotzdem hier eine Möglichkeit sie trotzdem zu bedienen. Durch Einfügen von
CODE:
voice-family: ""}"";
im CSS-Stylesheet können nachfolgende Angaben für den ie5 unsichtbar gemacht werden. Durch den Backslash werden die nachfolgenden Angaben für alle anderen Browser unsichtbar. ie5 ignoriert den Backslash und interpretiert somit die nachfolgende geschweifte Klammer als Ende des Befehls. Alle nachfolgenden Angaben werden somit ignoriert. Ein weiterer Hack: Der Stern ist ab CSS 2 der Selektor für alle Elemente. Wenn er aber vor dem html-Tag-Selektor steht, ist er unsinnig, denn über diesem Tag gibt es keine anderen:
CODE:
* html #box {
background-color:lightgrey;
}
Alle Browser
außer dem Internet Explorer bis inklusive Version 6 erkennen das und ignorieren sämtliche Anweisungen in den geschweiften Klammern. Der Internet Explorer akzeptiert dagegen die Anweisung und setzt in diesem Fall die Hintergrundfarbe auf helles Grau.
Dieser Hack wird auch als Basis für eine Lösung des Boxmodell-Problems verwendet. Bekannt ist diese Variante auch unter Tan-Hack (Kurzform von Tantek) oder Modified Simplified Box Model Hack, da es sich hierbei um denselben Einsatzzweck handelt wie beim klassischen, und etwas komplexeren Boxmodell-Hack. Man sieht hier, dass die meisten Hacks eine lange Geschichte haben, die durch viel Ausprobieren und Diskussionen geprägt ist.
Der Tan-Hack besteht aus zwei Teilen: Der erste ist der Stern-HTML-Hack, der zweite ein Backslash in der Eigenschaft. Der Stern-HTML-Hack filtert auf alle Internet-Explorer-Versionen. Für den Boxmodell-Bug soll aber der Internet Explorer 6 nicht mit der geänderten Breite konfrontiert werden.
Deswegen gibt es noch eine zweite Breitenangabe für den Internet Explorer 6, die noch einen Backslash im Eigenschaftennamen erhält. Damit ist der Befehl für den Internet Explorer vor Version 6 nicht mehr sichtbar. Vorsicht: Der Backslash darf nicht bei den Buchstaben a bis f folgen, da diese sonst hexadezimale Zeichen bilden würden.
CODE:
#box {
width: 200px;
padding: 10px;
border: 10px solid red;
background-color: yellow;
color:red;
}
* html #box {
width: 240px;
w\idth: 200px;
}
Die größte Schwäche dieses Hacks liegt darin, dass man die Breite dreimal angeben muss. Dafür validiert er sauber auch im W3C-Validator und sieht etwas weniger kryptisch aus als das Tantek-Original.