Microsoft passt den neuen IE8 dem Webstandard an

06.03.2008, Blog

internet explorerLange hat's gedauert, bis sich Microsoft endlich dem Web Standard anpasst.

 

Bis jetzt musste man eine Website meistens für 2 verschiedene Browser programmieren. Einmal für die Browser, welche den Standard des World-Wide-Web-Konsortium anwandten und dann eben für den Internet Explorer 6 und 7.

Anstatt, dass sich der IE (Internet Explorer) von Microsoft nach den allgemein gültigen Standards richtete, nahm sich Microsoft die „Freiheit/Frechheit“ einen etwas anderen Browser zu programmieren.

Für 2 verschiedene Browser zu programmieren war bis jetzt sehr aufwändig und kostete dem entsprechend Geld.

Hier ein Beispiel mit dem IE7 Browser:

Eines der immer wieder kehrenden Probleme ist , dass eine Box, der ich eine Breite von 500px und einen Rahmen von jeweils 1px rechts und links gebe, insgesamt 502px breit sein sollte.

Der IE stellt trotzdem nur 500 da und zieht stattdessen den Rahmen ab, so dass der Inhaltsbereich nur noch 498px beträgt. (klingt jetzt nicht so dramatisch, aber ist auch nur ein einfaches Beispiel).

Das ganze nennt sich "Internet Explorer box model bug" und ist ziemlich berühmt.

Lösung: ich sage dem IE explizit, dass seine Box 502px hat. Wo sage ich das: in diesem Fall in einer seperaten CSS Datei, die zum Beispiel den Namen ie.css trägt. Damit nun der Firefox nicht darüber stolpert, kommt diese Anweisung ins Spiel:

<!--[if IE]>
<style type="text/css">@import url(ie.css);</style>
<![endif]-->

Das läuft unter dem Schlagwort Alternative CSS-Dateien für den Internet Explorer (Conditional Comments)

Dann gibt es noch die sog. CSS-Hacks, die darauf setzen, dass der ein oder andere Browser mit CSS nicht so richtig klar kommt, zum Beispiel so:

#MeineBox  {
  width: 502px;      /* Deklaration fuer IE 5.x */

  voice-family:"\"}\"";  /* ab hier ignoriert IE 5.x nachfolgende
Deklarationen */
  voice-family:inherit;
  width: 500px;      /* Korrektur fuer andere Browser */
}

Mehr gibt es dazu hier:
http://de.selfhtml.org/css/layouts/browserweichen.htm#alternative

Grob lässt sich sagen, dass es besser ist, auf Hacks gänzlich zu verichten, weil man nie genau weiss, wie vor allem zukünftige Browser darauf reagieren.

Die Lösung mit dem Conditional Comment <!--[if IE]> ist da die eindeutig bessere und macht nebenbei den Code auch übersichtlicher, weil man so genau weiss, wo was steht.

Leider hatte der IE vor einigen Jahren noch nicht so viel Konkurrenz und konnte sich das leisten. Mit dem Aufkommen des Firefox Browsers hat sich das zum Glück geändert.

Die unbefriedigende Situation mit zwei verschiedenen Browsern soll sich mit dem Internet Explorer 8 ändern. Allerdings dauert es noch bis ca. 2009. :(

PDF Dokumente einfach erstellen

Unterseekabel Schaden: Panne oder Sabotage?

Kann Microsoft Yahoo wirklich übernehmen?



 
blogoscoop