Pourquoi ai-je besoin d'un doctype? (Quoi faire) [en double]

possibilité de dupliquer:

HTML: Quelle est la fonctionnalité de !Type de document

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 chaque navigateur sans le doctype (sauf IE). Est-ce que IE a besoin d'un doctype (est-ce que C'est seulement une chose IE) et faire d'autres navigateurs supposent juste ou ou est-ce qu'il fait quelque chose que je ne vois pas.

Quelles sont ses fonctions et comment ça fonctionne?

47
demandé sur Community 2011-05-20 22:55:17

8 réponses

tous les navigateurs ont besoin du doctype. Sans le DOCTYPE , vous forcez les navigateurs à afficher en Mode" Quirks .

cependant, DOCTYPE n'a été que partiellement utilisé par les navigateurs dans pour déterminer le dialecte et analyser , même si c'était le but. C'est pourquoi HTML5 a réduit le DOCTYPE à simplement :

<!DOCTYPE html>

2.2. Le type de document

la syntaxe HTML de HTML5 exige QU'un DOCTYPE soit spécifié pour s'assurer que le navigateur affiche la page en mode standard. DOCTYPE n'a pas d'autre but et est donc facultatif pour XML. Les Documents de type XML sont toujours traités en mode standard. [DOCTYPE]

la déclaration DOCTYPE est <!DOCTYPE html> et n'est pas sensible à la casse dans la syntaxe HTML. DOCTYPEs partir plus tôt les versions HTML étaient plus longues parce que le langage HTML était basé sur le SGML et nécessitait donc une référence à une DTD. Avec HTML5 ce n'est plus le cas et le DOCTYPE est seulement nécessaire pour activer le mode standard pour les documents écrits en utilisant la syntaxe HTML. Les navigateurs font déjà cela pour <!DOCTYPE html> .

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

45
répondu Kevin Peno 2011-05-20 19:23:57

le Doctype fait deux choses.

  1. il identifie le dialecte HTML que vous utilisez.
  2. contrôle si les navigateurs utilisent le mode" standards "ou" quirks " 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 un doctype, et qu'il le reconnaît, alors il suit les normes. Le les résultats du rendu peuvent varier selon la façon dont il interprète le document.

9
répondu Will Martin 2011-05-20 18:58:36

pourquoi?

pourquoi spécifier un doctype? Parce qu'il définit quelle version de (X)HTML votre document est en fait l'utilisation, et ce est une pièce essentielle de l'information nécessaire pour certains outils document.

par exemple, en spécifiant le type de document votre document vous permet d'utiliser des outils comme le Validateur pour vérifier la syntaxe de votre (X)HTML. De tels outils ils ne pourront pas travailler s'ils ne le font pas. savoir quel type de document vous sont utiliser.

Mais la chose la plus importante est que avec la plupart des familles de navigateurs, un la déclaration doctype fera beaucoup de deviner inutile, et donc déclencher un mode de rendu" standard".

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

5
répondu onteria_ 2011-05-20 18:58:48

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

ce QU'IE va faire est de mettre le document dans ce qu'il appelle le "mode bizarreries" qui ignore fondamentalement tout un tas de règles pour la façon dont CSS devrait (selon les définitions modernes) se comporter. Voici un bon résumé de la question . Elle renvoie à l' mauvais vieux jours de soutien CSS non standardisé

2
répondu lnrbob 2011-05-20 18:59:22
Les navigateurs

doivent au moins rendre en mode standard. Voir L'article de John Resig sur le HTML 5 doctype: http://ejohn.org/blog/html5-doctype / . Maintenant, si vous voulez que votre navigateur n'utilise pas de normes et de rendu comme son 1990 aller de l'avant et de ne rien ajouter et vous verrez flotteurs et d'autres éléments maintenant standard ne fonctionnent pas correctement. Si vous voulez avoir votre page de rendu/valider conformément à une norme particulière, alors vous voulez ajouter plus de le type doc mais il n'est pas nécessaire.

1
répondu scrappedcola 2011-05-20 19:00:54

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

la déclaration doctype n'est pas un HTML tag; c'est une instruction pour le web navigateur sur quelle version de la langage de balisage la page est écrite dans.

la déclaration doctype fait référence à un Définition de Type de Document (DTD). Le DTD spécifie les règles pour la majoration de la langue, de sorte que les navigateurs rendre le contenu correctement.

référence

0
répondu breezy 2011-05-20 18:58:19

De W3Schools, un doctype est "une instruction pour le navigateur web sur quelle version du langage de balisage de la page est écrit."(http://www.w3schools.com/tags/tag_doctype.asp)

si vous n'incluez pas doctype, le navigateur peut supposer que vous utilisez un langage différent de celui que vous utilisez réellement, ce qui fait qu'il est mal Rendu.

0
répondu George Cummins 2011-05-20 18:59:32

From W3Schools .com:

la déclaration doctype n'est pas un HTML tag; c'est une instruction pour le web navigateur sur quelle version de la langage de balisage la page est écrite dans.

il y a une poignée de doctypes différents, et les changer peut changer radicalement la façon dont votre page rend.

0
répondu Ken Pespisa 2011-05-20 19:00:56