Wie auch XML muss man bei XHTML sehr auf strenge Regeln achten.
In diesem Artikel wird geklärt, welche Regeln dies sind, und
auf welche XHTML Elemente diese zutreffen.
XHTML ist der Zwischenschritt von HTML zu XML. Das bedeutet in
einer Hinsicht ein Fortschritt für das ganze Internet. Weg
von den laschen Regeln, und der falschen Interpretation von HTML
Code durch die Browser, soll es mit XHTML in Zukunft nur noch sogenannte
"Wohlgeformte" Dokumente geben.
Damit erweisen Sie vielen einen Dienst. Suchmaschinen müssen
nicht mehr ellenlangen falschen Code durcharbeiten, Ladezeiten können
vermindert werden, und Sie gestalten ihre Webseite um einiges mehr
behindertengerecht.
Ein XHTML Dokument muss also Wohlgeformt sein, d.h. Sie müssen
sich an die XHTML Syntax-Regeln halten, die auch zum größten
Teil auf XML übertragbar sind.
1. Tag-Reihenfolge
Die Tags müssen in XHTML, und auch in XML in einer logischen
Anordnung verwendet werden.
Folgendes Beispiel zeigt, was bisher jeder Browser korrekt interpretiert
hat.
<p><b>
Text
</p></b>
Eine solche Syntax ist jedoch nicht XML Konform. Die Tags müssen
in ihrer hirarchischen Form geöffnet und geschlossen werden.
Richtig wäre folgendes Beispiel:
<p><b>
Text
</b></p>
2. Übergeordnete Tags
In XHTML wird zudem auf übergeordnete Tags Wert gelegt. Es
darf folglich kein untergeordneter Tag einen übergeordneten
Umschließen.
<b><p>
Text
</p></b>
Diese Anwendung ist falsch, da <p> ein übergeordneter
Tag im Vergleich zu <b> ist. Richtig müsste das ganze
folglich so aussehen:
<p><b>
Text
</b></p>
3. Zeilenumbrüche und Leerzeichen
Innerhalb von Elementen und Attributen sollten Zeilenumbrüche
und (zu viele) Leerzeichen vermieden werden.
<p align="
center">
Zentrierter Text
</p
>
Besser ist es so:
<p align="center">
Zentrierter Text
</p>
4. Anfangs und End-Tags
Alle Elemente müssen einen Anfang und einen End-Tag haben.
Jedes Element muss geschlossen werden. Bisher haben die Browser
z.B. folgenden Code noch als korrekt dargestellt:
<p>Text
<p>Text
In XHTML ist dies nicht möglich. Damit das Dokument wohlgeformt
und gültig ist, müssen die <p> Tags wieder geschlossen
werden.
Tags, die kein schließendes Element haben, wie z.B. der img-Tag
müssen wie folgt geschlossen werden:
<img src="bild.gif" alt="Alternativ"
/>
Dies gilt für folgende Tags:
<area />
<base />
<br />
<col />
<frame />
<img />
<input />
<isindex />
<link />
<meta />
<param />
Das Leerzeichen zwischen dem Tag, und der schließenden Klammer
wird grundsätzlich nicht benötigt. Damit jedoch auch noch
ältere Browser den XHTML Code korrekt verstehen, sollte auf
das Leerzeichen nicht verzichtet werden.
5. Groß-, Kleinschreibung
XHTML, wie auch XML unterscheidet zwischen Groß- und Kleinschreibung.
Ein Tag <P> ist nicht der gleiche wie <p>. Man kann
also auch nicht <p> mit </P> schließen. Grundsätzlich
gilt für XHTML alle Attribute und Elemente in Kleinbuchstaben
zu schreiben.
Alle Attributwerte müssen in " "
stehen.
Auf diese konnte man in "normalen" HTML ohne Probleme
verzichten.
Die Unterscheidung von Groß-, Kleinschreibung muss ebenfalls
auf CSS übertragen werden. Definiert man so z.B. das Style
des Tags P, dann wird dieses Style nicht auf den Tag <p> angewendet.
Nach einer Empfehlung des W3C sollten die CSS Styles in einem korrekten
Baum geschrieben werden. D.h. zunächst die einzelnen Elemente,
am besten in ihrer Reihenfolge im XHTML Dokument, und dann die einzelnen
CSS Klassen.
Jede CSS Definition sollte in einer eigenen Zeile stehen.
6. Kurzschreibweise von Attributen
Bisher konnte man bei Tags verschiedene Attribute in vereinfachter
Weise angeben. So ist folgendes Beispiel unter XHTML nicht mehr
gültig:
<h1 noshade>
Unter XHTML muss dieses Attribut jetzt wie folgt angegben werden:
<h1 noshade="noshade" />
Betroffen sind folgende Attribute:
checked
compact
declare
defer
disabled
ismap
multiple
noresize
noshade
nowrap
readonly
selected
7. Pflichtattribute
Neu Hinzugekommen ist auch, das man einige Tags mit Pflichattributen
versehen muss. So ist für den <img /> Tag z.B. das alt-Attribut
Pflicht geworden.
<img src="bild.gif" alt="alternativ" />
Für den <table> Tag ist das Attribut summary=""
Pflicht. Der Wert dieses Attributes kann aber auch leer bleiben.
<table width="100" height="100" border="0"
summary="">
..
</table>
Neu ist ebenfalls, das man bei dem <script> Tag, und bei dem
<style> Tag, diese mit dem type="" Attribut versehen
muss. Dieser gibt an, welchen Inhaltstyp der jeweilige Code hat.
<script type="text/javascript">
...
</script>
Bei Stylesheets:
<style type="text/css">
...
</style>
8. Das name-Attribut
Sprungmarken:
Sprungmarken müssen in XHTML nun anders definiert werden. Anstatt
des name-Attributes, muss das id-Attribut gesetzt werden.
<a id="sprungmarke"></a>
Damit das ganze auch bei älteren Browsern noch funktioniert,
kann man sowohl das name-Attribut, als auch das id-Attribut verwenden.
<a id="sprungmarke" name="sprungmarke"></a>
Für neue Versionen von XHTML fällt das name-Attribut jedoch
komplett weg. Hiervon sind folgende Tags betroffen:
<a>
<applet>
<form>
<frame>
<iframe>
<img>
<map>
9. Formatierungen
Mit XHTML versucht das W3C auch die Position von CSS um einiges
zu stärken. So sollen in Zukunft Attribute, die Elemente formatieren
verschwinden. Diese Aufgabe soll von CSS erledigt werden.
10. Nicht-unterstützte Tags
XHTML hat auch einen kleinen Radikalschlag gemacht. So werden in
XHTML einige Tags nicht mehr unterstützt (dies sind meist Eigententwicklungen
der Browserhersteller).
<basefont>
<center>
<dir>
<font>
<hr>
<listing>
<menu>
<plaintext>
<s>
<strike>
<u>
<xmp>
11. Ungültige Tag-Verschachtlungen
In XHTML darf man in Zukunft gewissen Tags nicht mehr ineinander
verschachteln. So dürfen im <pre> Tag folgende Tags nicht
mehr verwendet werden:
pre-Tag
<big>
<img>
<object>
<small>
<sub>
<sup>
Ähnliches gilt auch für den HTML 4 – <button> Tag.
button-Tag
<fieldset>
<form>
<iframe>
<input>
<isindex>
<label>
<select>
<textarea>
Zudem dürfen in <a></a> Link-Bereichen keine weiteren
<a></a> Bereiche definiert sein (macht ja auch keinen
Sinn).
Für die Zukunft gilt – Regeln für ein besseres Internet.
Die Quellcodes von vielen Internetseiten werden in Zukunft wohl
um einiges sauberer. Und dadurch wird ein guter, und einfacher Übergang
zu XML geschaffen.
XHTML ist kein unbedachter "Fehlentwurf" des W3Cs um irgendwelche
Webdesigner zu schröpfen, und in ihrer Freiheit einzuschränken,
nein XHTML gibt neue Möglichkeiten durch XML.