Lors de l'écriture du doctype HTML5, quelle est la bonne méthode?
<!DOCTYPE html>
ou
<!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 obligatoire, mais si vous l'utilisez, DOCTYPE
doit être en majuscule:
<!DOCTYPE html>
Voir La sérialisation XML de HTML5, également appelée "XHTML5":
Notez que si vous ne mettez pas
DOCTYPE
majuscule dans un document XHTML, l’analyseur XML renverra une erreur de syntaxe.La deuxième partie peut être écrite en minuscule (
html
), en majuscule (HTML
) ou même en casse mixte (hTmL
) - elle fonctionnera toujours. Cependant, pour être conforme à Instructions de balisage Polyglot pour les documents XHTML compatibles HTML , vous devez l'écrire en minuscule.
Si quelqu'un se pose encore des questions en 2014, veuillez consulter ceci:
HTML5
Un DOCTYPE doit comprendre les composants suivants, dans cet ordre:
1. A string that is an ASCII case-insensitive match for the string "<!DOCTYPE".
...
Note: Malgré l'affichage 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.
La spécification XML indique DOCTYPE en majuscules, mais je ne trouve rien qui indique que "toutes les majuscules" est obligatoire (à titre de comparaison, dans la spécification HTML5 indiquée ci-dessus, il est affiché dans l'exemple en majuscules, mais la spécification indique explicitement qu'il est cas - 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]. De plus, DOCTYPE est conforme aux règles suivantes:
* The string DOCTYPE is in uppercase letters.
Notez donc que Ployglot Markup utilise un doctype HTML5 standard, mais avec des ajouts/modifications. Pour notre discussion, notamment, DOCTYPE est déclaré en majuscule .
Sommation
Voir la section HTML du W3 par rapport à XHTML
[Opinion] Je ne m'inquiéterais pas trop de la satisfaction de la conformité XML, à moins que vous ne cherchiez spécifiquement à en tenir compte. Pour la plupart des clients et des développements de serveurs basés sur JS, JSON a remplacé XML.
Par conséquent, je ne vois vraiment que cela s'applique vraiment si vous essayez de mettre à jour un système existant existant, basé sur xhtml/xml, afin de coexister avec les nouvelles fonctionnalités HTML5. Si tel est le cas, examinez les spécifications du balisage polyglotte.
Selon dernière spécification , vous devez utiliser quelque chose qui ne correspond pas à la casse pour <!DOCTYPE html>
. Ainsi, bien que les navigateurs soient obligés de prendre en charge le cas de votre choix, il est raisonnable d’en déduire que <!DOCTYPE html>
est le cas canonique.
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 comprendre les composants suivants, dans cet ordre:
<!DOCTYPE
.Les majuscules ou les minuscules sont "correctes". Toutefois, si vous utilisez des polices Web et que vous vous souciez de IE7, je vous recommande d'utiliser <!DOCTYPE html>
à cause d’un bogue dans IE7 où les polices Web échouaient parfois lorsqu’on utilisait <!doctype html>
_ (par exemple dans cette réponse ).
C'est pourquoi j'ai toujours majuscule le doctype.
La question implique en quelque sorte qu'il n'y a qu'une seule bonne réponse, offre un choix multiple de deux et nous demande d'en choisir une. Je suggère que pour HTML5 les deux <!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 que même sans doctype, ils essaieraient de traiter le code HTML de leur mieux. Et s’ils ne reconnaissent pas le doctype minuscule, ils feront de même. Il est donc inutile de le mettre en majuscule, car ces navigateurs ne pourront de toute façon pas implémenter complètement les déclarations HTML5.