molily: max- min-width workaround kombination

Beitrag lesen

xhtml 1.1 verwende ich so oder so, also ist er eh im Quirksmode.

Nur, wenn eine XML-Deklaration am Dokumentanfang steht. Eine XHTML 1.1-Dokumenttyp-Deklaration alleine am Dokumentanfang löst den standardkonformen Rendermodus aus. Die Deklaration ist unnötig, solange du das Dokument sowieso nur als text/html auslieferst, was bei XHTML 1.1 enig Sinn hat, da XHTML 1.1 strukturell nicht HTML-kompatible sein kann.

Was meinst Du damit, soll ich die xml-Deklaration einfach weglassen?

Das kann du, nur musst du dir im Klaren sein, dass das XHTML, dass du schreibst, nicht zukunftssicher ist. Die XML-Deklaration hat ihren Sinn, wenn das Dokument wirklich als XHTML (Medientyp application/xhtml+xml, Dateiendung in der Regel .xhtml) und nicht als HTML (Medientyp text/html, Dateiendung in der Regel .html) verarbeitet wird. Der wirkliche Vorteil von XHTML ist erst bei dieser Verarbeitungsweise ausgeschöpft. Die XML-Deklaration ist in diesem Fall wichtig, wenn dem Browser über HTTP keine Zeichenkodierung mitgeteilt wurde beziehungsweise das Dokument lokal gespeichert wird oder ähnlich:

<?xml version="1.0" encoding="ISO-8859-1" ?>
                    ^^^^^^^^^^^^^^^^^^^^^
Wenn diese XML-Deklaration fehlt, nimmt der Browser fälschlicherweise die Kodierung UTF-8 an und viele Zeichen (z.B. Umlaute) sehen vermurkst aus. Das trifft aber wie gesagt nur auf XHTML als application/xhtml+xml zu. Solange deine Dateien auf .html bzw. .php enden und du in deinen PHP-Scripten nicht bewusst einen anderen Content-Type-Header sendest, betrifft das die Seiten nicht (<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" /> sollten sie dabei unbedingt haben).

Oder überhaupt kein xhtml?

XHTML verkompliziert tatsächlich vieles. Wenn du es nicht unbedingt brauchst, mit der Syntax von HTM 4.01 ebenso vertraut bist und dich mit Problemen wie dem oben genannten nicht herumschlagen willst, kannst du auch HTML 4.01 Strict schreiben. Das kann letztlich genauso guter Code sein. Falls du letztlich XHTML schreibst, sollte es zumindest HTML-kompatibles XHTML 1.0 (http://www.w3.org/TR/xhtml1/#guidelines) und kein XHTML 1.1 sein.

Mein Dokumentkopf sieht so aus:
<?xml version="1.0" encoding="ISO-8859-1"?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="de">

Ja, durch die XML-Deklaration <?xml ... am Dokumentanfang schaltet der MSIE 6 (und Opera 7, der MSIE 6 nachmacht) in den Quirks-Modus und wendet das »alte« CSS-Boxmodell von MSIE 4-5 an. Wenn das Dokument direkt mit <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd"> beginnt, wird der standardkonforme Modus angeschaltet. Korrekturen für MSIE 5.x sind natürlich unabhängig davon ratsam, der kennt ja nur das alte Microsoft-Boxmodell, dazu siehe http://www.fabrice-pascal.de/artikel/ie5boxmodel/.