direkt zum Seiteninhalt springen »


Kommentarseite zu:

CSS für IE via Conditional Comments

Um Darstellungsabweichungen meiner CSS-Anweisungen in verschiedenen Internet Explorer-Versionen zu korrigieren (5.01, 5.5 und 6), setze ich bevorzugt Conditional Comments ein, mit deren Hilfe ich die genannten IE-Versionen, nach dem Einlesen des Standard-CSS, noch auf speziell für sie optimierte CSS-Dateien weiterleite.

Alternativ besteht zwar auch die Möglichkeit, in das reguläre CSS sogenannte CSS-Hacks einzubauen (Selektoren, die nur von bestimmten IE-Versionen interpretiert oder überlesen werden), doch davon halte ich persönlich nicht so viel. Erstens macht es das Standard-CSS mit der Zeit ziemlich unübersichtlich, wenn man nicht den Sinn und Zweck jedes einzelnen Hacks genau kommentiert – was wiederum das CSS aufbläht; zweitens könnten solche Hacks in späteren IE-Versionen zu Problemen führen, da diese sie evtl. anders interpretieren als die jetzigen. Also brate ich lieber gleich jeder IE-Problemversion ihre eigene “CSS-Extrawurst”.

Allerdings machen das bislang noch nicht viele CSS-Designer so. Ich vermute, das könnte daran liegen, dass einige noch nicht so recht wissen, wie man die Funktionsweise älterer IE-Versionen, in Kombination mit den per Conditional Comments eingebundenen Stylesheets, praktisch testen kann.

Zunächst mal ist es ja bekanntermaßen nicht möglich, verschiedene IE-Vollversionen auf einem Rechner zu installieren. Dieses Problem wurde jedoch schon vor geraumer Zeit durch die Entwicklung der so genannten IE-Standalones gelöst, die nun auch in den evolt.org-Browserarchiven zum Download bereit stehen.
So weit so gut. Versucht man nun aber, seine HTML-Dokumente mit den eingebauten Conditional Comments in einer dieser Standalone-Versionen zu testen, stellt man fest, dass nicht alle separaten Stylesheets eingelesen werden – nämlich die nicht, welche nicht für die installierte IE-Vollversion 6 vorgesehen sind.

Die Ursache dafür finden wir in der Windows Registry, wie Manfred Staudinger herausfand. Durch einen bestimmten Eintrag in:
HKEY_LOCAL_Machine\Software\Microsoft\Internet Explorer\Version Vector\
wird nämlich bei jedem Start dem Internet-Explorer signalisiert, welche Version auf dem Rechner installiert ist. Und das lesen auch die IE-Standalones. Einfach gesagt: Sie registrieren quasi nicht, dass sie nicht das sind, was die Registry sagt ;o) und ignorieren darum die für sie vorgesehenen Conditional Comments. Abhilfe schafft eine kleine Änderung des Eintrags. Man suche im vorgenannten Registry-Verzeichnis nach dem Eintrag IE und benenne ihn in zIE um. Das war’s. Schon werden die Conditional Comments von den jeweiligen Standalones als zu ihnen gehörig erkannt und eingelesen.

Manfred Staudinger bemerkte zwar in seinem Artikel einschränkend, dass diese Maßnahme bei den CCs für den IE5.5 nicht half, das kann ich jedoch nicht bestätigen. In meinem Standalone 5.5 wurden die per CCs verknüpften Stylesheets, nach der Änderung in der Registry, ebenso interpretiert wie in der Version 5.01. Allerdings stellte ich fest, dass nach manchen Updates der IE-Vollversion der Registry-Eintrag wieder überschrieben wurde. Deshalb rate ich, nach jedem IE-Update, den Registry-Eintrag erneut zu überprüfen.

2 Kommentare »

  1. Vielen Dank für diesen informativen Artikel. Da habe ich gleich wieder einiges gelernt!

    Kommentar von Daniela am 08.12.2005 um 22:41
  2. Darauf muss man erst mal kommen! Danke für die Info!

    Kommentar von Oppi am 29.01.2006 um 20:13

Kommentar-Feed zu diesem Blog-Eintrag |

Kommentieren: