Al escribir el doctype HTML5, ¿cuál es el método correcto?
<!DOCTYPE html>
o
<!doctype html>
<!doctype html>
Al escribir el doctype HTML5, ¿cuál es el método correcto?
<!DOCTYPE html>
o
<!doctype html>
<!doctype html>
Respuestas:
En HTML, el DOCTYPE no distingue entre mayúsculas y minúsculas. Los siguientes DOCTYPE son válidos:
<!doctype html>
<!DOCTYPE html>
<!DOCTYPE HTML>
<!DoCtYpE hTmL>
En las serializaciones XML (es decir, XHTML), el DOCTYPE no es obligatorio, pero si lo usa, DOCTYPE
debe estar en mayúscula:
<!DOCTYPE html>
Consulte La serialización XML de HTML5, también conocida como 'XHTML5' :
Tenga en cuenta que si no escribe
DOCTYPE
en 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
): seguirá funcionando. Sin embargo, para cumplir con las Directrices de marcado de Polyglot para documentos XHTML compatibles con HTML , debe escribirse en minúsculas.
<title/foo/
sería equivalente a <title>foo</title>
. Solo unos pocos validadores HTML usan SGML. La especificación HTML5 es la primera en aclarar esto: whatwg.org/specs/web-apps/current-work/multipage/…
html
). Aquí está la oración completa: “La segunda parte se puede escribir en minúsculas ( html
), mayúsculas ( HTML
) o incluso mayúsculas y minúsculas ( ), hTmL
aún funcionará. Sin embargo, para cumplir con las Directrices de marcado de Polyglot para documentos XHTML compatibles con HTML, debe escribirse en minúsculas ".
Si alguien todavía se pregunta en 2014, consulte esto:
HTML5
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
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 requieren 'todas las mayúsculas' (en comparación, en la especificación HTML5 enumerada anteriormente, se muestra en el ejemplo en mayúsculas, pero la especificación establece explícitamente que no distingue entre mayúsculas y minúsculas ).
Marcado políglota
W3 Polyglot Markup - Introducción
A veces es valioso poder servir documentos HTML5 que también son documentos XML bien formados.
El marcado Polyglot utiliza una declaración de tipo de documento (DOCTYPE) especificada en la sección 8.1.1 de [HTML5]. Además, el DOCTYPE cumple con las siguientes reglas:
* The string DOCTYPE is in uppercase letters.
Entonces, tenga en cuenta que Ployglot Markup usa un doctype HTML5 regular, pero con adiciones / cambios. Para nuestra discusión, lo más notable es que DOCTYPE se declara en mayúsculas .
Suma
Ver la sección HTML vs. XHTML del W3
[Opinión] No me preocuparía demasiado por cumplir con el cumplimiento de XML a menos que esté tratando específicamente de tenerlo en cuenta. Para la mayoría del desarrollo de clientes y servidores basados en JS, JSON ha reemplazado a 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 que coexista con la nueva funcionalidad HTML5. Si este es el caso, busque en la especificación de marcado políglota.
De acuerdo con la última especificación , debe usar algo que no coincida con mayúsculas y minúsculas <!DOCTYPE html>
. Entonces, aunque los navegadores deben admitir cualquier caso que prefiera, es razonable inferir de esto que <!DOCTYPE html>
es el caso canónico.
<!DOCTYPE html>
, por lo tanto, sería razonable inferir que el autor de la especificación tiene una ligera preferencia por esa capitalización en particular. Voy a usar la misma capitalización que la especificación, ya que es bueno que estas cosas sean consistentes, pero si lo prefieres, <!dOcTyPe
entonces sé mi invitado :)
Cualquiera de las mayúsculas o minúsculas es "correcta". Sin embargo, si usa fuentes web y se preocupa por IE7, recomendaría usarlo <!DOCTYPE html>
debido a un error en IE7 donde las fuentes web a veces fallan si se usan <!doctype html>
(por ejemplo, en esta respuesta ).
Es por eso que siempre escribo en mayúsculas el doctype.
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:
<!DOCTYPE
.tag_doctype.asp
no es válido (404) y esta pregunta es sobre la doctype
declaración, que no es una etiqueta ... De todos modos, la conclusión es correcta: en HTML5, la palabra clave doctype
puede estar en mayúscula, minúscula o mixta.
La pregunta implica que solo hay una respuesta correcta, proporciona una opción múltiple de dos y nos pide que elijamos una. Sugeriría que para HTML5 tanto <!DOCTYPE html>
y<!doctype html>
son válidos.
Por lo tanto, un navegador compatible con HTML5 aceptaría el minúsculo y procesaría el html correctamente.
Escuché que los navegadores anteriores y ajenos a HTML5, incluso sin un doctype, intentarán procesar el html lo mejor que puedan. Y si no reconocen el doctype en minúscula, harán lo mismo. Por lo tanto, no tiene sentido hacerlo en mayúsculas ya que esos navegadores no podrán implementar completamente ninguna declaración HTML5 de todos modos.
La declaración doctype no distingue entre mayúsculas y minúsculas, y cualquier cadena de ASCII que coincida