Une page web contient une structure de base composée des éléments suivants :
la déclaration, la balise html, la balise head et la balise body.
« Sans déclaration de type de document (Doctype ou Doctype Declaration en anglais, NdT), votre document HTML n'est tout simplement pas valide et la plupart des navigateurs qui vont visualiser votre document vont passer en mode « quirk », c'est-à-dire qu'ils vont considérer que vous faites absolument n'importe quoi, et en retour vont n'en faire qu'à leur tête. Vous aurez beau être le plus grand champion du HTML que la Terre ait jamais porté, votre HTML aura beau être impeccable et votre CSS parfaite, s'il n'y a pas une déclaration de document, ou si ce n'est pas la bonne, vos pages web pourraient bien finir par ressembler à des pages construites par un bébé gibbon myope et borgne atteint de troubles de l'apprentissage. »
Patrick Griffiths (Extrait du site Pompage).
La déclaration indique principalement au navigateur la version du langage html que l'on utilise. En effet au fil du temps le W3C a fait évoluer ce langage en faisant apparaître de nouvelles balises, d'autres devenant obsolètes (deprecated).
La déclaration doit se placer en début du document.
Exemple de déclaration :
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"
>
L'élément qui indique la version du langage html utilisé dans cet exemple est "XHTML 1.0 Strict".
Strict signifie que le code de la page respecte scrupuleusement la norme XTML 1.0.
L'adresse web qui suit pointe sur une page qui contient cette norme, le navigateur peut l'utiliser pour comprendre le code de la page qu'il va devoir interpréter.
Autres exemples de déclaration :
<!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">
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Frameset//EN" "http://www.w3.org/TR/html4/frameset.dtd">
<!DOCTYPE html> : déclaration correspondant à la dernière version du HTML
Dans ces déclarations les termes Transitional et Frameset sont utilisés.
Transitional veut dire que l'on peut encore utiliser les balises devenues obsolètes dans la version html précisée.
Framset est a utiliser si la page contient des frames (aujourd'hui il est vivement déconseillé d'utiliser des frames).
La balise ouvrante html suit la déclaration. Elle indique le début du document html et englobe tous les éléments du code. La balise fermante html doit donc se placer en fin de document.