Skip to main content
F-LOG-GE

Den IE8 direkt ansprechen

Während meines letzten Projektes hatte ich bei einer Sonderform von Formularen die Notwendigkeit, für so ziemlich jeden Browser eine Sonderlösung in einem Detail zu schreiben.

Ich mußte FF und IE 6 bis 8 auseinanderhalten. IE6 und 7 direkt anzusprechen, ohne Conditional Comments nutzen zu müssen, ist nicht so schlimm. Mein Ex-Kollege und Mit-Webkraut Dirk Ginader hatte vor einiger Zeit eine interessante Übersicht an Hacks gepostet, mit denen man einzelne Browser und sogar einzelne Versionen dieser Browser ansprechen kann. Zum Zeitpunkt der Veröffentlichung war aber der IE8 noch nicht fertig und Dirk kannte noch keinen Hack. Ich habe nun einen gefunden, der den IE in Version 8 und 7 anspricht. Das führt dann dazu, daß man danach den Siebener noch einmal separat anprechen muss. Eventuell muss man dann eine weitere Regel für den Sechser einführen, die der Siebener nicht versteht. Hört sich umständlich an, ist es auch. Und es ist auf keinen Fall "schöner Code". Aber es ist nützlich, wenn man wie ich eine oder einige wenige Korrekturen vornehmen muss und nicht gleich deshalb ein separates Stylesheet erschaffen möchte.

Mein Code sah am Ende folgendermaßen aus:


.formcontainer form legend {
    position: absolute;
    display: block;
    font-weight: bold;
    color: #039;
    margin-top: -30px;
    margin-left: -5px;
    *margin-left: 2px; /* für IE6 und 7 */
    top /***/: 0px9; /* für IE7 und 8 */
    *top: 0; /* für IE6 und 7 */
    left: 0;
    left /***/: 14px9; /* für IE7 und 8 */
    *left: 0; /* für IE6 und 7 */
    margin-bottom /***/: 5px9; /* für IE7 und 8 */
    *margin-bottom: 0px; /* für IE6 und 7 */
    } 

Schauen wir uns den Code der Reihe nach mal an: "margin-left" wird erst normal definiert, also für alle Browser, und dann für IE6 und 7 neu definiert. Der IE8 würde also auch wie Firefox, Safari und die anderen einen Wert von 2px lesen. Bei "top" hingegen brauchen alle IE den Wert "0px", alle anderen brauchen den Wert nicht oder misinterpretieren ihn. Deshalb hacke ich erst für den IE7 und 8 und danach für die Versionen 6 und 7.

Nett wird es bei "left". Hier benötigt nur der IE8 eine Sonderbehandlung. Deshalb schreibe ich erst "left" für alle Browser. Danach kommt der Hack für die Versionen 7 und 8 und um dem Siebener wieder den korrekten Wert zu geben, muss dieser danach nochmal zusätzlich angesprochen werden.

Niedlich, nicht wahr? :-)

Dies ist ein Archiv meines alten Weblogs, das von Oktober 2006 bis Dezember 2022 als Wordpress-Instanz existierte.