Lors de l'écriture du doctype HTML5, quelle est la méthode correcte ?
<!DOCTYPE html>
o
<!doctype html>
Lors de l'écriture du doctype HTML5, quelle est la méthode correcte ?
<!DOCTYPE html>
o
<!doctype html>
En HTML, le DOCTYPE est insensible à la casse. Les DOCTYPE suivants sont tous valides :
<!doctype html>
<!DOCTYPE html>
<!DOCTYPE HTML>
<!DoCtYpE hTmL>
Dans les sérialisations XML (c'est-à-dire XHTML), le DOCTYPE n'est pas nécessaire, mais si vous l'utilisez, DOCTYPE
doit être en majuscules :
<!DOCTYPE html>
Voir La sérialisation XML de HTML5, alias "XHTML5". :
Notez que si vous ne mettez pas en majuscule
DOCTYPE
dans un document XHTML, l'analyseur XML renverra une erreur de syntaxe.La deuxième partie peut être écrite en minuscules (
html
), majuscules (HTML
) ou même un cas mixte (hTmL
) - il fonctionnera toujours. Toutefois, pour se conformer à la Directives de balisage polyglottes pour les documents XHTML compatibles avec HTML il doit être écrit en minuscules.
Non, c'est incorrect. En SGML, le déclaration de type de document est la production 110, en XML c'est la production 28. Dans les deux cas, il est déclaré sous la forme de la chaîne fixe "DOCTYPE" (qui n'est pas un nom de fichier étiquette il s'agit d'un mot-clé ). Ainsi, dans les définitions canoniques des normes SGML et XML respectives, il s'agit de toujours en majuscules. Si vous trouvez un logiciel qui autorise un "doctype" en minuscules, ce logiciel n'est pas conforme aux normes. Les navigateurs sont conçus pour être "libéraux dans ce qu'ils acceptent", mais un processeur XML conforme devrait signaler cette erreur de validation.
...et je dois souligner que X/HTML5 est également incorrect sur ce point. Comme spécifié, XHTML5 n'est tout simplement pas un balisage XML valide, et ne peut pas l'être. Il y a de nombreuses erreurs dans la spécification X/HTML5. Je ne la prends pas très au sérieux. Le fait qu'ils aient dû créer un " balisage polyglotte " (un concept complètement nouveau) indique clairement qu'ils ont fait une croix dessus.
@Ichiro Je parle de HTML, pas de SGML. Aucun navigateur n'a jamais implémenté SGML. S'ils le faisaient, <title/foo/
serait équivalent à <title>foo</title>
. Seuls quelques HTML validateurs utiliser le SGML. La spécification HTML5 est la première à clarifier ce point : whatwg.org/specs/web-apps/current-work/multipage/
Si quelqu'un se pose encore la question en 2014, consultez ceci :
HTML5
Un DOCTYPE doit être constitué des éléments suivants, dans cet ordre :
- Une chaîne qui est une correspondance ASCII insensible à la casse pour la chaîne "<!DOCTYPE".
...
Note : Bien qu'elle soit affichée en majuscules, la spécification indique qu'elle est insensible .
XHTML5
Cette spécification ne définit pas d'exigences de niveau syntaxique autres que celles définies pour le XML proprement dit.
Les documents XML peuvent contenir un
DOCTYPE
si on le souhaite, mais ce n'est pas obligatoire pour se conformer à cette spécification. Cette spécification ne définit pas d'identifiant public ou système, et ne fournit pas de DTD formelle.
En regardant la spécification XML, on trouve DOCTYPE
en majuscules, mais je ne trouve rien qui indique que "tout en majuscules" est requis (à titre de comparaison, dans la spécification HTML5 citée ci-dessus, il est affiché dans l'exemple en majuscules, mais la spécification indique explicitement qu'il s'agit de majuscules- ). insensible ).
Balisage polyglotte
Il est parfois utile de pouvoir servir des documents HTML5 qui sont également des documents XML bien formés.
Le balisage polyglotte utilise une déclaration de type de document (DOCTYPE) spécifiée par la section 8.1.1 de [HTML5]. En outre, le DOCTYPE est conforme aux règles suivantes :
- La chaîne DOCTYPE est en majuscules.
...
Ainsi, notez que le balisage polyglotte utilise un doctype HTML5 normal, mais avec des ajouts/changements. Pour notre discussion, le plus important est que le DOCTYPE est déclaré en majuscules .
Résumé
Consultez la section HTML vs. XHTML du W3.
[Opinion] Je ne m'inquiéterais pas trop de la conformité XML, à moins que vous ne cherchiez spécifiquement à la prendre en compte. Pour la plupart des développements de clients et de serveurs basés sur JS, JSON a remplacé XML.
Par conséquent, je ne vois cette solution s'appliquer que si vous essayez de mettre à jour un système existant, basé sur XHTML/XML, pour qu'il coexiste avec une nouvelle fonctionnalité HTML5. Si c'est le cas, regardez du côté de la spécification de balisage polyglotte.
Selon le dernières spécifications vous devez utiliser une correspondance insensible aux majuscules et aux minuscules pour les éléments suivants <!DOCTYPE html>
. Ainsi, bien que les navigateurs soient tenus de prendre en charge le cas que vous préférez, il est raisonnable d'en déduire que <!DOCTYPE html>
est le cas canonique.
La spécification indique assez clairement que doctype doit contenir une chaîne de caractères qui est l'équivalent insensible à la casse de '<!DOCTYPE', ce qui implique que '<!dOcTyPe' est tout aussi correct.
Comme je l'ai dit, la spécification exige que les navigateurs prennent en charge tous les cas, donc tous les cas fonctionneront. Mais l'auteur de la question cherche clairement une forme standard, canonique, donc en l'absence de raisons fortes pour choisir l'une plutôt que l'autre, vous pouvez aussi bien utiliser le cas d'exemple de la spécification...
Tout d'abord, je suis la personne qui a posé la question. Deuxièmement, qu'est-ce que vous regardez exactement qui vous suggère que la majuscule est plus correcte que la minuscule ! Votre réponse n'a pas de sens ; vous dites qu'il n'y a pas de distinction entre les majuscules et les minuscules, et que les majuscules sont donc la réponse la plus correcte.
Les majuscules ou les minuscules sont "correctes". Cependant, si vous utilisez des polices web et que vous vous souciez d'IE7, je vous conseille d'utiliser <!DOCTYPE html>
en raison d'un bogue dans IE7 où les polices web échouent parfois si l'on utilise <!doctype html>
(par exemple, dans cette réponse ).
C'est pourquoi je mets toujours le doctype en majuscule.
La norme pour le HTML5 est que les balises sont insensibles à la casse.
http://www.w3schools.com/html5/tag_doctype.asp
Plus techniquement : ( http://www.w3.org/TR/html5/syntax.html )
Un DOCTYPE doit être constitué des éléments suivants, dans cet ordre :
<!DOCTYPE
.
Je ne fais pas confiance à W3Schools à 100% ; ils ne sont pas affiliés au W3C et bien que la plupart de leurs informations soient bonnes, certaines ne le sont pas.
Les sites W3Schools ne présentent pas plus ou moins d'erreurs que les autres sites web. ( Exemple complètement aléatoire ) Prenez les informations avec un grain de sel, consultez les pages w3.org en cas de doute, et tout ira bien. Les vrais imbéciles sont ceux qui croient que W3Schools est un organisme officiel ou que leurs certificats ont une quelconque signification.
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.
0 votes
Ce sera le premier en général, mais n'importe lequel peut être utilisé <!DOCTYPE html>.
0 votes
J'ai réussi à répondre à ma propre question mais j'ai pensé que je la laisserais au cas où d'autres auraient une pensée similaire. Je préfère personnellement les minuscules ; rien d'autre dans HTML5 n'est en majuscules.
11 votes
Google.com utilise une minuscule
<!doctype html>
4 votes
@HelloWorld : C'est parce que les lettres minuscules se compressent mieux car elles sont plus courantes. Pour les sites qui reçoivent des millions de visites par jour, cela peut faire la différence.
0 votes
Qu'en est-il des fichiers SVG ?