| # 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 Standardschriftgröße kann stattdessen mit Stylesheets definiert werden. Mehrere aufeinanderfolgende HTML-Elemente können in ein div-Element eingeschlossen werden, dem sich CSS-Definitionen zuweisen lassen.
body | alink | Attribut ist deprecated. Die Farbe kann stattdessen mit Stylesheets definiert werden.
body | background | Attribut ist deprecated. Die Hintergrundfarbe kann stattdessen mit Stylesheets definiert werden.
body | bgcolor | Attribut ist deprecated. Die Farbe kann stattdessen mit Stylesheets definiert werden.
body | link | Attribut ist deprecated. Die Farbe kann stattdessen mit Stylesheets definiert werden.
body | text | Attribut ist deprecated. Die Farbe kann stattdessen mit Stylesheets definiert werden.
body | vlink | Attribut ist deprecated. Die Farbe kann stattdessen mit Stylesheets definiert werden.
br | clear | Attribut ist deprecated. Die Angabe zur Textflussfortsetzung kann stattdessen mit Stylesheets definiert werden.
caption | align | Attribut ist deprecated. Die Ausrichtung kann stattdessen mit Stylesheets definiert werden.
center |  | Element ist deprecated. Als Alternative wird das div-Element empfohlen. Die Ausrichtung kann mit Stylesheets definiert werden.
dir |  | Element ist deprecated. Als Alternative wird das ul-Element empfohlen.
div | align | Attribut ist deprecated. Die Ausrichtung kann stattdessen mit Stylesheets definiert werden.
dl | compact | Attribut ist deprecated. Die Schriftweite kann stattdessen mit Stylesheets definiert werden.
font |  | Element ist deprecated. Schriftgröße, Schriftfarbe und Schriftart können stattdessen 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 Ausrichtung kann stattdessen mit Stylesheets definiert werden.
hr | align | Attribut ist deprecated. Die Ausrichtung kann stattdessen mit Stylesheets definiert werden.
hr | size | Attribut ist deprecated. Die Höhe kann stattdessen 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 stattdessen 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.
img | align | Attribut ist deprecated. Die Ausrichtung kann stattdessen mit Stylesheets definiert werden.
img | hspace | Attribut ist deprecated. Der Abstand kann stattdessen mit Stylesheets definiert werden.
img | vspace | Attribut ist deprecated. Der Abstand kann stattdessen mit Stylesheets definiert werden.
img | border | Attribut ist deprecated. Der Rahmen kann stattdessen mit Stylesheets definiert werden.
input | align | Attribut ist deprecated. Die Ausrichtung kann stattdessen 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. Die Ausrichtung kann stattdessen mit Stylesheets definiert werden.
li | type | Attribut ist deprecated. Der Listentyp kann stattdessen mit Stylesheets definiert werden.
li | value | Attribut ist deprecated. Die Sequenznummer in einer nummerierten Liste kann stattdessen mit Stylesheets geändert werden.
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. Die Ausrichtung kann stattdessen mit Stylesheets definiert werden.
object | border | Attribut ist deprecated. Der Rahmen kann stattdessen mit Stylesheets definiert werden.
object | hspace | Attribut ist deprecated. Der Abstand kann stattdessen mit Stylesheets definiert werden.
object | vspace | Attribut ist deprecated. Der Abstand kann stattdessen mit Stylesheets definiert werden.
ol | compact | Attribut ist deprecated. Die Schriftweite kann stattdessen mit Stylesheets definiert werden.
ol | start | Attribut ist deprecated. Die Startnummer kann stattdessen mit Stylesheets definiert werden.
ol | type | Attribut ist deprecated. Der Listentyp kann stattdessen mit Stylesheets definiert werden.
p | align | Attribut ist deprecated. Die Ausrichtung kann stattdessen mit Stylesheets definiert werden.
pre | width | Attribut ist deprecated. Die Elementbreite kann stattdessen mit Stylesheets definiert werden.
s |  | Element ist deprecated. Durchgestrichener Text kann stattdessen mit Stylesheets definiert werden.
script | language | Attribut ist deprecated. Stattdessen wird das Attribut `type` empfohlen.
strike |  | Element ist deprecated. Durchgestrichener Text kann stattdessen mit Stylesheets definiert werden.
table | align | Attribut ist deprecated. Die Ausrichtung kann stattdessen mit Stylesheets definiert werden.
table | bgcolor | Attribut ist deprecated. Die Farbe kann stattdessen mit Stylesheets definiert werden.
td | bgcolor | Attribut ist deprecated. Die Farbe kann stattdessen mit Stylesheets definiert werden.
td | height | Attribut ist deprecated. Die Elementhöhe kann stattdessen mit Stylesheets definiert werden.
td | nowrap | Attribut ist deprecated. Der Umbruch kann stattdessen mit Stylesheets kontrolliert werden.
td | width | Attribut ist deprecated. Die Elementbreite kann stattdessen mit Stylesheets definiert werden.
th | bgcolor | Attribut ist deprecated. Die Farbe kann stattdessen mit Stylesheets definiert werden.
th | height | Attribut ist deprecated. Die Elementhöhe kann stattdessen mit Stylesheets definiert werden.
th | nowrap | Attribut ist deprecated. Der Umbruch kann stattdessen mit Stylesheets kontrolliert werden.
th | width | Attribut ist deprecated. Die Elementbreite kann stattdessen mit Stylesheets definiert werden.
tr | bgcolor | Attribut ist deprecated. Die Farbe kann stattdessen mit Stylesheets definiert werden.
u |  | Element ist deprecated. Unterstrichener Text kann stattdessen mit Stylesheets definiert werden.
ul | compact | Attribut ist deprecated. Die Schriftweite kann stattdessen mit Stylesheets definiert werden.
ul | type | Attribut ist deprecated. Der Listentyp kann stattdessen mit Stylesheets definiert werden.

| Stylesheets und HTML
| HTML-Zeichenreferenz

© 2005 Impressum