Ao escrever o doctype HTML5, qual é o método correto?
<!DOCTYPE html>
ou
<!doctype html>
<!doctype html>
Ao escrever o doctype HTML5, qual é o método correto?
<!DOCTYPE html>
ou
<!doctype html>
<!doctype html>
Respostas:
Em HTML, o DOCTYPE não diferencia maiúsculas de minúsculas. Os seguintes DOCTYPEs são todos válidos:
<!doctype html>
<!DOCTYPE html>
<!DOCTYPE HTML>
<!DoCtYpE hTmL>
Nas serializações XML (ou seja, XHTML), o DOCTYPE não é necessário, mas se você o usar, DOCTYPE
deve estar em maiúsculas:
<!DOCTYPE html>
Consulte A serialização XML do HTML5, também conhecida como 'XHTML5' :
Observe que, se você não maiúsculas
DOCTYPE
em um documento XHTML, o analisador XML retornará um erro de sintaxe.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.
<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
Um DOCTYPE deve consistir nos seguintes componentes, nesta ordem:
1. A string that is an ASCII case-insensitive match for the string "<!DOCTYPE".
...
Nota: apesar de ser exibido em todas as maiúsculas, a especificação afirma que é insensível
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.
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
Às vezes, é valioso poder veicular documentos HTML5 que também são documentos XML bem formados.
Marcação poliglota W3 - Doctype
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:
* The string DOCTYPE is in 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 .
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.
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.
<!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.
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
.tag_doctype.asp
é inválido (404) e esta pergunta é sobre a doctype
declaração, que não é uma tag ... Enfim, a conclusão está correta: no HTML5, a palavra-chave doctype
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.
A declaração doctype faz distinção entre maiúsculas e minúsculas e qualquer sequência de caracteres ASCII que corresponda