Der Martin: IE7 falsch, IE8 richtig, IE9 falsch!

Beitrag lesen

Hallo,

Dann habe ich die DOCTYPE-Zeile weggelassen und dann hat es korrekt funktioniert -
warum?

weil du den IE dann in den sogenannten Quirks Mode versetzt, in dem er sich nicht unbedingt an die Spezifikationen hält (soweit er das überhaupt tut), sondern im Wesentlichen versucht zu erraten, was der Autor gemeint haben könnte. Das *kann* richtig sein; sie Gefahr einer Fehlinterpretation ist aber groß. Deshalb ist von diesem Quirks Mode grundsätzlich abzuraten.

Was muss ich im obigen Beispiel angeben?

Es ist ganz klar nicht XHTML, die Option fällt also schon weg - auch wenn du die br-Elemente gelegentlich im XML-Stil schließt, was in HTML falsch ist. Falsch ist übrigens auch das Auskommentieren von style-Angaben mit HTML-Kommentaren. Strenggenommen lautet dein erster Selektor im Stylesheet nämlich "<!-- #right".
Das Dokument erfüllt die Regeln von HTML 4.01 Strict, kann also so gekennzeichnet werden.
Was in Strict valide ist, ist natürlich in Transitional erst recht valide.

Kennt Ihr eine umfangreichere (deutsche) Beschreibung, wann man welche Doctype-Angaben machen muss?

Nein, warum auch? Im DOCTYPE sollst du den einfach (X)HTML-Dialekt angeben, den du auch tatsächlich verwendest.

So long,
 Martin

--
Lieber blau machen, als sich schwarz ärgern.
Selfcode: fo:) ch:{ rl:| br:< n4:( ie:| mo:| va:) de:] zu:) fl:{ ss:) ls:µ js:(