Déclaration <!DOCTYPE> HTML
La déclaration <!DOCTYPE> est la première ligne de code d'un document HTML ou XHTML. Elle spécifie la version HTML utilisée dans le document. Chaque document HTML doit commencer par cette déclaration afin que les navigateurs affichent la page en Mode Standard plutôt qu'en Mode Quirks, garantissant ainsi la conformité aux normes web. En HTML 4.01, cette déclaration fait référence à une Définition de Type de Document (DTD), qui spécifie la structure et les éléments légaux d'un document XML.
La déclaration <!DOCTYPE> est placée avant la balise <html>. La déclaration n'est pas sensible à la casse.
Syntaxe
Syntaxe DTD héritée
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN" "https://www.w3.org/TR/html4/strict.dtd">Paramètres de <!DOCTYPE>
Élément racine — l'élément parent qui contient tous les autres éléments. Pour HTML, il s'agit de la balise <html>.
Publicité — indique si la DTD est PUBLIC ou SYSTEM. Pour HTML/XHTML, la valeur est PUBLIC.
Enregistrement — indiquait historiquement le statut d'enregistrement ISO (+ ou -). Pour les DTD du W3C, cela est généralement omis.
Organisation — le nom du développeur de la DTD. Pour HTML/XHTML, il s'agit du W3C.
Type — le type de document. Pour HTML/XHTML, la valeur est DTD.
Nom — identifiant unique décrivant la DTD.
Langue — la langue du document (deux lettres majuscules). Pour HTML/XHTML, il s'agit généralement de EN.
URL — l'URL de la description du type de document (par ex., https://www.w3.org/TR/html4/strict.dtd).
Types de déclaration <!DOCTYPE> pour HTML
Les documents HTML modernes utilisent une déclaration unique et simplifiée. L'HTML 4.01 hérité en comportait trois types :
HTML5
<!DOCTYPE html>Strict - contient tous les éléments et attributs HTML. Cependant, les éléments de présentation ou dépréciés ne sont pas inclus.
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "https://www.w3.org/TR/html4/strict.dtd">Transitional - contient tous les éléments et attributs HTML, y compris les éléments de présentation et dépréciés. Les cadres (frames) ne sont pas autorisés.
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "https://www.w3.org/TR/html4/loose.dtd">Frameset - est équivalent à Transitional, mais autorise l'utilisation de cadres (frames).
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Frameset//EN" "https://www.w3.org/TR/html4/frameset.dtd">Exemple de déclaration <!DOCTYPE> HTML :
<!DOCTYPE html>
<html>
<head>
<title>Title of the document</title>
</head>
<body>
<h2>Elements example</h2>
<p>This is some paragraph.</p>
<p>This is another paragraph <br /> with line break.</p>
</body>
</html>Résultat

Types de déclaration <!DOCTYPE> pour XHTML
Voici les types de déclaration <!DOCTYPE> pour XHTML.
XHTML 1.0 Strict
Cette DTD inclut tous les éléments et attributs HTML, à l'exception des éléments de présentation ou dépréciés. Cette DTD n'autorise pas les cadres (frames).
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">XHTML 1.0 Transitional
Cette DTD inclut tous les éléments et attributs HTML, ainsi que les éléments de présentation et dépréciés. Les framesets ne sont pas autorisés.
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">XHTML 1.0 Frameset
Cette DTD est similaire à XHTML 1.0 Transitional, mais les framesets sont autorisés.
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Frameset//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-frameset.dtd">XHTML 1.1
Cette DTD est équivalente à XHTML 1.0 Strict, mais permet d'ajouter des modules (par ex., pour fournir le support Ruby pour les langues d'Asie de l'Est).
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">Pratique
Parmi les affirmations suivantes concernant la déclaration DOCTYPE HTML, lesquelles sont correctes ?