Por lo general, será el primero, aunque puede usarse cualquiera <! DOCTYPE html>
Shadow
Logré responder mi propia pregunta, pero pensé que lo dejaría en caso de que otros tuvieran un pensamiento similar. Yo personalmente prefiero minúsculas; nada más en HTML5 es mayúscula.
Josh
11
Google.com usa minúsculas<!doctype html>
Leo Galleguillos
3
@HelloWorld: Eso se debe a que las letras minúsculas se comprimen mejor porque son más comunes. Para los sitios que reciben millones de visitas al día, esto puede marcar la diferencia.
Zaz
¿Qué pasa con los archivos SVG?
William Entriken
Respuestas:
183
En HTML, el DOCTYPE no distingue entre mayúsculas y minúsculas. Los siguientes DOCTYPE son válidos:
No, esto es incorrecto. En SGML, la declaración de tipo de documento es producción 110, en XML es producción 28. En ambos casos se declara como la cadena fija "DOCTYPE" (que no es una etiqueta , es una palabra clave ). Entonces, en las definiciones canónicas en los respectivos estándares SGML y XML, siempre es mayúscula. Si encuentra software que permite un "doctype" en minúsculas, ese software no cumple con los estándares. Los navegadores están diseñados para ser "liberales en lo que aceptan", pero un procesador XML compatible debe marcar esto como un error de validación.
Ichiro Furusato
55
... y debo señalar que X / HTML5 también es incorrecto en esto. Como se especifica, XHTML5 simplemente no es un marcado XML válido, ni puede serlo. Existen numerosos errores en la especificación X / HTML5. No me lo tomo muy en serio. El hecho de que tuvieran que crear un " marcado políglota " (un concepto completamente nuevo) claramente dice que han lanzado un juego de palabras.
Ichiro Furusato
20
@Ichiro estoy hablando de HTML, no de SGML. Ningún navegador ha implementado SGML. Si lo hicieran, <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/…
Mathias Bynens
2
@ TestSubject528491 Ese párrafo trata sobre la segunda parte de DOCTYPE ( 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 ( ), hTmLaún funcionará. Sin embargo, para cumplir con las Directrices de marcado de Polyglot para documentos XHTML compatibles con HTML, debe escribirse en minúsculas ".
Mathias Bynens
15
@IchiroFurusato Es posible que desee leer en HTML5 . Cita: "Sin embargo, a diferencia de las versiones anteriores de HTML, la serialización HTML [5] ya no se considera una aplicación de SGML, sino que define su propia sintaxis. Si bien la sintaxis está inspirada en SGML, se está definiendo de una manera que se asemeja más a la forma en que los navegadores realmente manejan HTML en el mundo real, particularmente en lo que respecta al manejo de errores ".
Mathias Bynens
40
Si alguien todavía se pregunta en 2014, consulte esto:
This specification does not define any syntax-level requirements
beyond those definedfor XML proper.
XML documents may contain a DOCTYPE if desired, but thisisnot required
to conform to this specification.This specification does not define
a publicor 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 ).
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:
*Thestring DOCTYPE isin 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 .
[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.
La especificación establece claramente que doctype debe contener una cadena que sea el equivalente entre mayúsculas y minúsculas de '<! DOCTYPE', lo que implica que '<! DOcTyPe' es igual de correcto.
joshnh
66
Como dije, la especificación requiere que los navegadores admitan cualquier caso, por lo que cualquier caso funcionará. Pero el que hace la pregunta claramente está buscando una forma canónica estándar, por lo que en ausencia de fuertes razones para elegir una sobre la otra, también puede usar el caso de ejemplo de la especificación ...
John Mellor
9
La especificación lo escribe constantemente como <!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, <!dOcTyPeentonces sé mi invitado :)
John Mellor
3
@joshnh No entiendo tu confusión. 1) Se requiere que la declaración DOCTYPE no distinga entre mayúsculas y minúsculas. 2) La especificación HTML5 utiliza la mayúscula "DOCTYPE html" en sus ejemplos. Todo lo que parece decir esta respuesta es que una capitalización es consistente con la literatura, incluso si todas son válidas. ¿Por qué es tan indignante?
2
Creo que @joshnh entendió mal lo que John estaba tratando de decir. FWIW, estoy de acuerdo con el sentimiento de John de que, en ausencia de una razón particular para formatear de cierta manera, es preferible seguir lo que la especificación pide que los navegadores verifiquen. John nunca trató de dar a entender que es más correcto, solo que es algo en lo que basar su preferencia; de lo contrario, es una elección completamente arbitraria, ¿verdad?
Ryan Williams
7
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.
No confío en W3Schools al 100%, no están afiliados al W3C y aunque la mayoría de su información es buena, parte de ella no lo es.
joshnh
Esto es bastante conocido: aquí está el enlace w3.org
Stephen
44
W3Schools no tiene más o menos errores que otros sitios web. ( Ejemplo completamente al azar ) Tome la información con un grano de sal, consulte las páginas de w3.org cuando tenga dudas, y estará bien. Los verdaderos tontos son aquellos que creen que W3Schools es un organismo oficial o que sus certificados significan algo.
Sr. Lister
8
@MrLister: No creo que sea justo llamar tontos a las personas porque piensan que hay un vínculo entre algo llamado "W3Schools" y algo llamado "W3C". Los dos son lo suficientemente similares en nombre y dominio como para causar confusión, y la suposición de que el primero está de alguna manera respaldado o relacionado con el segundo. Esa es claramente la intención de W3Schools, que es una de las razones por las que enojan a tantas personas que entienden el problema. El hecho de que gran parte de su información sea inexacta agrava el problema (es decir, podría ser un poco perdonable si realmente brindaran un servicio razonable)
Bobby Jack
El enlace a tag_doctype.aspno es válido (404) y esta pregunta es sobre la doctypedeclaración, que no es una etiqueta ... De todos modos, la conclusión es correcta: en HTML5, la palabra clave doctypepuede estar en mayúscula, minúscula o mixta.
Abel
3
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.
<!doctype html>
Respuestas:
En HTML, el DOCTYPE no distingue entre mayúsculas y minúsculas. Los siguientes DOCTYPE son válidos:
En las serializaciones XML (es decir, XHTML), el DOCTYPE no es obligatorio, pero si lo usa,
DOCTYPE
debe estar en mayúscula:Consulte La serialización XML de HTML5, también conocida como 'XHTML5' :
fuente
<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
W3 HTML5 Spec - Doctype
Nota: a pesar de mostrarse en mayúsculas, la especificación indica que es insensible
-------------------------------------------------- --------------------
XHTML5
W3 HTML5 - XHTML
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
W3 Polyglot Markup - Doctype
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.
fuente
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.fuente
<!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.
fuente
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
.fuente
tag_doctype.asp
no es válido (404) y esta pregunta es sobre ladoctype
declaración, que no es una etiqueta ... De todos modos, la conclusión es correcta: en HTML5, la palabra clavedoctype
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.
fuente
La declaración doctype no distingue entre mayúsculas y minúsculas, y cualquier cadena de ASCII que coincida
Html5 estándar
fuente