179 votes

Qu'est-ce que le DOCTYPE ?

  • Qu'est-ce que DOCTYPE et pourquoi dois-je l'utiliser ?
  • Quels sont les différents DOCTYPE que je peux utiliser ?
  • Quelle est la différence entre le mode "standard" et le mode "excentrique", et quels sont les problèmes que je peux rencontrer avec des DOCTYPE différents ?

Enfin, quel est le DOCTYPE approprié que je dois utiliser ?

10 votes

Cela ne devrait-il pas être un wiki ?

79voto

Walter Rumsby Points 3238

Fondamentalement, le DOCTYPE décrit le HTML qui sera utilisé dans votre page.

Les navigateurs utilisent également le DOCTYPE pour déterminer comment rendre une page. Le fait de ne pas inclure un DOCTYPE ou d'inclure un DOCTYPE incorrect peut déclencher le mode "quirks".

Le problème, c'est que le mode Quirks d'Internet Explorer est très différent du mode Quirks de Firefox (et d'autres navigateurs). beaucoup Il est plus difficile de s'assurer que votre page s'affiche de manière cohérente avec tous les navigateurs si le mode bizarrerie est déclenché, que si elle est affichée en mode standard.

Wikipedia propose un résumé plus approfondi de la différences de rendu lors de l'utilisation de divers DOCTYPE . Le XHTML est activé par certains DOCTYPE, et l'utilisation du XHTML fait l'objet d'un débat assez important qui est bien couvert dans le document XHTML : mythes et réalités .

Il existe des différences subtiles entre les différents DOCTYPE de rendu "conformes aux normes", tels que le DOCTYPE HTML5 ( <!DOCTYPE html> (avant HTML5, uniquement connu sous le nom de "skinny doctype" qui ne déclenche pas de rendu standardisé dans les anciens navigateurs) et d'autres DOCTYPE tels que celui-ci pour HTML 4.01 transitionnel :

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">

39 votes

Ces jours-ci, je privilégie le DOCTYPE HTML5 : <!DOCTYPE html> il fonctionne dans tous les navigateurs modernes, y compris IE6.

61 votes

Navigateurs modernes IE6

29voto

Rob Points 1278

Le DOCTYPE indique à l'agent utilisateur consommateur (navigateurs Web, robots d'exploration, outils de validation) le type de document du fichier. Son utilisation garantit que le consommateur analyse correctement le HTML comme vous l'aviez prévu.

Il existe plusieurs DOCTYPES différents pour le HTML, le XHTML et les Framesets et chacun d'entre eux comporte deux modes : Strict et Transitionnel. Strict signifie que votre balisage utilise exactement les normes définies. Voir DTD du W3C pour plus de détails.

Quirksmode est essentiellement la méthode de mise en page de l'époque de la guerre des navigateurs, lorsque les normes étaient beaucoup moins respectées et définies. En général, une page en mode standard, qui est valide, sera mise en page de manière plus cohérente dans les différents navigateurs, mais elle peut manquer de certaines fonctionnalités dont vous avez besoin. L'une de ces caractéristiques est l'attribut target de la balise d'ancrage. L'adresse Quirksmode est une excellente ressource pour ces différences.

Une dernière réflexion : la nouvelle norme HTML5 propose d'utiliser un DOCTYPE très simple :

<!DOCTYPE html>

L'utilisation de ce DOCTYPE est un moyen compatible avec l'avenir de spécifier que vos pages sont en mode standard et sont en HTML. C'est la méthode utilisée par Google, et elle est relativement facile à retenir. Je vous recommande d'utiliser ce DOCTYPE, sauf si vous envisagez d'utiliser le XHTML.

2 votes

La balise DOCTYPE est-elle une balise HTML ? Si oui, pourquoi en avons-nous besoin pour commencer ?

2 votes

@vipinkoul La balise DOCTYPE spécifie le type de document HTML que vous envoyez à l'agent utilisateur. Il peut s'agir de HTML, de XHTML ou d'un Frameset. Et il peut s'agir de HTML/XHTML/Frameset strict ou de HTML/XHTML/Frameset transitionnel. Cela affecte principalement la façon dont l'analyseur réagit lorsqu'il rencontre une erreur.

6voto

Un doctype définit quelle version de HTML/XHTML votre document utilise. Vous souhaitez utiliser un doctype pour que, lorsque vous faites passer votre code par des validateurs, ces derniers sachent par rapport à quelle version de HTML/XHTML ils doivent vérifier. Cette page fournit un bon aperçu :

N'oubliez pas d'ajouter un doctype

Les doctypes courants que vous pouvez utiliser sont énumérés ici :

Liste recommandée de DTDs

Le doctype que vous devez choisir dépend du code que vous utilisez, mais pour vous faire une idée, essayez de faire passer votre code par le validateur W3C et utilisez la balise Type de document dans le menu déroulant "Plus d'options" pour essayer différents doctypes.

Service de validation du balisage du W3C

4voto

Jukka K. Korpela Points 71599

Dans le langage HTML (y compris le XHTML) tel qu'il est utilisé sur les pages Web, DOCTYPE est une chaîne qui déclenche l'un des quelques modes de navigateur (mode quirks, mode standards, mode presque standards), en fonction de l'orthographe exacte du DOCTYPE. Vous voulez l'utiliser pour sélectionner le 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 syntaxiques formelles du langage de balisage. Aucun navigateur n'a jamais utilisé les DTD pour quoi que ce soit, ni même accédé à celles-ci. Cependant, elles sont utilisées par les validateurs de balisage SGML et XML, tels que le programme Validateur de balisage du W3C sauf en mode HTML5. Par conséquent, le choix du DOCTYPE détermine le mode de fonctionnement d'un validateur si le document lui est soumis. Toutefois, 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 se limiter au contexte HTML et aux navigateurs Web et logiciels étroitement liés).

Il n'existe pas de liste de DOCTYPE faisant autorité. Chaque spécification ou projet HTML définit son propre DOCTYPE, ou ses propres 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 pas de raison d'utiliser un DOCTYPE autre que <DOCTYPE html> comme défini dans le HTML5 HTML5 énumère é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 bizarrerie (dont vous pouvez avoir besoin pour les anciennes pages).

Le "mode standard" désigne généralement le mode de fonctionnement dans lequel un navigateur suit du mieux qu'il peut les spécifications HTML, CSS, DOM et autres. Il ne s'agit généralement pas d'une conformité totale. Le "mode bizarrerie" diffère selon les navigateurs, mais il s'agit généralement d'une tentative d'imitation du comportement de très anciens navigateurs comme IE 5. Le but est de faire fonctionner les anciennes pages, en partant du principe qu'elles peuvent s'appuyer sur des fonctionnalités et des bogues des anciens navigateurs. Voir la description Que se passe-t-il en mode Quirks ? Notez qu'il existe un concept assez différent et plus limité de "quirks mode" en HTML5, qui ressemble beaucoup au document appelé Bizarreries Mode Niveau de vie .

Un problème typique est que la largeur des éléments est calculée différemment en mode quirks et en mode standards. Cela signifie que la mise en page d'une page peut être plus ou moins modifiée, voire totalement chamboulée, si une page conçue pour fonctionner en mode quirks est affichée en mode standards (ou vice versa).

Vous devez donc utiliser <!DOCTYPE html> pour les nouvelles pages et conservez le DOCTYPE (le cas échéant) que vous utilisiez pour les anciennes pages.

Toutefois, le mode quirks 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 ce cas, vous devez examiner et tester la page pour voir si elle fonctionnera en mode standard.

2voto

Henrik Paul Points 22787

Un doctype est un document qui décrit à quoi peut ressembler le contenu d'un document de type xhtml (comme une page web). Note : ceci ne définit que la syntaxe de ladite page, le rendu de la page n'est PAS défini par la DTD !

Par exemple, un doctype pourrait définir la manière dont l'élément <table> -Une étiquette peut ressembler à : quels attributs elle accepte, et quelles valeurs/types de valeurs sont acceptés pour chaque attribut. Considérez-le comme un lexique pour votre page Web actuelle.

Wikipedia dispose d'une page informative sur les différents Doctypes couramment utilisés. Rien ne vous empêche de créer votre propre doctype. Il y a toutefois de fortes chances que le navigateur ne sache pas comment rendre votre document.

La DTD à utiliser dépend de ce que vous allez écrire. Le XHTML a une DTD complètement différente de celle du HTML, par exemple.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X