Lors de l'écriture du doctype HTML5, quelle est la méthode correcte?
<!DOCTYPE html>
ou
<!doctype html>
<!doctype html>
Lors de l'écriture du doctype HTML5, quelle est la méthode correcte?
<!DOCTYPE html>
ou
<!doctype html>
<!doctype html>
Réponses:
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 requis, mais si vous l'utilisez, il DOCTYPE
doit être en majuscules:
<!DOCTYPE html>
Voir La sérialisation XML de HTML5, alias 'XHTML5' :
Notez que si vous n'utilisez pas de majuscules
DOCTYPE
dans un document XHTML, l'analyseur XML renverra une erreur de syntaxe.La deuxième partie peut être écrite en minuscules (
html
), en majuscules (HTML
) ou même en casse mixte (hTmL
) - cela fonctionnera toujours. Cependant, pour se conformer aux Directives de balisage Polyglot pour les documents XHTML compatibles HTML , il doit être écrit en minuscules.
<title/foo/
cela équivaudrait à <title>foo</title>
. Seuls quelques validateurs HTML utilisent SGML. La spécification HTML5 est la première à clarifier ceci: whatwg.org/specs/web-apps/current-work/multipage/…
html
). Voici la phrase complète: «La deuxième partie peut être écrite en minuscules ( html
), en majuscules ( HTML
) ou même en casse mixte ( hTmL
) - cela fonctionnera toujours. Cependant, pour se conformer aux Directives de balisage Polyglot pour les documents XHTML compatibles HTML, il doit être écrit en minuscules. »
Si quelqu'un se demande encore en 2014, veuillez consulter ceci:
HTML5
Spécification W3 HTML5 - Doctype
Un DOCTYPE doit être composé des composants suivants, dans cet ordre:
1. A string that is an ASCII case-insensitive match for the string "<!DOCTYPE".
...
Remarque: bien qu'il soit affiché en majuscules, la spécification indique qu'il est insensible
XHTML5
This specification does not define any syntax-level requirements
beyond those defined for XML proper.
XML documents may contain a DOCTYPE if desired, but this is not required
to conform to this specification. This specification does not define
a public or system identifier, nor provide a formal DTD.
En regardant la spécification XML, elle répertorie DOCTYPE en majuscules, mais je ne trouve rien qui indique que `` tout en majuscules '' est requis (à titre de comparaison, dans la spécification HTML5 répertoriée ci-dessus, il est affiché dans l'exemple en majuscules, mais la spécification déclare explicitement qu'elle est insensible à la casse ).
Balisage polyglotte
Balisage polyglotte W3 - Introduction
Il est parfois utile de pouvoir servir des documents HTML5 qui sont également des documents XML bien formés.
Balisage polyglotte W3 - Doctype
Le balisage Polyglot utilise une déclaration de type de document (DOCTYPE) spécifiée par la section 8.1.1 de [HTML5]. De plus, le DOCTYPE est conforme aux règles suivantes:
* The string DOCTYPE is in uppercase letters.
Donc, notez que Ployglot Markup utilise un doctype HTML5 normal, mais avec des ajouts / changements. Pour notre discussion, plus particulièrement que DOCTYPE est déclaré en majuscules .
Addition
Voir la section HTML vs XHTML du W3
[Opinion] Je ne m'inquiéterais pas trop de la conformité XML à moins que vous n'essayiez spécifiquement d'y réfléchir. Pour la plupart des développements de clients et de serveurs basés sur JS, JSON a remplacé XML.
Par conséquent, je ne peux voir cela vraiment s'appliquer que si vous essayez de mettre à jour un système existant basé sur xhtml / xml pour coexister avec de nouvelles fonctionnalités HTML5. Si tel est le cas, examinez la spécification de balisage polyglotte.
Selon la dernière spécification , vous devez utiliser quelque chose qui ne respecte pas la casse <!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>
c'est le cas canonique.
<!DOCTYPE html>
, par conséquent, il serait raisonnable de déduire que l'auteur de la spécification a une légère préférence pour cette capitalisation particulière. Je vais utiliser la même capitalisation que la spécification, car c'est bien que ces choses soient cohérentes, mais si vous préférez <!dOcTyPe
être mon invité :)
Les majuscules ou les minuscules sont «correctes». Cependant, si vous utilisez des polices Web et que vous vous souciez d'IE7, je vous recommande d'utiliser en <!DOCTYPE html>
raison d'un bogue dans IE7 où les polices Web échouent parfois si elles sont utilisées <!doctype html>
(par exemple dans cette réponse ).
C'est pourquoi je mets toujours en majuscules le doctype.
La norme pour HTML5 est que les balises ne sont pas sensibles à la casse.
http://www.w3schools.com/html5/tag_doctype.asp
Plus techniquement: ( http://www.w3.org/TR/html5/syntax.html )
Un DOCTYPE doit être composé des composants suivants, dans cet ordre:
<!DOCTYPE
.tag_doctype.asp
est invalide (404) et cette question concerne la doctype
déclaration, qui n'est pas une balise ... Quoi qu'il en soit, la conclusion est correcte: en HTML5, le mot-clé doctype
peut être en majuscule, minuscule ou mixte.
La question implique qu'il n'y a qu'une seule bonne réponse, fournit un choix multiple de deux et nous demande d'en choisir une. Je suggérerais que pour HTML5 à la fois <!DOCTYPE html>
et <!doctype html>
sont valides.
Ainsi, un navigateur compatible HTML5 accepterait les minuscules et traiterait correctement le code HTML.
Les navigateurs précédents et inconscients de HTML5, j'ai entendu dire, même sans doctype, tenteront de traiter le html du mieux qu'ils le peuvent. Et s'ils ne reconnaissent pas le doctype minuscule, ils feront de même. Il ne sert donc à rien de le mettre en majuscule puisque ces navigateurs ne pourront de toute façon pas implémenter complètement les déclarations HTML5.
La déclaration doctype est insensible à la casse, et toute chaîne ASCII qui correspond