molily: Anfängerfrgae zu xhtml-Datei

Beitrag lesen

Oje, jetzt kenn ich mich gar nicht mehr aus. Ich hab das so geschrieben weil es auf

http://selfhtml.teamone.de/html/xhtml/unterschiede.htm

szeht, daß man es so tun soll. Irgend wie blick ich jetzt nicht mehr durch. Und wenn ich Dich auch fragen darf :

Bei meinen html-Dateien hab ich ja immer ein

<meta http-equiv="content-type" content="text/html; charset=ISO-8859-1">

im head-Bereich gehabt. Auf Grund der selfhtml Seiten ist mir noch nicht ganz klar... soll ich das auch weiterhin verwenden? Oder weglassen? Oder statt dem "text/html" was anderes nehmen?

In »echten« XHTML-Dokumenten, die nur als XHTML (application/xhtml+xml) verarbeitet werden, ist diese meta-Angabe tatsächlich nicht wichtig. In XML-Dokumenten und damit auch in XHMTL-Dokumenten wird die Kodierung über encoding="..." in der XML-Deklaration angegeben. Das Äquivalent wäre also <?xml version="1.0" encoding="ISO-8859-1" ?>.

Da du deine XHTML-Seiten aber sowieso als text/html auslieferst, gelten die Regeln von HTML 4.0, wenden die Browser die HTML 4-Regeln an, um die Zeichenkodierung des Dokuments in Erfahrung zu bringen. Und da spielt das obige meta-Element weiterhin eine Rolle, speziell die Angabe »charset=...«, du es also weiterhin angeben (in XML-Syntax als Element ohne End-Tag <meta ... />).

Im Grunde ist es vorgesehen, dass »HTML-kompatible« XHTML-Dokumente gleichzeitig als HTML als auch als XHTML (XML) verarbeitet werden können, daher empfiehlt sich, die Kodierung doppelt, wenn nicht dreifach (zusätzlich im HTTP-Kopf), anzugeben. Das ist auch prinzipiell möglich, die XML-Deklaration wird von den meisten HTML-Browsern ignoriert.

Allerdings macht der MSIE 6 (und Opera 7) an den ersten paar Zeilen eines Dokuments, speziell am <!DOCTYPE ...>, fest, welches CSS-Boxmodell er verwendet. Dies nennt sich »Doctype Switch«. Das Boxmodell sagt ihm, wie bestimmte CSS-Eigenschaften auf die Elementboxen angewendet werden (Diagramm dazu http://msdn.microsoft.com/library/en-us/dnie60/html/boxdim.gif). Bei Dokumenttyp-Angaben wie HTML 4.01 Strict und XHTML 1.0 schaltet er in den standardkonformen Modus und verwendet das offizielle CSS-Boxmodell. Bei fehlender Angabe, alten Versionen oder kurzen DOCTYPEs benutzt er weiterhin das unterschiedliche Boxmodell von MSIE 4 bis 5.x.
Das Problem ist nun, dass er aufgrund der XML-Deklaration das Dokument für nicht an den Standards angelehnt hält und das alte Boxmodell anwendet. Wenn du also viel mit CSS und den fraglichen Eigenschaften wie width und padding arbeitest, macht das einen Unterschied in der Darstellung, daher lassen viele die XML-Deklaration weg.