PRATIQUE CLIENTS WEB 
Utilité du DOCTYPE
 
"Je dois ajouter une balise Doctype au début de tous mes documents HTML pour qu'ils soient valides. Cependant mon site n'a alors plus du tout la même apparence. Pourquoi ?" (16/12/2004)

 

  Forum

Réagissez dans les forums de JDN Développeurs

Si le seul fait d'ajouter un Doctype, correspondant à la version de (X)HTML que vous utilisez, suffit à modifier l'apparence de votre site, c'est simplement que vous avez composé votre code HTML avec des techniques dépassées (bien que valides).

Le Doctype a une double utilité : 1) il permet d'indiquer au navigateur que l'auteur de la page connaît les standards Web et estime que celle-ci s'y conforme, et 2) il fait passer le navigateur en mode Strict.
Au contraire, sans Doctype, le navigateur parcours la page en mode Quirks, car il peut logiquement supposer que le créateur du site ne sait pas ce qu'est un Doctype, et donc ne respecte pas forcément les standards Web.

Quirks est donc un mode de lecture de la page très lâche, semblable à celui des anciens navigateurs : il interprète les balises sans trop se soucier de la rigueur de leur écriture. Strict, au contraire, effectue une interprétation très rigoureuse des standards, et s'attend à ce que la page les respecte à la lettre.

Placer un Doctype permet donc simplement de dire au navigateur, "je connais les standards du Web, je les utilise, et cette page est fait avec telle version de (X)HTML". On appelle cela le Doctype Switching. C'est la raison pour laquelle un document n'ayant pas de Doctype ne pourra pas être validé : sans Doctype il n'est même pas sensé faire usage des standards.

Notez qu'il existe des Doctype pour les versions récentes de XHTML comme pour les premières versions de HTML, en toute bonne logique :

Les différents Doctypes
Version
Balise
HTML 2.0
<!DOCTYPE html PUBLIC "-//IETF//DTD HTML 2.0//EN">
HTML 3.2
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2 Final//EN">
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">
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">
XHTML 1.1
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
 
Xavier Borderie, JDN Développeurs
 
 
Accueil | Haut de page