| # HTML-Varianten
| HTML-Varianten Strict, Transitional und Frameset Nicht erlaubte Elemente und Attribute bei Variante Strict

## HTML-Varianten Strict, Transitional und Frameset

Damit eine HTML-Datei gültig ist, muss sie vollständig den Regeln entsprechen, die in der HTML-DTD (DTD = document type definition) festgelegt sind. Diese Regeln legen fest, welche Elemente verwendet werden dürfen, wie diese Elemente verschachtelt sein dürfen, welche Attribute zu welchen Elementen erlaubt sind, und welche Wertzuweisungen an diese Attribute erlaubt sind.

Nun gibt es in HTML 4.0 und auch in HTML 4.01 gleich drei HTML-DTDs. Es handelt sich um verschiedene Varianten.

### Variante Strict

Die Variante Strict ist die vom W3-Konsortium empfohlene und präferierte Variante. Sie zeichnet sich dadurch aus, dass sie nur sehr schlankes HTML erlaubt. Viele Elemente und Attribute zur Formatierung und Visualisierung von Texten fehlen in dieser Variante. Stattdessen sollen Web-Seiten-Autoren Stylesheets zur Formatierung verwenden.
Eine weitere Besonderheit der Strict-Variante ist, dass innerhalb von `<body>` und `</body>` alle Inhalte in Block-Elementen stehen müssen.
Die Variante Strict eignet sich vor allem für neu zu erstellende Web-Seiten, bei denen zur Formatierung konsequent auf CSS gesetzt wird.
Einzelheiten finden Sie weiter unten in der Übersicht der nicht erlaubten Elemente und Attribute bei Variante Strict.

Um die Variante Strict mit HTML 4.01 explizit zu verwenden, ist ganz zu Beginn einer HTML-Datei folgende Notation erforderlich:

`<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">`

### Variante Transitional

Die Variante Transitional ist ein Kompromiss, den das W3-Konsortium angesichts eigener Fehler der Vergangenheit (Definitionen aus der HTML-Version 3.2) und angesichts der hohen Verbreitung von Web-Seiten, die jene Features nutzen, anbietet. Die Variante Transitional erlaubt die Verwendung diverser Elemente und Attribute, die als deprecated (missbilligt) gekennzeichnet sind, und die in der Strict-Variante nicht mehr vorkommen. Darunter fallen so beliebte HTML-Elemente wie `font` oder häufig verwendete Attribute wie `align` oder `bgcolor`.
Bei der Transitional-Variante ist es auch erlaubt, direkt innerhalb von `<body>` und `</body>` einfach nur Text oder Inline-Elemente zu notieren.
Die Variante Transitional ist daher vor allem für bereits bestehende Web-Seiten zu empfehlen, die ohne allzugroßen Änderungsaufwand auf einen Stand gebracht werden sollen, der gültiges HTML 4.0 oder 4.01 darstellt.

Um die Variante Transitional in HTML 4.01 explizit zu verwenden, ist ganz zu Beginn einer HTML-Datei folgende Notation erforderlich:

`<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">`

Hinweis: Da sich in dieser Variante der Name der Variante und der Name der DTD unterscheiden, ist mitunter auch von einer "loose"-Variante die Rede. Damit ist die Transitional-Variante gemeint.

### Variante Frameset

Die Variante Frameset ist in HTML 4.01 identisch mit der Variante Transitional, mit dem einzigen Unterschied, dass die erforderliche Elementverschachtelung unterhalb des Wurzelelements `html` eine andere ist. Anstelle eines `body`-Elements ist in dieser Variante ein `frameset`-Element erforderlich.

Um die Variante Frameset explizit zu verwenden, ist ganz zu Beginn einer HTML-Datei folgende Notation erforderlich:

`<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Frameset//EN" "http://www.w3.org/TR/html4/frameset.dtd">`

## Nicht erlaubte Elemente und Attribute bei Variante Strict

Die folgende Tabelle listet auf, welche Elemente und Attribute in der Strict-Variante nicht vorkommen dürfen, weil sie entweder als deprecated (missbilligt) gekennzeichnet sind, oder weil sie zum Thema Frames gehören. Nur in der Transitional-Variante dürfen Elemente und Attribute verwendet werden, die deprecated sind. Frame-Definitionen dürfen nur in der Frameset-Variante verwendet werden.

Element | Attribut | Bemerkung
--- | --- | ---
a | target | Attribut ist deprecated.
applet |  | Element ist deprecated. Java-Applets sollen stattdessen mit dem object-Element eingebunden werden.
basefont |  | Element ist deprecated. Die Schriftformatierung kann mit Stylesheets zentral definiert und hierbei die Vererbung in verschachtelten HTML-Elementen genutzt werden.
body | alink | Attribut ist deprecated. Die Pseudoklassen für Verweise können mit Stylesheets definiert werden.
body | background | Attribut ist deprecated. Der Hintergrund kann mit Stylesheets definiert werden.
body | bgcolor | Attribut ist deprecated. Die Hintergrundfarbe kann mit Stylesheets definiert werden.
body | link | Attribut ist deprecated. Die Pseudoklassen für Verweise können mit Stylesheets definiert werden.
body | text | Attribut ist deprecated. Die Textfarbe kann mit Stylesheets definiert werden.
body | vlink | Attribut ist deprecated. Die Pseudoklassen für Verweise können mit Stylesheets definiert werden.
br | clear | Attribut ist deprecated. Die Fortsetzung bei Textumfluss kann mit Stylesheets definiert werden.
caption | align | Attribut ist deprecated. Die Tabellenüberschrift kann über die CSS-Eigenschaften caption-side und text-align ausgerichtet werden.
center |  | Element ist deprecated. Block-Elemente können über die CSS-Eigenschaft margin mit dem Wert `auto` horizontal zentriert werden und hierin enthaltener Text und Inline-Elemente über text-align mit dem Wert `center`.
dir |  | Element ist deprecated. Als Alternative wird das ul-Element empfohlen.
div | align | Attribut ist deprecated. Das Element kann über die CSS-Eigenschaft margin mit dem Wert `auto` horizontal zentriert oder über float links oder rechts platziert werden. Die enthaltenen Inline-Elemente können über die CSS-Eigenschaft text-align horizontal ausgerichtet werden.
dl | compact | Attribut ist deprecated. Für die kompakte Darstellung ist die CSS-Eigenschaft display mit dem Wert `compact` für die `dt`-Elemente zusammen mit einer entsprechenden margin für die `dd`-Elemente vorgesehen.
font |  | Element ist deprecated. Schriftgröße, Schriftfarbe und Schriftart können mit Stylesheets definiert werden.
frame |  | Element gehört zum Themenbereich Frames.
frameset |  | Element gehört zum Themenbereich Frames.
h1-h6 | align | Attribut ist deprecated. Die horizontale Ausrichtung des Inhalts kann mit Stylesheets definiert werden.
hr | align | Attribut ist deprecated. Das Element kann über die CSS-Eigenschaft margin mit dem Wert `auto` horizontal zentriert oder über float links oder rechts platziert werden.
hr | size | Attribut ist deprecated. Die Höhe kann mit Stylesheets definiert werden.
hr | noshade | Attribut ist deprecated. Die Gestaltung kann stattdessen mit Stylesheets definiert werden.
hr | width | Attribut ist deprecated. Die Breite kann mit Stylesheets definiert werden.
html | version | Attribut ist deprecated. Die HTML-Versionsangabe geht aus einer DTD-Deklaration (`<!DOCTYPE...>`) hervor.
iframe |  | Element kommt in der Strict-Variante nicht vor. Andere HTML-Dokumente sollen stattdessen mit dem object-Element eingebunden werden.
img | align | Attribut ist deprecated. Der Textumfluss des Bildes kann mit Stylesheets definiert werden.
img | hspace | Attribut ist deprecated. Die Außenabstände können mit Stylesheets definiert werden.
img | vspace | Attribut ist deprecated. Die Außenabstände können mit Stylesheets definiert werden.
img | border | Attribut ist deprecated. Der Rahmen kann mit Stylesheets definiert werden.
input | align | Attribut ist deprecated. Die horizontale Ausrichtung des Inhalts kann mit Stylesheets definiert werden.
isindex |  | Element ist deprecated. Als Alternative wird das input-Element mit dem Attribut `type="text"` empfohlen.
legend | align | Attribut ist deprecated.
li | type | Attribut ist deprecated. Der Darstellungstyp kann mit Stylesheets definiert werden.
li | value | Attribut ist deprecated.
menu |  | Element ist deprecated. Als Alternative wird das ul-Element empfohlen.
noframes |  | Element kommt in der Strict-Variante nicht vor.
object | align | Attribut ist deprecated. Das Element kann über die CSS-Eigenschaft margin mit dem Wert `auto` horizontal zentriert oder über float links oder rechts platziert werden.
object | border | Attribut ist deprecated. Der Rahmen kann mit Stylesheets definiert werden.
object | hspace | Attribut ist deprecated. Die Außenabstände können mit Stylesheets definiert werden.
object | vspace | Attribut ist deprecated. Die Außenabstände können mit Stylesheets definiert werden.
ol | compact | Attribut ist deprecated.
ol | start | Attribut ist deprecated.
ol | type | Attribut ist deprecated. Der Darstellungstyp kann mit Stylesheets definiert werden.
p | align | Attribut ist deprecated. Die horizontale Ausrichtung des Inhalts kann mit Stylesheets definiert werden.
pre | width | Attribut ist deprecated. Die Breite kann mit Stylesheets definiert werden.
s |  | Element ist deprecated. Markieren Sie einen Text als gelöscht mit dem Element del oder verwenden Sie die CSS-Eigenschaft text-decoration zur ausschließlich optischen Formatierung.
script | language | Attribut ist deprecated. Stattdessen wird das Attribut `type` empfohlen.
strike |  | Element ist deprecated. Markieren Sie einen Text als gelöscht mit dem Element del oder verwenden Sie die CSS-Eigenschaft text-decoration zur ausschließlich optischen Formatierung.
table | align | Attribut ist deprecated. Das Element kann über die CSS-Eigenschaft margin mit dem Wert `auto` horizontal zentriert oder über float links oder rechts platziert werden.
table | bgcolor | Attribut ist deprecated. Die Hintergrundfarbe kann mit Stylesheets definiert werden.
td | bgcolor | Attribut ist deprecated. Die Hintergrundfarbe kann mit Stylesheets definiert werden.
td | height | Attribut ist deprecated. Die Höhe kann mit Stylesheets definiert werden.
td | nowrap | Attribut ist deprecated. Der Textumbruch kann mit Stylesheets kontrolliert werden.
td | width | Attribut ist deprecated. Die Breite kann mit Stylesheets definiert werden.
th | bgcolor | Attribut ist deprecated. Die Hintergrundfarbe kann mit Stylesheets definiert werden.
th | height | Attribut ist deprecated. Die Höhe kann mit Stylesheets definiert werden.
th | nowrap | Attribut ist deprecated. Der Textumbruch kann mit Stylesheets kontrolliert werden.
th | width | Attribut ist deprecated. Die Breite kann mit Stylesheets definiert werden.
tr | bgcolor | Attribut ist deprecated. Die Hintergrundfarbe kann mit Stylesheets definiert werden.
u |  | Element ist deprecated. Unterstrichener Text kann mit der CSS-Eigenschaft text-decoration definiert werden.
ul | compact | Attribut ist deprecated.
ul | type | Attribut ist deprecated. Der Darstellungstyp kann mit Stylesheets definiert werden.

| Stylesheets und HTML
| HTML-Zeichenreferenz

© 2007 Impressum