XHTML 1.0 Strict

16.01.2004 Kurz nachdem ich vor vier Tagen auf einer Testseite das Tabellen-Layout durch CSS-Layer ersetzt hatte, habe ich begonnen, weitere Seiten meiner Webnotizen umzubauen. Quasi in einem Abwasch schreibe ich diese dann zugleich auch von HTML 4.01 transitional auf XHTML 1.0 strict um (mit Ausnahme einer Seite, auf der ich einen iframe verwende, und die infolgedessen nur als XHTML 1.0 transitional validiert).

Im folgenden führe ich die wichtigsten Änderungen auf, die hierzu notwendig sind:

1. Doctype Angabe für XHTML 1.0 Strict

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">

2. Einleitendes html-Tag mit xmlns- und lang-Attribut

<html xmlns="http://www.w3.org/1999/xhtml" lang="de">

3. Auch Elemente ohne Abschluss-Tag müssen geschlossen werden

<meta name="author" content="J&ouml;rg Kruse" />

<br />

4. Keine leeren Attribute mehr

<hr noshade="noshade" />

5. Als Attribut für Anker id statt name

<p><a id="anker1">Ankertext</a></p>

Um den Anforderungen der Variante strict von XHTML zu genügen, dürfen zudem keine target-Attribute im Quelltext vorkommen. Diese hatte ich bereits letztes Jahr entfernt, siehe Webnotiz Welches Fenster hätten Sie denn gern?.

Alles in allem gesehen, empfinde ich die Umstellung auf XHTML nicht als besonders schwierig, was sicher aber auch damit zusammenhängt, dass meine Seiten vorher schon sauber codiert waren und ich weitgehend auf deprecated Elemente und Attribute verzichtet hatte. Im Vergleich dazu ist das Erstellen des Layouts mit CSS-Layern um einiges aufwendiger, und ich bin schon froh, dass die Seiten in meinen Test-Browsern am Ende nur kleine Anzeige-Fehler hervorrufen (Opera und der Internet Explorer rechnen im Gegensatz zu Mozilla die Breiten einzelner Layer nicht richtig zusammen, wodurch der eine in bestimmten Fenstergrößen eine pixelbreite Lücke, der andere einen pixelbreiten Überhang produziert). Diese kleinen Fehler werde ich aber tollerieren und werde in den nächsten Tagen die überarbeiteten Seiten hochladen. Ältere Webnotizen und Kommentar-Seiten werde ich nicht ändern - ich finde es nicht verkehrt, wenn die verschiedenen Entwicklungsstufen dieser Site erhalten bleiben.

PS: Ich hätte nicht gedacht, dass die Doctype Declaration Auswirkungen auf das Layout hat. Die Testseite für die CSS-Layer hatte ich noch in HTML 4.01 transitional erstellt. Bei allen weiteren Seiten, die ich in XHTML nach ihrem Muster bearbeitete, war die Titelleiste eineindrittel mal so hoch wie bei der Testseite. Es brauchte einige Zeit, bis ich den Grund hierfür herausfand: das XHTML Doctype bewirkte, dass die Browser in einen anderen Anzeige-Modus wechselten - vom Kompatibilitäts-Modus (Quirks) in den standardkonformen Modus.