Será o primeiro normalmente, embora qualquer um possa ser usado <! DOCTYPE html>
Shadow
Consegui responder à minha própria pergunta, mas pensei em deixá-la caso outros tivessem um pensamento semelhante. Eu pessoalmente prefiro letras minúsculas; nada mais no HTML5 está em maiúsculas.
joshnh
11
Google.com usa letras minúsculas<!doctype html>
Leo Galleguillos 22/11
3
@ HelloWorld: Isso ocorre porque as letras minúsculas são compactadas melhor porque são mais comuns. Para sites que recebem milhões de acessos por dia, isso pode fazer a diferença.
Zaz
E quanto aos arquivos SVG?
William Entriken
Respostas:
183
Em HTML, o DOCTYPE não diferencia maiúsculas de minúsculas. Os seguintes DOCTYPEs são todos válidos:
Não, isso está incorreto. No SGML, a declaração do tipo de documento é produção 110, em XML, produção 28. Nos dois casos, é declarada como a sequência fixa "DOCTYPE" (que não é uma marca , é uma palavra - chave ). Portanto, nas definições canônicas nos respectivos padrões SGML e XML, ela é sempre maiúscula. Se você encontrar um software que permita um "doctype" minúsculo, esse software não está em conformidade com os padrões. Os navegadores são projetados para serem "liberais no que aceitam", mas um processador XML compatível deve sinalizar isso como um erro de validação.
Ichiro Furusato
5
... e devo salientar que o X / HTML5 também está incorreto nisso. Conforme especificado, XHTML5 simplesmente não é uma marcação XML válida, nem pode ser. Existem vários erros na especificação X / HTML5. Eu não levo isso muito a sério. O fato de que eles tiveram que criar uma " marcação poliglota " (um conceito completamente novo) diz claramente que eles fizeram o trabalho.
Ichiro Furusato
20
@ Ichiro Estou falando de HTML, não de SGML. Nenhum navegador já implementou o SGML. Se eles fizeram, <title/foo/seria equivalente a <title>foo</title>. Apenas alguns validadores de HTML usam SGML. A especificação do HTML5 é a primeira a esclarecer isso: whatwg.org/specs/web-apps/current-work/multipage/…
Mathias Bynens
2
@ TestSubject528491 Esse parágrafo é sobre a segunda parte do DOCTYPE ( html). Aqui está a frase completa: “A segunda parte pode ser escrita em letras minúsculas ( html), maiúsculas ( HTML) ou até maiúsculas ( hTmL) - ainda funcionará. No entanto, para estar em conformidade com as Diretrizes de marcação poliglota para documentos XHTML compatíveis com HTML, ele deve ser escrito em letras minúsculas. ”
Mathias Bynens
15
@IchiroFurusato Você pode querer ler em HTML5 . Citação: “No entanto, diferentemente das versões anteriores do HTML, a serialização do HTML [5] não é mais considerada uma aplicação do SGML, mas define sua própria sintaxe. Embora a sintaxe seja inspirada no SGML, ela está sendo definida de uma maneira que se assemelha mais à maneira como os navegadores realmente lidam com HTML no mundo real, particularmente no que diz respeito ao tratamento de erros. ”
Mathias Bynens
40
Se alguém ainda estiver se perguntando em 2014, consulte:
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.
Observando a especificação XML, ela lista DOCTYPE em maiúsculas, mas não consigo encontrar nada que indique que 'all caps' é necessário (para comparação, na especificação HTML5 listada acima, ela é exibida no exemplo em maiúsculas, mas a especificação declara explicitamente que não diferencia maiúsculas de minúsculas ).
A marcação poliglota usa uma declaração de tipo de documento (DOCTYPE) especificada na seção 8.1.1 de [HTML5]. Além disso, o DOCTYPE está em conformidade com as seguintes regras:
*Thestring DOCTYPE isin uppercase letters.
Portanto, observe que a marcação do Ployglot usa um doctype HTML5 comum, mas com adições / alterações. Para nossa discussão, principalmente que DOCTYPE é declarado em todas as maiúsculas .
[Opinião] Eu não me preocuparia muito em satisfazer a conformidade com XML, a menos que você esteja especificamente tentando fazer considerações a respeito. Para a maioria dos clientes e o desenvolvimento de servidores baseados em JS, o JSON substituiu o XML.
Portanto, só posso ver isso se aplicando se você estiver tentando atualizar um sistema legado existente baseado em xhtml / xml para coexistir com a nova funcionalidade HTML5. Se for esse o caso, verifique as especificações da marcação poliglota.
De acordo com as especificações mais recentes , você deve usar algo que não diferencia maiúsculas de minúsculas <!DOCTYPE html>. Portanto, embora seja necessário que os navegadores suportem o caso que você preferir, é razoável inferir disso que <!DOCTYPE html>é o caso canônico.
A especificação afirma claramente que doctype deve conter uma string que seja o equivalente a maiúsculas e minúsculas de '<! DOCTYPE', implicando, portanto, que '<! DOcTyPe' esteja correto.
joshnh
6
Como eu disse, a especificação requer que os navegadores suportem qualquer caso, portanto, qualquer caso funcionará. Mas a questão-autor da questão está claramente à procura de uma forma normal, canônica, por isso, na ausência de fortes razões para escolher um sobre o outro, assim como você pode usar o exemplo de caso a partir da especificação ...
John Mellor
9
A especificação o escreve consistentemente como <!DOCTYPE html>, portanto, seria razoável inferir que o autor da especificação tem uma leve preferência por essa capitalização específica. Vou usar a mesma capitalização como a especificação, já que é bom para essas coisas para ser consistente, mas se você preferir <!dOcTyPe, em seguida, seja meu convidado :)
John Mellor
3
@joshnh Eu não entendo sua confusão. 1) A declaração DOCTYPE deve fazer distinção entre maiúsculas e minúsculas. 2) A especificação HTML5 usa a maiúscula "DOCTYPE html" em seus exemplos. Toda essa resposta parece estar dizendo é que uma capitalização é consistente com a literatura, mesmo que todas sejam válidas. Por que isso é tão ultrajante?
2
Acho que @joshnh não entendeu o que John estava tentando dizer. FWIW, eu concordo com o sentimento de John de que, na ausência de qualquer motivo específico para formatar de uma certa maneira, é preferível seguir o que a especificação pede que os navegadores verifiquem. John nunca estava tentando sugerir que é mais correto, apenas que é algo para basear sua preferência - caso contrário, é uma escolha completamente arbitrária, certo?
Ryan Williams
7
Letras maiúsculas ou minúsculas estão "corretas". No entanto, se você usa fontes da web e se preocupa com o IE7, recomendo usar <!DOCTYPE html>devido a um erro no IE7, onde as fontes da web às vezes falham se estiverem sendo usadas <!doctype html>(por exemplo, nesta resposta ).
É por isso que eu sempre uso maiúsculas no doctype.
O W3Schools não tem mais ou menos erros do que outros sites. ( Exemplo completamente aleatório ) Pegue as informações com um pouco de sal, consulte as páginas do w3.org em caso de dúvida e você ficará bem. Os verdadeiros idiotas são aqueles que acreditam que o W3Schools é um órgão oficial ou que seus certificados significam alguma coisa.
Lister
8
@ MrLister: Eu não acho justo chamar as pessoas de idiotas porque elas acham que existe um link entre algo chamado "W3Schools" e algo chamado "W3C". Os dois são semelhantes o suficiente em nome e domínio para causar confusão, e a suposição de que o primeiro seja de alguma forma endossado ou relacionado a ele. Essa é claramente a intenção da W3Schools, que é uma das razões pelas quais eles irritam tantas pessoas que entendem o problema. O fato de que um monte de suas informações é compostos imprecisos o problema (ou seja, pode ser um pouco perdoável se eles efectivamente prestado um serviço razoável)
Bobby Jack
O link para tag_doctype.aspé inválido (404) e esta pergunta é sobre a doctypedeclaração, que não é uma tag ... Enfim, a conclusão está correta: no HTML5, a palavra-chave doctypepode estar em maiúsculas, minúsculas ou mistas.
Abel
3
A pergunta implica que há apenas uma resposta correta, fornece uma escolha múltipla de duas e nos pede para escolher uma. Gostaria de sugerir que para HTML5 tanto <!DOCTYPE html>e <!doctype html>são válidos.
Portanto, um navegador compatível com HTML5 aceitaria o minúsculo e processaria o html corretamente.
Ouvi dizer que navegadores anteriores e alheios ao HTML5, mesmo sem um doctype, tentarão processar o html da melhor maneira possível. E se eles não reconhecerem o doctype em minúsculas, farão o mesmo. Portanto, não faz sentido torná-lo em maiúsculas, pois esses navegadores não poderão implementar totalmente nenhuma declaração HTML5.
<!doctype html>
Respostas:
Em HTML, o DOCTYPE não diferencia maiúsculas de minúsculas. Os seguintes DOCTYPEs são todos válidos:
Nas serializações XML (ou seja, XHTML), o DOCTYPE não é necessário, mas se você o usar,
DOCTYPE
deve estar em maiúsculas:Consulte A serialização XML do HTML5, também conhecida como 'XHTML5' :
fonte
<title/foo/
seria equivalente a<title>foo</title>
. Apenas alguns validadores de HTML usam SGML. A especificação do HTML5 é a primeira a esclarecer isso: whatwg.org/specs/web-apps/current-work/multipage/…html
). Aqui está a frase completa: “A segunda parte pode ser escrita em letras minúsculas (html
), maiúsculas (HTML
) ou até maiúsculas (hTmL
) - ainda funcionará. No entanto, para estar em conformidade com as Diretrizes de marcação poliglota para documentos XHTML compatíveis com HTML, ele deve ser escrito em letras minúsculas. ”Se alguém ainda estiver se perguntando em 2014, consulte:
HTML5
W3 HTML5 Spec - Doctype
Nota: apesar de ser exibido em todas as maiúsculas, a especificação afirma que é insensível
-------------------------------------------------- --------------------
XHTML5
W3 HTML5 - XHTML
Observando a especificação XML, ela lista DOCTYPE em maiúsculas, mas não consigo encontrar nada que indique que 'all caps' é necessário (para comparação, na especificação HTML5 listada acima, ela é exibida no exemplo em maiúsculas, mas a especificação declara explicitamente que não diferencia maiúsculas de minúsculas ).
-------------------------------------------------- --------------------
Marcação poliglota
Marcação poliglota W3 - Introdução
Marcação poliglota W3 - Doctype
Portanto, observe que a marcação do Ployglot usa um doctype HTML5 comum, mas com adições / alterações. Para nossa discussão, principalmente que DOCTYPE é declarado em todas as maiúsculas .
-------------------------------------------------- --------------------
Somatório
Veja a seção HTML vs. XHTML do W3
[Opinião] Eu não me preocuparia muito em satisfazer a conformidade com XML, a menos que você esteja especificamente tentando fazer considerações a respeito. Para a maioria dos clientes e o desenvolvimento de servidores baseados em JS, o JSON substituiu o XML.
Portanto, só posso ver isso se aplicando se você estiver tentando atualizar um sistema legado existente baseado em xhtml / xml para coexistir com a nova funcionalidade HTML5. Se for esse o caso, verifique as especificações da marcação poliglota.
fonte
De acordo com as especificações mais recentes , você deve usar algo que não diferencia maiúsculas de minúsculas
<!DOCTYPE html>
. Portanto, embora seja necessário que os navegadores suportem o caso que você preferir, é razoável inferir disso que<!DOCTYPE html>
é o caso canônico.fonte
<!DOCTYPE html>
, portanto, seria razoável inferir que o autor da especificação tem uma leve preferência por essa capitalização específica. Vou usar a mesma capitalização como a especificação, já que é bom para essas coisas para ser consistente, mas se você preferir<!dOcTyPe
, em seguida, seja meu convidado :)Letras maiúsculas ou minúsculas estão "corretas". No entanto, se você usa fontes da web e se preocupa com o IE7, recomendo usar
<!DOCTYPE html>
devido a um erro no IE7, onde as fontes da web às vezes falham se estiverem sendo usadas<!doctype html>
(por exemplo, nesta resposta ).É por isso que eu sempre uso maiúsculas no doctype.
fonte
O padrão para HTML5 é que as tags não diferenciam maiúsculas de minúsculas.
http://www.w3schools.com/html5/tag_doctype.asp
Mais tecnicamente: ( http://www.w3.org/TR/html5/syntax.html )
Um DOCTYPE deve consistir nos seguintes componentes, nesta ordem:
<!DOCTYPE
.fonte
tag_doctype.asp
é inválido (404) e esta pergunta é sobre adoctype
declaração, que não é uma tag ... Enfim, a conclusão está correta: no HTML5, a palavra-chavedoctype
pode estar em maiúsculas, minúsculas ou mistas.A pergunta implica que há apenas uma resposta correta, fornece uma escolha múltipla de duas e nos pede para escolher uma. Gostaria de sugerir que para HTML5 tanto
<!DOCTYPE html>
e<!doctype html>
são válidos.Portanto, um navegador compatível com HTML5 aceitaria o minúsculo e processaria o html corretamente.
Ouvi dizer que navegadores anteriores e alheios ao HTML5, mesmo sem um doctype, tentarão processar o html da melhor maneira possível. E se eles não reconhecerem o doctype em minúsculas, farão o mesmo. Portanto, não faz sentido torná-lo em maiúsculas, pois esses navegadores não poderão implementar totalmente nenhuma declaração HTML5.
fonte
A declaração doctype faz distinção entre maiúsculas e minúsculas e qualquer sequência de caracteres ASCII que corresponda
Padrão html5
fonte