Einzelnen Beitrag anzeigen

Daniel B
(Gast)

n/a Beiträge
 
#22
  Alt 12. Dez 2002, 23:07
Hallo Jan,

Zitat von Jan:
kannst mir das mit dem doctype mal erklären? Will mich auch mal testen.
Zitat von SelfHTML:
Dokumenttyp-Angaben
HTML ist innerhalb der Familie der Auszeichnungssprachen nur eine von vielen, wenn auch die prominenteste. HTML selbst hat außerdem bereits eine mehrjährige Geschichte und ist in verschiedenen, recht unterschiedlichen Versionen normiert worden. Mit der Dokumenttyp-Angabe bestimmen Sie, welche Auszeichnungssprache in welcher Version Sie verwenden. Eine auslesende Software, etwa ein Web-Browser, kann sich an dieser Angabe orientieren.

Die Regeln für HTML sind mit Hilfe von SGML formuliert, die Regeln für XHTML mit Hilfe von XML. Nach den Regeln einer SGML- oder XML-basierten Auszeichnungssprache ist eine HTML-Datei oder eine XHTML-Datei erst dann eine gültige (valide) Datei, wenn sie einen bestimmten Dokumenttyp angibt und sich dann innerhalb des restlichen Quelltextes genau an die Regeln hält, die in diesem Dokumenttyp definiert sind. Denn hinter jeder Dokumenttyp-Angabe stecken so genannte Dokumenttyp-Definitionen (DTD). Auch für HTML gibt es solche Dokumenttyp-Definitionen. Dort ist geregelt, welche Elemente ein Dokument vom Typ HTML enthalten darf, welche Elemente innerhalb von welchen anderen vorkommen dürfen, welche Attribute zu einem Element gehören, ob die Angabe dieser Attribute Pflicht ist oder freiwillig usw.

Als HTML-Anfänger mag Ihnen der Aufwand, der da betrieben wird, vielleicht nicht ganz einleuchten. Doch genau diese Dokumenttypen, mit deren Hilfe sich Regeln für Sprachen wie HTML genau definieren lassen, sind ein riesiger Fortschritt in der EDV. Denn nur so lässt sich das Konzept der software-unabhängigen, aber regelgerechten Dateiformate konsequent durchsetzen. Ohne den Bezug auf die offiziellen Regeln wären Sprachen wie HTML unverbindliche Konventionen, die schnell in Dialekten verwässern würden. Das ist genauso wie bei natürlichen Sprachen: ohne eine gewisse Regelung der "Rechtschreibung" würde eine Schriftsprache im Laufe der Zeit so stark zersetzt, dass am Ende kaum jemand mehr lesen kann, was der andere mit dem was er geschrieben hat meint. Da Software außerdem noch viel dümmer ist als Menschen und viel genauere Vorgaben benötigt, um zu "verstehen" was man ihr mitteilt, ist das Beziehen auf Regeln dort sogar noch wesentlich wichtiger.

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

Erläuterung:
Notieren Sie die Dokumenttyp-Angabe am Anfang der HTML-Datei vor dem einleitenden <html>-Tag. Hinter der startenden spitzen Klammer folgt ein Ausrufezeichen. Dahinter folgt die Angabe DOCTYPE HTML PUBLIC. Das bedeutet, dass Sie sich auf die öffentlich verfügbare HTML-DTD beziehen. Die folgende Angabe, die in Anführungszeichen steht, ist wie folgt zu verstehen:

W3C ist der Herausgeber der DTD, also das W3-Konsortium. Eine Angabe wie DTD HTML 4.01 Transitional bedeutet, dass Sie in der Datei den Dokumenttyp "HTML" verwenden, und zwar in der Sprachversion 4.01 und deren Variante "Transitional". Das EN ist ein Sprachenkürzel und steht für die Sprache, in diesem Fall Englisch. Die Angabe bezieht sich darauf, in welcher natürlichen Sprache die Element- und Attributnamen der Tagsprache definiert wurden, nicht auf den Inhalt Ihrer Datei. Benutzen Sie also immer EN, da die Namen von HTML-Elementen und -Attributen auf der englischen Sprache basieren.
Die Schrägstriche notieren Sie so wie im obigen Beispiel.

Ferner enthält die Dokumenttyp-Angabe eine Web-Adresse. Die Angabe dieser Adresse ist nicht zwingend nötig. Eine Angabe wie:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
ist also ebenfalls erlaubt.
Über die angegebene Web-Adresse kann eine auslesende Software die Dokumenttyp-Definitionen (DTD) aufrufen und in den darin notierten Regeln "nachgucken". Die meisten heutigen Browser tun das bei HTML allerdings nicht, weil sie ohnehin bei vielen Web-Seiten mit übelsten Sprachverunstaltungen rechnen müssen und die Fähigkeit, auch nicht regelgerechtes HTML ordentlich auf den Bildschirm zu bringen, zugunsten der "reinen Lehre" opfern. Das eigentlich gewünschte Verhalten ist allerdings, dass ein Browser dann, wenn eine HTML-Datei eine Dokumenttyp-Angabe enthält, auch auf der Einhaltung der Regeln dieses Dokumenttyps besteht. Bei XML-Dokumenten ist es durchaus üblich, dass ein Parser bei einem Regelverstoß abbricht - anstelle der Web-Seite erscheint dann nur eine trockene Fehlermeldung, dass das Dokument nicht gültig (valide) sei.

Zum Redaktionszeitpunkt dieses Dokuments ist die HTML-Version 4.01 aktuell. Bei dieser HTML-Version und auch schon bei der glatten Versionsnummer 4.0 gibt es drei Sprachvarianten. Für eine davon müssen Sie sich entscheiden und den entsprechenden Dokumenttyp angeben:

Die Variante "Strict" für HTML:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN"
"http://www.w3.org/TR/html4/strict.dtd">

Benutzen Sie dieser Angabe, wenn Sie bestimmte Elemente und Attribute nicht mehr verwenden wollen, die früher mal zum HTML-Standard gehörten, aber mittlerweile durch andere Möglichkeiten (vor allem durch CSS Stylesheets) ersetzbar sind und deshalb nicht mehr zum "reinen" HTML gehören. Ferner sind die Verschachtelungsregeln für HTML-Elemente in der strict-Variante enger und im Sinne strukturierter Inhalte sauberer formuliert. So ist es in dieser Variante beispielsweise nicht erlaubt, zwischen <body> und </body> einfach nur Text zu notieren. Alle Inhalte müssen in so genannten Block-Elementen stehen, z.B. in Überschriften, Textabsätzen, Tabellen usw.

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

Benutzen Sie diese Angabe, wenn Sie auch die früher mal erlaubten Elemente und Attribute noch verwenden wollen. Ein Grund, sich für diese Variante zu entscheiden, könnte sein, dass Sie Ihr HTML so schreiben wollen, dass es auch mit Netscape 3.x und anderen älteren Browsern, die noch kein CSS verstehen, in etwa so aussieht wie Sie es wünschen. Denn in der strict-Variante entfallen praktisch alle Elemente und Attribute, die in HTML früher für das "optische Aufpeppeln" von Web-Seiten gesorgt haben. Dazu gehören Angaben zur Textausrichtung, zu Hintergrundfarben usw. All das können Sie auch mit CSS definieren, aber ältere Browser verstehen nun mal noch kein CSS. In der Variante "transitional" sind auch die Regeln für die Elementverschachtelung etwas milder. So ist es nach dieser Variante erlaubt, zwischen <body> und <body> "nackten Text" außerhalb eines weiteren Elements zu notieren.

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

Diese Angabe ist nur für spezielle HTML-Dateien gedacht, in denen Framesets definiert werden. Siehe dazu den Abschnitt Framesets und Frames definieren.

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

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

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

Auch für XHTML 1.0 gibt es die drei Varianten "Strict", "Transitional" und "Frameset". Im Mittelteil der Dokumenttyp-Angabe muss jedoch bei Version 1.0 von XHTML XHTML 1.0 notiert werden. Auch die Web-Adressen für den Bezug sind andere als bei HTML.

Es gibt auch eine Sprachversion 1.1 von XHTML, die intern anders organisiert ist als XHTML 1.0. In XHTML 1.1 gibt es keine Sprachvarianten mehr. XHTML 1.1 entspricht nur noch der Sprachvariante "Strict" von XHTML 1.0.

Dokumenttyp-Angaben für XHTML 1.1:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN"
"http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">

Ältere Dokumenttyp-Angaben:
In manchen Ausnahmefällen kann es sinnvoll sein, sich auch auf eine ältere HTML-Version zu beziehen. Tun Sie dies jedoch nur, wenn irgendwelche technischen Gründe es erfordern. Folgende ältere Angaben gibt es:

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 2.0//EN">

Benutzen Sie diese Dokumenttyp-Angabe, wenn Sie sich auf HTML 2.0 beziehen wollen.

<HTML PUBLIC "-//W3C//DTD HTML 3.2//EN">

Benutzen Sie diese Dokumenttyp-Angabe, wenn Sie sich auf HTML 3.2 beziehen wollen.

Dokumenttyp-Angaben anderer HTML-Versionen sind nicht mehr im Gebrauch.
Langt das?

Hier zum Validator --> Klick!
HTML 4.01 solltest Du können und CSS oder CSS2!

Grüsse, Daniel
  Mit Zitat antworten Zitat