En HTML (y compris XHTML) tel qu'utilisé sur les pages Web, DOCTYPE est une chaîne qui déclenche l'un des quelques modes de navigation (mode quirks, mode standard, mode presque standard), en fonction de l'orthographe exacte du DOCTYPE. Vous souhaitez l'utiliser pour sélectionner un mode de navigateur qui convient le mieux à votre page.
Formellement, en SGML et XML, une déclaration DOCTYPE est une référence à une définition de type de document (DTD), qui spécifie les règles de syntaxe formelle du langage de balisage. Aucun navigateur n'a jamais utilisé les DTD pour quoi que ce soit ni même y a accédé. Cependant, ils sont utilisés par les validateurs de balisage SGML et XML tels que le validateur de balisage W3C , sauf en mode HTML5. Par conséquent, le choix de DOCTYPE détermine le fonctionnement d'un validateur si le document lui est soumis. Cependant, le mode de fonctionnement du validateur peut également être sélectionné dans son interface utilisateur. (Les processeurs SGML et XML peuvent également utiliser les DOCTYPE de différentes autres manières, mais la question est apparemment censée être limitée au contexte HTML et aux navigateurs Web et aux logiciels étroitement liés.)
Il n'y a pas de liste de DOCTYPE faisant autorité. Chaque spécification ou brouillon HTML définit son propre DOCTYPE ou DOCTYPE. L'ensemble des DOCTYPE reconnus par les navigateurs lors de la sélection du mode varie selon le navigateur. En pratique, il n'y a aucune raison d'utiliser un DOCTYPE autre que <DOCTYPE html>
celui défini dans HTML5 , bien que HTML5 répertorie également quelques «anciens DOCTYPE». Vous pouvez utiliser ce DOCTYPE si vous voulez le mode standard (recommandé pour les nouvelles pages) et n'utiliser aucun DOCTYPE si vous voulez le mode bizarreries (dont vous pourriez avoir besoin pour les pages héritées).
Le «mode standard» désigne généralement le mode de fonctionnement dans lequel un navigateur suit au mieux les spécifications HTML, CSS, DOM et autres. Cela ne signifie généralement pas une conformité totale. Le «mode bizarreries» est différent selon les navigateurs, mais il s’agit généralement d’une tentative d’imiter le comportement de très vieux navigateurs comme IE 5. Le but est de faire fonctionner les anciennes pages, en supposant qu’elles peuvent s'appuyer sur des fonctionnalités et des bogues dans le anciens navigateurs. Voir la description Que se passe-t-il en mode Quirks? Notez qu'il existe un concept assez différent, plus limité de «mode quirks» en HTML5, qui ressemble étroitement au document appelé Quirks Mode Living Standard .
Un problème typique est que les largeurs d'élément sont calculées différemment en mode quirks et en mode standard. Cela signifie que la mise en page d'une page peut être plus ou moins modifiée ou même totalement foirée, si une page conçue pour fonctionner en mode bizarreries est visualisée en mode standard (ou vice versa).
Vous devez donc utiliser <!DOCTYPE html>
pour les nouvelles pages et conserver le DOCTYPE (le cas échéant) que vous avez utilisé pour les anciennes pages.
Cependant, le mode bizarreries signifie, dans certains navigateurs, que de nombreuses nouvelles fonctionnalités de CSS ne sont pas prises en charge. Cela signifie que si vous souhaitez améliorer une ancienne page avec une fonctionnalité CSS3, il peut être nécessaire de passer à un DOCTYPE qui déclenche le mode standard. Dans un tel cas, vous devez examiner et tester la page pour voir si elle fonctionnera en mode standard.