hi
was hat es mit dem DOCTYPE im HTML auf sich???
Kann mir das einer erklärn?
aber gerne doch.
HTML ist eine SGML-Anwendung (bzw. neuerdings XML, was hier aber nur wenig ändert) zu der eine DTD gehört. In der DTD sind alle erlaubten Tags, Attribute und Attributwerte sowie deren Syntax genau festgelegt.
Ein DOCTYPE ist ein Verweis, welche DTD nun zu benutzen ist. Ein DOCTYPE sieht zum Beispiel so aus:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
Dabei hat jeder Teil seine Bedeutung:
"HTML" - hier geht's um HTML
"PUBLIC" - Keyword, ist halt einfach da ;)
"W3C" - Herausgeber der DTD ist das W3C
"DTD HTML 4.01 Transitional" - das ist die genaue DTD-Version
"EN" - die Sprache der DTD (NICHT DES INHALTES!, Häufiger Fehler)
"http://www.w3.org/TR/html4/loose.dtd" - URL zur DTD, nicht required, wenn es sich um eine allgemein bekannte DTD handelt.
In XML ändern sich 2 kleine Details:
- da man hier <html> klein schreiben muss gehört auch das dazugehörige Keyword klein.
- die URL kann in 2 Teile geteilt werden, dabei wird die DTD relativ zum xmlns=""-Attribut berechnet. Dieses Attribut akzeptiert derzeit übrigens nur diesen einen Wert, sonst kommt's zu einen Konflikt (klar, ist ja Teil der DTD-URL die eben eindeutig ist)
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
in anderen Webstandards sieht dann der DOCTYPE auch anders aus, so wird SVG 1.1 dass hier bekommen:
<!DOCTYPE svg PUBLIC "-//W3C/DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
In der Praxis hatte der DOCTYPE lange keine Funktion, weil ein Browser immer von seiner "Haus-DTD" (meistens einer mehr oder weniger starken Abwandlung von HTML 3.2 oder HTML 4.0 Transitional) ausging. Inzwischen hat der DOCTYPE in immer mehr Browsern die Funktion die Fehlertolleranz zu veringern, die zu Zeiten des Browserwar ein Mass erreicht hat, das es den Herstellern fast unmöglich macht den Salat noch zu überblicken. Ganz grob kann man sagen, dass ein XHTML-DOCTYPE den Browser in den sog. Strict-Mode schaltet.
Grüße aus Bleckede
Kai