¿Doctype mayúscula o minúscula?


Al escribir el doctype HTML5 ¿cuál es el método correcto?

<!DOCTYPE html>

O

<!doctype html>
Author: c69, 2011-08-11

6 answers

En HTML, el DOCTYPE no distingue entre mayúsculas y minúsculas. Los siguientes tipos de documentos son todos válidos:

<!doctype html>
<!DOCTYPE html>
<!DOCTYPE HTML>
<!DoCtYpE hTmL>

En las serializaciones XML (es decir, XHTML) el DOCTYPE no es necesario, pero si lo usa, DOCTYPE debería estar en mayúsculas:

<!DOCTYPE html>

Véase La serialización XML de HTML5, también conocido como 'XHTML5':

Tenga en cuenta que si no utiliza DOCTYPE mayúsculas en un documento XHTML, el analizador XML devolverá un error de sintaxis.

La segunda parte se puede escribir en minúsculas (html), mayúsculas (HTML) o incluso mayúsculas y minúsculas (hTmL) - todavía funcionará. Sin embargo, para cumplir con las Pautas de Marcado Políglota para Documentos XHTML compatibles con HTML, debe escribirse en minúsculas.

 154
Author: Mathias Bynens,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2012-02-10 08:15:02

Si alguien todavía se pregunta en 2014, consulte esto:

HTML5

W3 HTML5 Spec-Doctype

Un DOCTYPE debe constar de los siguientes componentes, en este orden:

1. A string that is an ASCII case-insensitive match for the string "<!DOCTYPE".
...

Nota: a pesar de mostrarse en mayúsculas, la especificación indica que es insensible

----------------------------------------------------------------------

XHTML5

W3 HTML5 - XHTML

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.

Mirando la especificación XML, enumera DOCTYPE en mayúsculas, pero no puedo encontrar nada que indique que se requiere 'todas las mayúsculas' (para la comparación, en la especificación HTML5 listada anteriormente, se muestra en el ejemplo en mayúsculas, pero la especificación indica explícitamente que es mayúscula- insensible).

----------------------------------------------------------------------

Marcado políglota

W3 Marcado Políglota - Intro

A veces es valioso poder servir documentos HTML5 que también son documentos XML bien formados.

W3 Polyglot Markup-Doctype

El marcado políglota utiliza una declaración de tipo de documento (DOCTYPE) especificada en la sección 8.1.1 de [HTML5]. Además, el DOCTYPE se ajusta a las siguientes reglas:

* The string DOCTYPE is in uppercase letters.

Por lo tanto, tenga en cuenta que el marcado Ployglot utiliza un doctype HTML5 regular, pero con adiciones/cambios. Para nuestro discusión, más notablemente que DOCTYPE se declara en mayúsculas.

----------------------------------------------------------------------

Suma

Ver la sección HTML vs. XHTML del W3

[Opinion] No me preocuparía demasiado por satisfacer el cumplimiento XML a menos que esté tratando específicamente de hacer consideraciones para ello. Para la mayoría de los clientes y el desarrollo de servidores basados en JS, JSON ha reemplazado XML.

Por lo tanto, solo puedo ver que esto realmente se aplica si está tratando de actualizar un sistema heredado existente basado en xhtml/xml para coexistir con la nueva funcionalidad HTML5. Si este es el caso, busque en la especificación de marcado políglota.

 32
Author: ucsarge,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2014-05-30 02:58:27

De acuerdo con la última especificación , debe usar algo que no distingue entre mayúsculas y minúsculas para <!DOCTYPE html>. Así que mientras que los navegadores están obligados a soportar cualquier caso que prefiera, es razonable inferir de esto que <!DOCTYPE html> es el caso canónico.

 17
Author: John Mellor,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2012-08-15 11:36:22

El estándar para HTML5 es que las etiquetas no distinguen entre mayúsculas y minúsculas.

Http://www.w3schools.com/html5/tag_doctype.asp

Más Técnicamente: (http://www.w3.org/TR/html5/syntax.html)

Un DOCTYPE debe constar de los siguientes componentes, en este orden:

  1. Una cadena que es una coincidencia ASCII insensible a mayúsculas y minúsculas para la cadena <!DOCTYPE.
 7
Author: Stephen,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2014-09-06 15:45:56

Mayúscula o minúscula es "correcta". Sin embargo, si usa fuentes web y se preocupa por IE7, le recomendaría usar <!DOCTYPE html> debido a un error en IE7 donde las fuentes web a veces fallan si usa <!doctype html> (por ejemplo, en esta respuesta).

Esta es la razón por la que siempre mayúscula el doctype.

 6
Author: jpw,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2017-05-23 11:54:53

La pregunta implica que solo hay una respuesta correcta, proporciona una opción múltiple de dos, y nos pide que elijamos una. Yo sugeriría que para HTML5 ambos <!DOCTYPE html> y <!doctype html> son válidos.

Así que un navegador compatible con HTML5 aceptaría la minúscula y procesaría el html correctamente.

Navegadores anteriores y ajenos a HTML5, he oído, incluso sin un doctype, intentará procesar el html lo mejor que puedan. Y si no reconocen el doctype minúsculo hará el igual. Así que no tiene sentido hacerlo en mayúsculas ya que esos navegadores no serán capaces de implementar completamente ninguna declaración HTML5 de todos modos.

 2
Author: Clive,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2015-07-22 03:52:22