Conditional comments und IE-Versionen testen

Ausschliesslich für den Internet Explorer: Eine "Browserweiche"

<!--[if IE]>
<![endif]-->

<!--[if IE 6]>
<style type="text/css">
div.beispiel { margin-top: 10px; }
</style>
<![endif]-->

Man beachte die Gross-/Kleinschreibung innerhalb der eckigen Klammern.

Browserfehler mit conditional comments beheben

Gibt es Fehler bei den verschiedenen IE-Versionen, kommt folgendes zum Einsatz (verschiedene Beispiele):

<!--[if IE 5.0]>
<style type="text/css">
li a { display: none; }
</style>
<![endif]-->

<!--[if IE 5.5]>
<style type="text/css">
pre { margin: 0px; }
</style>
<![endif]-->

<!--[if IE 6]>
<style type="text/css">
div#box { width: 90%; padding: 4%; }
</style>
<![endif]-->

<!--[if IE 7]>
<style type="text/css">
ul#nav ul { margin-left: -12px; padding-left: 1px; }
</style>
<![endif]-->

Das ist relativ praktisch, im Angesicht der Schwierigkeiten, die die IE-Reihe aufstellt.

Es gibt noch die Möglichkeit verschiedene IE-Versionen gleichermaßen anzusprechen:

<!--[if lt IE 7]>
<style type="text/css"> div#6 { width: 600px; }
</style>
<![endif]-->

<!--[if lte IE 7]>
<style type="text/css"> div#7 { height: 26px; }
</style>
<![endif]-->

Die Buchstaben lt bedeuten "less than". Im ersten Beispiel würden die IE-Versionen bis einschliesslich 6 angesprochen (kleiner als 7) - das heisst alles unter 7 ist gemeint, also ausschliesslich 7.

Das Zeichen lte bedeuten, "less than or equal", also kleiner oder gleich, und lte IE 7 würde den IE 7 einschliessen - also alle IE Versionen von theoretisch 1 bis einschliesslich 7 werden angesprochen.

Um nur den IE 5.0 anzusprechen, muss man
<!--[if IE 5.0]> schreiben.
Denn <!--[if IE 5]> gilt für die ganze Serie IE 5.00-5.99. Es gab übrigens nur 5.0 und 5.5.
Folglich <!--[if IE 5.5]> für die Version 5.5.

Um sich zu vergewissern, ob die IE-Version wirklich authentisch ist, kann man http://useragent.org aufrufen:

Zum Beispiel entspricht MSIE6 in der zweiten Angabe in Klammern dem IE6.

Und mit experimentellen conditional comments kann man natürlich direkt prüfen, ob diese von der jeweiligen benutzten Version angenommen werden. Ob das alles also funktioniert.
Und: Es funktioniert.

Browser Hacks

Man kann in besonderen Fällen die "Browser-Hacks" verwenden, zB solche, die nur den IE 5 ansprechen (das ist zB der Tantek Hack).  

Oder man benutzt conditional comments und Browser Hacks innerhalb derselben Webseite gleichzeitig - was ich auf einigen meiner Seiten früher selbst getan habe. 

Man erreicht mit den conditional comments, dass der IE angesprochen wird, und der IE interpretiert auch alle normalen stylesheets  - aber es kann die Notwendigkeit geben, dass er eben nicht angesprochen wird, aber alle anderen Browser.

Wichtig: man sollte bedenken, dass jede neue Version eines Browsers mit einem Hack anders umgehen könnte - daher verwende ich persönlich nur ungern diese hacks und versuche sie einfach zu vermeiden. Ich glaube, dass auch andere Webdesigner so denken. Denn wenn man sie übermässig oder regelmässig einsetzt, könnte dann irgendwann das Chaos und die unliebsame Überraschung umso grösser sein.

IE5 ausschliessen (mit Browser Hacks)

Der IE5 stellt die grössten Probleme dar. Oft kann ich mir auch nicht anders helfen, als eine reduzierte Darstellungsart für die IE Benutzer zu wählen, zum Beispiel mit dem CSS-Style "display: none;".
Auch andere IE-Versionen können noch nicht alles, ob mit oder ohne conditional comment.
Das gilt zum Beispiel für die vielen Tricks, die man mit Pseudoklassen (besonders li a:hover) anwenden möchte. 

Für dynamische Menüs, die mittels den Pseudoklassen aufbauen will, gibt es offenbar Lösungen für den IE6 allein mit CSS, also ohne javascript, die von Stu Nicholls aufgezeigt werden.

Wobei nicht das li:hover, sondern a:hover benutzt wird. Das Linkelement <a> kann man nämlich als Blockelement definieren und erhält so den gewünschten :hover-Effekt. 

Siehe: http://www.cssplay.co.uk/menus/iframe_fix3.html

und weitere Erläuterungen auf seiner Übersicht: http://www.cssplay.co.uk/menus/index.html
(auf der rechten Seite der Beispielliste unter "Menus - Multi-Level - Flyout").

Allgemein bietet sich als Browserhack in Bezug zum IE5 der sogenannte Tantek Hack an.

Für den entsprechenden Selektor wird alles, was hinter der CSS-Eigenschaft voice-family steht vom IE 5 ignoriert.

Man muss ein bisschen "Logik" walten lassen und in Bezug zum Selektor und den zu ihm gehörenden Angaben für die standardkonformen Browser so plazieren, dass sie nach den Anweisungen folgen, die mit

voice-family:"\"}\""; 
voice-family:inherit;

gegeben wurden, denn ab dort bricht der IE 5 den Interpretationsvorgang ab.

Es mag wie folgend aussehen:

ul#nav li a {width: 254px;} 
ul#nav li a {voice-family:"\"}\""; voice-family:inherit;
width: 190px; }

Das letzte ul#nav li a (width 190px;) ist die Richtigstellung für alle anderen Browser. Man schreibt also die erste Anweisung für den IE 5.

Der IE 5 kann die Anweisungen des ganzen betreffenden Selektors nach voice-family nicht mehr verstehen, jedoch die anderen Browser, die so den für sie richtigen Wert erhalten.

Es lassen sich verschiedene Einsatzgebiete denken. Auch kann man auf diese Weise den IE 5 am einfachsten von einer Formatierung ausschliessen, wenn dieser damit nicht umgehen kann (zB manche absoluten Positionierungen).

Dieser Hack, wie eigentlich alle anderen Hacks, gelten nur für den betreffenden Selektor, man kann also im selben Stylesheet weitere Selektoren aufstellen und auch mit weiteren Hacks versehen. 

Der IE 6 versteht diese Anweisung, also gilt der Tantek-Hack nur für den IE 5.0 und IE 5.5..

Achtung: Der KompoZer kennt diese Anweisung mit voice-family nicht mit diesen Sternchen, Klammern und Schrägstrichen - und wenn man mit dem CSS-Editor des Kompozer das entsprechende stylesheet irgendwo ändert (auch bei anderen Selektoren), geht die Anweisung verloren. 
Man kann solche Hacks entweder in externe Stylesheets auslagern, um sie dort mit notepad zu editieren, oder man erstellt einfach ein zusätzliches stylesheet intern - da man ja gewöhnlich mit dem Kompozer im relevanten stylesheet noch Eingriffe vornimmt.  

Man kann bei google noch weitere Infos suchen "Browser hack+ie 5" oder man schaue bei selfhtml: http://de.selfhtml.org/css/layouts/browserweichen.ht

Oder hier: http://css-hacks.mozork.de/

IE 6 und IE 5 ausschließen (mit Browser Hacks)

Dieser skurril scheinende Selektor funktioniert beim IE6 und IE 5 nicht, bei allen anderen Browsern schon:

head:first-child+body ul#nav li
{ cursor: url(../img/tab.cur); }

Hier wird zum Beispiel ein cursor gesetzt , ohne dass der IE etwas davon mitbekommt. Das heisst, man stellt vor einen Selektor einfach: head:first-child+body

Funktioniert nur, um den IE 6 und IE 5 auszuschliessen, der IE 7 und IE8 versteht head:first-child+body. Auch andere moderne Browser verstehen diesen Selektor. Das übrige Stylesheet wird weiter interpretiert, nur der entsprechende Selektor und seine Regeln bzw. Anweisungen nicht.

Man sollte beachten, dass manche dieser Hacks auch den Netscape (bessonders frühe Versionen) betreffen und auch frühe Versionen des Opera-Browsers  - aber der Netscape ist auch immer seltener im Netz zu sehen. Und die verbreiteten Opera-Versionen sind mittlerweile CSS-kompatibel, stellen keine Probleme auf.

Web-Seiten testen in Bezug zu den conditional comments  und überhaupt  IE-Versionen testen

Es gibt zwei sehr zufriedenstellende Lösungen, den IE-Tester und den Multi-Installer:

IE Tester

Der IE-Tester ist optimal, da er vom IE 5.5 bis zum IE8 testet und als eigenständiger Browser die üblichen Standalones überflüssig macht. Die beste Variante! 

Die IE-Versionen darin sind authentisch!

Voraussetzung: XP oder Vista, jeweils IE7,  der auf dem Betriebssystem bereits installiert wurde (es gilt wahrscheinlich die Eula Lizenz zu beachten: man darf nur Windows Produkte auf Windows Systemen installieren; und bei den Rendering Engines dürfte es sich immer noch um Windows Produkte handeln): http://www.my-debugbar.com/wiki/IETester/HomePage

Das Programm wird dort zum freien Download angeboten. Und man kann in einem Forum sogar Vorschläge zur Weiterentwicklung geben! 

Die Rendering Maschinen sind identisch mit der jeweiligen IE-Version, die man mit einem neuen Tab, den man öffnet, wählen kann. 

Man öffnet einen neuen Tab und gibt die zu testende Webseite ein (man kann auch seine Hauptseite als Standardseite unter Optionen einstellen).

Vorzugsweise für html und CSS, aber anscheinend nicht (kompliziertes) javaskript in vollem Umfang. Mein kleines javaskript auf meiner Hauptseite, das für die Navigationsmenüs zuständig ist (li:hover), funktioniert jedoch tadellos bei allen IE-Versionen des IE-Testers.

Dieser IE-Tester dürfte einen Wunsch erfüllen, den jeder Webdesigner sicher schon lange hegte! An diesen Entwickler gilt:

Eine Super Leistung des Programmiers auf dieser Seite (bei Core Services) - ein ganz grosses Dankeschön!!!

Multi IE Installer

Bei diesem Muti-Installer kann man auswählen, verschiedene IE-Versionen zu installieren; hier werden aber, bedingt durch einen entsprechenden Eingriff des Prorammierers, die entsprechenden conditional comments für die jeweilige Version berücksichtigt (diese IE-Versionen schauen nicht in der Registry nach) - gewöhnlich reicht IE5, IE5.5 und IE6, während man den IE7 (oder IE8) ganz normal mit dem Windows-Setup installierte: http://tredosoft.com/Multiple_IE 

Die Seite ist in englisch. Der Gebrauch ist ganz einfach. Installation kein Problem, sofern man das Windows XP Betriebssystem benutzt (Eula-Lizenz beachten: man darf nur Microsoft-Produkte installieren, wenn man ein Microsoft bzw. Windows Betriebssystem verwendet, auf das installiert wird): 

1.) Zunächst installiert man einfach die IE7 Version oder IE8 Version, wenn man das noch nicht getan hat. Nötig ist dies nicht, um die IE-Versionen des Installers zum Laufen zu bringen, es könnte aber bei nachträglicher Installation des IE7 ider IE8 sonst etwas durcheinandergeraten.

2.) Dann installiert man den Multiple IE Installer, der dort auf der Seite verlinkt ist (siehe oben). Fertig.

Diese IE-Versionen sind so eingerichtet, dass die conditional comments bezüglich einer jeden entsprechenden IE-Version beachtet werden! 

Nach jeder neu installierten IE Version (über das Windows Setup), muss der Multi-Installer entfernt und neu installiert werden.

Auch hier gilt:

Eine Super Leistung des Programmiers auf dieser Seite (bei Tredosoft) - ein ganz grosses Dankeschön!!!

Auf diese Weise kann man nun ganz easy und entspannt für IE5, IE6, und auch IE7 hinarbeiten (den IE7 hat man ja als normale Installation auf seinem Windows-Betriebssystem). 

Den IE4 braucht man nicht installieren - ich habe in meiner Webseitenstatistik (bei 100 Besuchern pro Tag) zumindest keinen einzigen IE4-Nutzer als Besucher gehabt. Die Windows Version, um mit IE4 zu browsen, ist so weit ich weiss noch aus der Zeit der Disketten-Installationen!

Das Ausgangsproblem der Standalones

Bei evolt.org kann man sich ja verschiedene alte IE-Versionen (auch alte Opera oder Netscape-Versionen) als standalone downloaden, das heisst als Testbrowser starten. 

Für alle nicht-standalones, also herkömmlichen Installationen des IE gilt: Es ist so, dass Windows betreffend der Installation eines Internet Explorers bestimmte Einträge in der Registry vornimmt.Das betrifft nur jene IE-Version, die ich auf gewöhnlichem Wege installiert habe, also meist wird es sich dabei um den IE7 handeln oder IE8.

Das Problem: Wenn ich den IE 6 und IE 5 als standalone betreibe, neben dem IE7, den ich als aktuellste Version installiert habe, dann wird der entsprechende conditional comment einer Webseite auf meinem Computer nur in Bezug zum IE7 verstanden: also wenn ich den IE6 als standalone starte und für ihn ein conditional comment gesetzt habe, verhält sich der IE6 so, als wäre er "der IE7" (je nach dem, was ich offiziell für eine IE-Version installiert habe). Denn jede IE-Version schaut in der Registry nach, was er eigentlich sein soll! Total plemplem. Aber so ist Microsoft. Der normal installierte IE 7 oder IE8, den man übrigens nicht als standalone nutzen kann, schreibt also in die registry, was sein soll. Und der IE 6 als standalone ebenso wie IE5 oder IE5.5 schaut genau dort nach.

So könnte ich bei einem installierten IE7 meine Webseiten gar nicht mit anderen, alten Versionen des IE testen. Dasselbe gilt für den IE8.

Keine Panik!!

Multi-installer und IE-Tester bieten die Lösungen. 

Wer den Internet Explorer hasst, weil er von M$ ist (M$=umgangssprachlich für Microsoft), der sollte sich Linux anschauen, dann wird er Windows und damit sicher auch manche Allüren bei Microsoft "lieben" lernen. Immerhin verheisst der Internet Explorer 8 einige Zufriedenheit für Webdesigner und die Geschichte des IE 6 geht immer mehr zu Ende.

Weitere Informationen zu den einfachen standalones(auch von Opera oder Netscape) habe ich in meinem html und CSS-Tutorial beschrieben. 
Problematisch ist freilich der IE8 zum Testen, den man aber mit obigen IE-Tester durchtesten kann.

Conditional comment ist einfach <!--[if IE]><![endif]-->

Das conditional comment beruht wirklich auf ganz einfacher Grammatik des html. Und es ist einfacher zu handhaben, als die Browserhacks.

Was ist denn html eigentlich?
Hat man erst mal mit einer Anweisung in Form eines tags angefangen, wird eine Folge erwartet, also bis dass es einen weiteren Befehl gibt, so dass die Anweisung geschlossen wird.
Jeweils Anfang und Ende der Anweisung wird in englischer Sprache als "tag" verstanden.

<!-- Test Kommentar: hier vieles Mögliche -->

Das Zeichen <!-- öffnet den Kommentar und --> schließt den Kommentar. Das heisst, es kann alles mögliche innerhalb dieses Kommentars stehen, bis auf die zeichenfolge -->, denn die würde den Kommentar schliessen.

Ein Kommentar wird normalerweise vom Browser ignoriert!

Conditional comments - die Erklärung

Die folgenden Zeilen:

<!--[if IE 6]>
<style type="text/css">
div { padding-left: 10px; }
</style>
<![endif]-->

bedeuten, dass nur der IE 6 den Bereich zwischen den Kommentar-Anweisungen interpretiert! Der IE versteht [if IE] als Anweisung, also sozusagen als tag.

Das einzelne Zeichen > nach <!--[ if IE]> ist nicht gleich -->, das heisst das Zeichen > wird den Bereich des Kommentars nicht schliessen (Endtag). Das geschieht erst nach <![endif]-->. Der IE versteht letzten gesamten tag zugleich als Endtag jener Anweisungen, die nur für ihn gelten. 

Das schliessende Endtag für den Kommentar ist --> und nicht allein >

So steht der Bereich, der für den IE gelten soll, unsichtbar für andere Browser, bzw. sie interpretieren den Bereich als ganz normalen Kommentar.

Nur der IE versteht in der Reihenfolge dieser Anweisungen die jeweiligen Zeichen. 

Im folgenden ein Link zu einer Seite von Microsoft, auf der die Befehle noch mal genauer erklärt werden (auf englisch):

http://msdn2.microsoft.com/en-us/library/ms537512.aspx

Wichtig ist die Beachtung von Klein- und Großschreibung, nur das IE wird gross geschrieben. Ebenso wichtig die übrige Syntax, zB das Ausrufezeichen bei <![endif]-->, sowie bei <!--[if IE 7]> das Leerzeichen vor und nach dem IE. Wenn ein lt oder lte usw. dazwischen steht, so steht das direkt nach dem if, und hat neben sich Leerzeichen: <!--[if lt IE 7]>

Mögliche Fehler (funktioniert nicht?)

<!--[if IE]> funktioniert nicht? 

Zunächst mal muss man überlegen, ob man vielleicht mit einem standalone testet und gleichzeitig eine neuere IE-Version installiert hat (siehe oben).

Wenn man auf der Webseite das conditional comment, das man im Head- oder Body-Bereich gesetzt hat, angezeigt bekommt, ist das ein sicherer Hinweis, dass die Syntax des conditional comment falsch ist
(zB fälschlich: <!--[if IE lt 7]>
statt richtigerweise: <!--[if lt IE 7]>). 

Vielleicht hat man auch eine CSS-style-Anweisung geben wollen, und vergaß die Anweisungen mit <style type> usw. zu kennzeichnen.

Fazit

Mit conditional comments kann der Webdesigner sich auf gewisse Fehler des IE einrichten.

Das ist die korrekte Lösung für den IE: denn es ist sauberes und korrektes (valides) Skript, weil die komplette Anweisung<!-- von modernen Browsern als Kommentar verstanden wird, bis das --> den Kommentar abschliesst.

Den Firefox Browser nehme ich grundsätzlich, radikal,  rigoros und absolut als Standard! Das ist der beste Browser. Das sagen alle, und sie haben alle Recht!
http://www.mozilla-europe.org/de/firefox/

Aber auch Opera sollte man ein Lob aussprechen! Die aktuellen Opera Versionen haben sich ebenso bewährt wie Firefox. 

Ich überprüfe stets mögliche Fehler des IE6, IE7 oder IE8, gelegentlich auch beim IE5. 
Man muss sich freilich überlegen, wieviel Augenmerk man auf jede Kleinigkeit legt, oder man nur das gröbste durchgeht. Man stelle sich vor, dass wir ja alle zwei oder drei Jahre etwa mit einer neuen IE-Version bedient werden, die bisher ja nicht erwarten liessen, dass es besser wird - und mit jeder Version werden wir zu einer neuen Testreihe gezwungen.

Browsen tue ich nur mit Firefox, der mir auch als Referenz auf den CSS-Standard dient (man weiss ohne Browser ja kaum, wie der CSS-Standard aussehen bzw. richtig verstanden werden sollte). Mit dem Opera und auch dem Verstand, kann man dann sicher sein, wenn der Opera dann die Seite auch wie der Firefox anzeigt - und nur noch bei den IE-Versionen der Fehler bleibt.

Die Probleme des Internet Explorers sind bekannt:

Der IE5 und IE 5.5 versteht das für CSS wichtige Boxmodell falsch. Das sind die padding- und border-Diskrepanzen: padding und border werden vom Inhalt abgezogen statt hinzuaddiert. 
Und auch der IE 6 hat so seine zahlreichen Macken-, zB was float angeht und einige andere Positionierungsmethoden, die man in der Praxis regelmässig anwendet. 

Beim IE6 muss anscheinend ein <div> Container, in dem Text steht, mit width oder height definiert werden! Weil sonst der Text stellenweise (im Anzeigefenster des Browsers) tatsächlich verschwinden könnte.

Manchmal ist es beim IE bis Version 6 auch nötig, nicht die gesamte Fensterbreite einer Seite auszunutzen, sondern ein wenig Spielraum zu lassen (also nicht 100% sondern zB 95%), aus Gründen, die ich bislang noch nicht genau erkannt habe. Aber wenn Du eine Seite hast, bei der der IE "ausflippt" und zum Houdini-Künstler wird, und den Text verschwinden lässt, obwohl du width-Werte angegeben hast, aber gleichzeitig die volle Fensterbreite ausgenutzt wird: dann versuche einmal diesen Weg, und der Text ist vermutlich wieder da.

Das min-width funktioniert nicht beim IE bis einschliesslich Version 6. Ein wenn auch dürftiger Ersatz für min-width könnte mit conditional comments erreicht werden. Man weist dann dem Element eigens für Internet Explorer eine bestimmte Breite (oder Höhe) zu, was allerdings den Effekt hat, dass der IE das immer so versteht, und sich nicht auf die mögliche Größenänderung des Fensters bezieht, wie es ja Sinn von min-width oder min-height ist.

Der IE 7 versteht auch noch nicht alles richtig, und auch beim IE8 habe ich einige Schwierigkeiten mit komplexen Navigationsmenüs festgestellt, was aber bei Opera und Firefox alles wunderbar funktioniert (und auch schon bei Firefox 2.0).

Der IE5 wird standardmässig mit Win98 installiert und der IE7 kann von Win98 nicht installiert werden. 
Allenfalls der IE6 kann mit Win 98 installiert werden. Aber viele Win98 Anwender tun das nicht. Es gibt aber weitaus mehr XP-Nutzer, die noch nicht auf IE7 oder IE 8 aufgerüstet haben. Und browsen daher noch mit IE6, der standardmässig mit XP installiert wird.

Das Boxmodell war seinerzeit,  als der IE5 entwickelt wurde, noch nicht verbreiteter Standard, und Microsoft interpretierte das Boxmodell aus eigenen Erwägungen heraus. Es ergibt durchaus Sinn, so vorzugehen, wie der IE5 es tut, doch der Standard ist jetzt einmal anders, und deshalb ist der IE5 falsch im Boxmodell.

Mehr zum Boxmodell: http://www.communitymx.com/content/article (Englisch)

Was ist mit dem IE8?

Den kann man bereits als Release-Version runterladen. Überzeugen kann er mich nicht. Man vergleiche das Seitenscrolling von ihm mit dem von Firefox. Und ich frage mich auch, warum die Webseiten beim IE generell immer noch verhältnismässig grösser oder dichter angezeigt werden, als wie bei Opera und Firefox? Die Schrift erscheint beim IE fetter. Das ist schon ein Makel, weil damit die Webseiten nicht auf jedem Computer dieselben optischen Erscheinungswerte bekommen. Eine Schrift wird bewusst in einer bestimmten Größe oder Dichte gesetzt, und der IE macht alles grösser. Ich werde das in Zukunft auf meinen Seiten berücksichtigen und die Schrift für den IE kleiner machen - muss mir aber davor einige Vergleiche ansehen, bei Computern von Freunden (vielleicht ist es ja nur auf meinem Monitor oder Computer so? - schwer vorstellbar) .

Bald kommt auch html 5 und es scheint, als würde sich die Geschichte (bei Microsoft) wiederholen, da der IE8 gewisse Interpretationen vorweg nimmt, bevor der Standard html 5 veröffentlicht ist. So ähnlich war es bereits beim IE5 und IE6. 

Nun, der IE8 soll einen sogenannten Kompatibilitätsmodus aufweisen, so dass man einen "Knopf" drücken kann, um seine Seiten auch aus der Sicht des IE 7 anzusehen. Eine fragwürdige Option: Würden die Nutzer sich nicht erst recht jetzt fragen, warum sie erst noch einen Knopf drücken müssen, um die Webseiten richtig anzeigen zu lassen? Meiner Meinung nach ein unbewusster Begleiteffekt des Knopfes, der das Zweifeln am Internet Explorer anregt: der Knopf zeigt jetzt, was da beim IE lange Zeit im Argen lag - und ich halte es für eine Mär, dass sich die überwiegende Anzahl der Webdesigner dazu hat hinreissen lassen, in der Vergangenheit ausschliesslich auf den IE7 hin zu gestalten (das war wohl der grosse Traum von Microsoft seit Anfang an). Und das sollte der Sinn dieses Knopfes sein.

Man kann annehmen oder auch nicht, dass der IE8 nun endlich standardkonform werden sollte. Wenigstens konnte ich auf meiner Hauptseite eine Art Unsicherheit des IE7 und auch noch des IE8 feststellen, manchmal zeigt er nämlich das Navigationsmenü falsch an. Sehr merkwürdiges Verhalten.

Nun kam Microsoft auch noch mit dem Gedanken, mittels eines doctype-Switch in <meta>-tag Form Webseiten für den IE 8 abwärtskompatibel zu machen.

Das soll im Klartext heissen, viele Webseiten sind für die Fehler des IE 7 gestaltet worden - und um es zu erlauben, dass der IE 8 diese Seiten richtig anzeigt, kann man die Maschine (Browser) zwingen, die Seite so anzuzeigen, wie sie der IE 7 anzeigt. 

Das wäre nun nicht wie beim conditional comment, wo etwas "richtig gestellt" wird, sondern im Grunde vernachlässigt man hier den Standard. 
Man begeht bei Microsoft denselben Makel, wie damals beim IE6 (doctype switch). Die Lösung ist jedenfalls nicht astrein, - sondern Beleg für die Hilflosigkeit, und wo Kreativität der Problemlösung mit heilloser Inspiration verwechselt wird.

Wenigstens stellt man sicher, dass der Webdesigner die  Freiheit hat, den meta-Tag auch weg zu lassen.

Meine Meinung zum IE8: Conditional comments werden wohl auch zukünftig wichtig bleiben.

Weitere Informationen zu den conditional comments gibt es bei self.html. Dort wird übrigens (auf der unten verlinkten Seite) empfohlen, nicht allzu sehr zwischen den verschiedenen Browsern zu unterscheiden. 

Doch so wie es zur Zeit dort formuliert wird, halte ich diese Empfehlung für wenig praxistauglich. Wenn die IE Version Nummer 6 auch das Boxmodell versteht, dann stellt er zumindest noch einige andere Dinge falsch dar - zum Beispiel gibt es bei "floatenden Elementen" und anderen CSS-Darstellungen immer noch Tücken beim IE6. Ausserdem gibt es immer noch gelegentlich IE5 Nutzer.

Weitere Einzelheiten zu conditional comments bei self.html: http://de.selfhtml.org/...browserweichen.htm#alternative

Verbreitung der verschiedenen Browser im Web

Eine Liste der benutzten Browser und Auflösungen aus meiner eigenen Homepagestatistik: ../img/statistik.png(Stand: Dezember 2008). 

Internet Explorer Nutzer insgesamt: 8332.
Firefox Nutzer insgesamt: 5807. 

Man sieht, wie gross der Stellenwert der Internet Explorer noch ist, was sich auch mit anderen Statistiken (W3c.org) deckt. Es ist aber ein Trend zu erkennen: Der Firefox schliesst auf! Das ist für Webdesigner ein gutes Zeichen. 

Zu den bekannten Bugs der verschiedenen Browser ist folgende Seite aufschlussreich (in englischer Sprache):

http://www.gtalbot.org/BrowserBugsSection/

Es bleibt fraglich, ob der Internet Explorer in seiner 8. Version bisherige Firefox Nutzer zurückholen kann - viel wahrscheinlicher ist, dass er seine Klientel von den bisherigen IE7 Nutzern bekommt. Und der Trend hin zu Firefox, aber - beachtenswert - auch zu Google Chrome   unvermindert weiter geht. Solange der IE sich als Sicherheitsrisiko erweist, und von der Vergangenheit nicht wirklich los kommt, ist das für viele Nutzer eine echte Motivation.

Ich lade mittels conditional comments die Besucher meiner Hauptseite ein, auf Firefox umzusteigen, und zwar durch einen entsprechenden Link zur Mozilla Seite: "Download des Firefox".
Ich habe es einfach satt mit dem Internet Explorer und möchte mithelfen, dass standardkonforme Browser im Web vertreten sind, und die Herausforderungen für den Webdesigner geringer werden.

Meiner Meinung nach sollte so ein solcher Link zwar gut sichtbar sein, aber auch nicht aufdringlich. Niemand lässt sich dazu nötigen, etwas zu tun, wozu er nicht von selbst schon Lust oder Interesse hat. 
Aber man kann es einem erleichtern - ich erinnere mich noch an meine Anfänge der Internetzeit anno 2000, dass ich einfach zu bequem war nach einem alternativen Browser extra zu suchen.
Wichtig ist es natürlich auch, ein conditonal comment zu benutzen, und in diesem den Link einzuschliessen - weil die meisten anderen Browser standardkonform sind (siehe Browser-Statistik) und man einen Nutzer von Firefox nicht anbieten braucht, einen Firefox runterzuladen.

Überlege dir, ebenalls einen solchen Link zu Opera oder Firefox irgendwo auf deiner Hauptseite anzubringen! Das wird bereits einige Male auch von anderen so getan - man kann es nur begrüßen, dass besonders die Webdesigner, eine indirekte Empfehlung bezüglich eines zu wählenden Browsers aussprechen. Wie erwähnt, sehen nur IE-Nutzer diesen Link. 
So können auch wir dazu beitragen, die Einhaltung von Standards für moderne Webseiten populär zu machen.

Übrigens: Die Statistik-Funktion meiner Homepage kommt von php-web-statistik. Es ist ein sehr guter Service. Bei html-Seiten in der Transitional Variante ist der Code, den man auf seinen Hauptseiten integriert, valides Skript.
Es gibt regelmässig Neuerungen der Webstatistik, deren Updates man ziemlich einfach bewerkstelligen kann. 

nach oben
Dezember 2008
Stefan Arens