web-dev-qa-db-fra.com

Pourquoi ai-je besoin d'un doctype? (Qu'est ce que ça fait)

Duplicata possible:
HTML: Quelle est la fonctionnalité de! DOCTYPE

J'ai récemment posé une question ici et la solution était simple:

Vous devez ajouter un doctype à la page. Cela devrait résoudre le problème pour vous.

Maintenant, mes pages fonctionnent bien dans tous les navigateurs sans le doctype (sauf IE). IE a-t-il besoin d'un doctype (est-ce une chose IE uniquement) et les autres navigateurs l'assument-ils [~ # ~] ou [~ # ~] ou fait-il quelque chose que je ne vois pas.

Quelles sont ses fonctions et comment ça marche?

57
Freesnöw

Tous les navigateurs ont besoin du doctype. Sans DOCTYPE, vous forcez les navigateurs à s'afficher en Quirks Mode .

Cependant, DOCTYPE n'était que partiellement utilisé par les navigateurs dans détermination du dialecte et de l'analyse , même si c'était le but. C'est pourquoi HTML5 a réduit le DOCTYPE simplement :

<!DOCTYPE html>

2.2. Le DOCTYPE

La syntaxe HTML de HTML5 nécessite la spécification d'un DOCTYPE pour garantir que le navigateur affiche la page en mode standard. Le DOCTYPE n'a pas d'autre but et est donc facultatif pour XML. Les documents avec un type de support XML sont toujours traités en mode standard. [DOCTYPE]

La déclaration DOCTYPE est <!DOCTYPE html> et ne respecte pas la casse dans la syntaxe HTML. Les DOCTYPE des versions antérieures de HTML étaient plus longs car le langage HTML était basé sur SGML et nécessitait donc une référence à une DTD. Avec HTML5, ce n'est plus le cas et le DOCTYPE n'est nécessaire que pour activer le mode standard pour les documents écrits en utilisant la syntaxe HTML. Les navigateurs le font déjà pour <!DOCTYPE html>.

Source: différences HTML5 par rapport à HTML4: DOCTYPE

53
Kevin Peno

Le Doctype fait deux choses.

  1. Il identifie le dialecte HTML que vous utilisez.
  2. Il contrôle si les navigateurs utilisent le mode "standards" ou "bizarreries" pour rendre le document.

S'il n'y a pas de doctype, ou s'il y en a un non reconnu, alors il utilise le mode "bizarreries" et interprète le document du mieux qu'il peut. S'il y a IS un doctype, et qu'il le reconnaît, alors il suit les normes. Les résultats du rendu peuvent varier selon la façon dont il interprète le document.

12
Will Martin

Pourquoi?

Pourquoi spécifier un doctype? Parce qu'il définit la version de (X) HTML que votre document utilise réellement, et c'est une information essentielle dont ont besoin certains outils traitant le document.

Par exemple, la spécification du doctype de votre document vous permet d'utiliser des outils tels que le validateur de balisage pour vérifier la syntaxe de votre (X) HTML. De tels outils ne pourront pas fonctionner s'ils ne savent pas quel type de document vous utilisez.

Mais le plus important est qu'avec la plupart des familles de navigateurs, une déclaration doctype rendra beaucoup de devinettes inutiles, et déclenchera ainsi un mode de rendu "standard".

Source: http://www.w3.org/QA/Tips/Doctype

5
onteria_

Vous devriez avoir un DOCTYPE pour N'IMPORTE QUEL navigateur. Il indique au navigateur comment interpréter le html et le css. C'est pourquoi html4 et html5 ont des définitions différentes (tout comme xhtml). Tout cela est très important pour la validation.

Qu'est-ce que IE va faire est de mettre le document dans ce qu'il appelle le "mode excentrique" qui ignore fondamentalement tout un tas de règles sur la façon dont CSS devrait (selon les définitions modernes) se comporter. Voici un bon résumé du problème . Cela rappelle le mauvais vieux temps du support CSS non standardisé

2
Stuart Burrows

Les navigateurs doivent au moins effectuer un rendu dans ce qu'on appelle le mode standard. Voir l'article de John Resig sur le doctype html 5: http://ejohn.org/blog/html5-doctype/ . Maintenant, si vous voulez que votre navigateur n'utilise pas les normes et ne rende pas comme en 1990, n'ajoutez rien et vous verrez que les flotteurs et autres éléments désormais standard ne fonctionnent pas correctement. Si vous souhaitez que votre page soit rendue/validée conformément à une norme particulière, vous souhaiterez ajouter plus au type de document, mais ce n'est pas nécessaire.

2
scrappedcola

Dans W3Schools, un doctype est "une instruction au navigateur Web sur la version du langage de balisage dans laquelle la page est écrite". (http://www.w3schools.com/tags/tag_doctype.asp)

Si vous n'incluez pas le doctype, le navigateur peut supposer que vous utilisez une langue différente de celle que vous utilisez réellement, ce qui entraîne un rendu incorrect.

1
George Cummins

De W3Schools . Com:

La déclaration doctype n'est pas une balise HTML; il s'agit d'une instruction au navigateur Web sur la version du langage de balisage dans laquelle la page est écrite.

Il existe une poignée de doctypes différents, et leur modification peut radicalement changer le rendu de votre page.

1
Ken Pespisa

La déclaration doctype doit être la toute première chose dans un document HTML, avant la balise.

La déclaration doctype n'est pas une balise HTML; il s'agit d'une instruction au navigateur Web sur la version du langage de balisage dans laquelle la page est écrite.

La déclaration doctype fait référence à une définition de type de document (DTD). La DTD spécifie les règles du langage de balisage, afin que les navigateurs rendent le contenu correctement.

Référence

0
breezy