Det finns många olika versioner av HTML som skiljer sig åt när det gäller struktur, element och attribut. För att program som läser HTML (tex en webbläsare) ska veta vilken version den har att göra med så används Document Type Definition (DTD).
Om det inte finns en DTD så får programvaran gissa hur dokumentet ska läsas. Det kallas för Quirks mode som använder längre tid och ofta resulterar i dålig visning av dokumentet. Om du dessutom vill validera dina HTML-dokument så måste det finnas en DTD.
DTD placeras först i dokumentet:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html>
<head>
<title>Min hemsida</title>
</head>
<body>
<p>Läs om mig...</p>
</body>
</html>
Så för att din hemsida ska visas så fort som möjligt och utan eventuella missförstånd så ska du använda en av följande deklarationer:
För HTML
HTML 4.01 Strict:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
HTML 4.01 Transitional:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
HTML 4.01 Frameset:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Frameset//EN" "http://www.w3.org/TR/html4/frameset.dtd">
För XHTML
XHTML 1.0 Strict:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
XHTML 1.0 Transitional:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
XHTML 1.0 Frameset:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Frameset//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-frameset.dtd">
Strict används när all formatering sker med CSS så att innehåll och layout är strikt separerat.
Transitional är en "snällare" deklaration som även innehåller äldre element. Därför är det vanligast att man använder denna DTD.
Frameset består av allt från Strict och Transitional plus elementen för Frames. Glöm inte att om du använder Frames så är det enbart i dokumentet som beskriver ditt Frameset som ska ha denna deklaration. De andra är antingen Strict eller Transitional.



DTD - Dokumenttyper

