Traditionnellement, un Doctype ou Déclaration de type de document associe le document à un Définition du type de document .
El Définition du type de document est une norme pour un document XML ou SGML spécifique. Le XML et le SGML eux-mêmes n'ont pas vraiment de schéma ou d'ensemble de règles très spécifiques, à part la façon dont les balises et les attributs fonctionnent en général. Vous pouvez considérer une DTD comme une description des règles pour un type particulier de document (comme HTML, SVG ou MathML). Elle indique quelles balises sont autorisées à quel endroit (par exemple, qu'une balise html
doit contenir exactement un élément head
suivi d'exactement un élément body
élément).
Il existe des alternatives aux DTD, comme les schémas XML, qui sont plus couramment utilisés aujourd'hui.
Les navigateurs, en revanche, n'utilisent pas du tout les DTD. Ils lisent le Doctype pour déterminer le mode de rendu mais les règles d'analyse du document sont entièrement intégrées dans le navigateur.
C'est pourquoi HTML 5 a un Doctype (pour déterminer le mode de rendu) mais pas de DTD.
Modes de rendu
Les premiers navigateurs web étaient très bogués. Lorsque de nouvelles versions étaient publiées, elles devaient maintenir la compatibilité avec leurs prédécesseurs et leurs rivaux. Il était donc très difficile de corriger les bogues, car les sites Web construits dépendaient d'eux.
Pour résoudre ce problème, les navigateurs modernes disposent de différents modes de rendu ( mode standard pour rendre votre document et vos css selon les normes, et mode bizarrerie dans lequel le navigateur émule les bogues des navigateurs antérieurs, et mode presque standard qui se situe entre les deux).
Choisir un Doctype
Il y a deux facteurs à prendre en compte lors de la sélection d'un Doctype :
- Cela déclenche-t-il le mode standard ? debe Les cas où vous devez être compatible avec des navigateurs qui ne supportent pas le mode standard sont très rares aujourd'hui).
- Prend-il en charge les fonctionnalités dont j'ai besoin ?
En général, cela signifie que vous devez utiliser HTML 5. Il s'agit de la norme actuelle qui reflète le mieux le fonctionnement réel des navigateurs :
<!DOCTYPE html>
En cas d'échec. Les doctypes stricts évitent la plupart des fonctionnalités qui devraient être gérées par CSS.
Lorsque vous écrivez dans XHTML 1.0 ce Doctype est courant :
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
D'autres fonctionnalités obsolètes sont disponibles via :
<!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">
Lorsque vous écrivez dans HTML 4.01 celui-ci est plutôt commun :
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN"
"http://www.w3.org/TR/html4/strict.dtd">
Les fonctions obsolètes étant dans
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
"http://www.w3.org/TR/html4/loose.dtd">
y
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Frameset//EN"
"http://www.w3.org/TR/html4/frameset.dtd">
Notez que la plupart des exemples ci-dessus comportent des variantes (par exemple, vous pouvez omettre l'URL et vous fier à l'identifiant public) qui ont des implications pour la prise en charge du mode standard. Cet article comprend une liste exhaustive .
Débat sur les doctypes stricts et transitionnels
(Notez que ce qui suit est beaucoup, debe moins vrai en 2021 qu'en 2008)
Les évangélistes des normes ont demandé aux développeurs web de ne plus utiliser le Doctype Transitionnel sur les nouvelles pages et d'utiliser plutôt le Doctype Strict. Là encore, il s'agit d'un cas où la théorie et la pratique ont du mal à se réconcilier. L'espoir initial du Doctype transitionnel était de fournir une solution à mi-chemin pour la transition des anciens sites Web vers la conformité aux normes. Avec les doctypes transitoires, la restriction sur les éléments et les attributs est littéralement "moins stricte", ce qui permet aux développeurs de faire fonctionner leur travail en mode standard plus tôt, et d'éliminer progressivement les différences restantes.
La controverse existe parce qu'il n'est pas toujours aussi simple pour un développeur de changer le Doctype dans un environnement d'entreprise. Les développeurs indépendants et les créateurs de sites Web de petite ou moyenne taille peuvent souvent avoir plus de facilité à déterminer leur Doctype et à effectuer cette transition. Dans un environnement de production d'entreprise pour un service Web très demandé, il existe des dépendances intrinsèquement plus compliquées sur les systèmes existants et les produits de code tiers, qui peuvent eux-mêmes être sur une feuille de route pour la suppression ou la refonte, mais l'exécution de ces changements doit être faite méthodiquement et progressivement.
Outils utiles
Le W3C ( Consortium World Wide Web ) est un groupe qui joue un rôle actif dans la définition de ce type de normes. Il dispose d'un outil en ligne utile à l'adresse http://validator.w3.org/ pour vérifier et valider les documents par rapport à leurs normes. Il existe de nombreux autres outils tiers et extensions de navigateur avec une fonctionnalité similaire.
0 votes
Cela devrait définitivement être le Wiki communautaire IMHO.