O que é o DOCTYPE?

  • o que é o DOCTYPE e por que quero usá-lo?
  • Quais são os diferentes tipos de documentos que posso usar?
  • Qual é a diferença entre padrões e modos, e quais são algumas peculiaridades que eu posso encontrar com Doutipos diferentes?

finalmente, qual é o DOCTYPE apropriado que eu deveria usar?

Author: Jukka K. Korpela, 2009-01-06

9 answers

Basicamente, o DOCTYPE descreve o HTML que será usado na sua página.

Os navegadores também usam o DOCTYPE para determinar como desenhar uma página. Sem incluir um DOCTYPE ou incluindo um DOCTYPE incorreto pode ativar o modo quirks. O kicker aqui é que o modo quirks no Internet Explorer é muito diferente do modo quirks no Firefox (e outros navegadores), o que significa que você terá um Muito trabalho mais difícil tentando garantir que sua página funciona consistentemente em todos os navegadores se as páginas são renderizado no modo quirks do que você vai se eles são renderizados no modo padrão.

A Wikipédia tem um resumo mais detalhado das diferenças na renderização ao usar vários tipos de documentos . XHTML é ativado por certos tipos de doctypes, e há um pouco de debate sobre o uso de XHTML que é bem coberto em mitos XHTML e realidade.

Existem diferenças subtis entre diferentes tipos de "queixas-padrão", como o HTML5 doctype (<!DOCTYPE html>, prior para HTML5, apenas conhecido como o "magro doctype", que não gatilho normalizado renderização em navegadores mais antigos) e outras Informações, como um presente para o HTML 4.01 transitional:

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
 71
Author: Walter Rumsby, 2016-06-10 00:04:05

O DOCTYPE diz ao utilizador consumidor (navegadores web, web crawlers, ferramentas de validação) que tipo de documento é o ficheiro. Usando-o garante que o consumidor analisa corretamente o HTML como você pretendia.

Existem vários DOCTYPES diferentes para HTML, XHTML, e Framesets e cada um destes tem dois modos estritos e transitórios. O Strict diz que a tua marcação está a usar os padrões definidos exactamente. Ver W3C DTDs página para mais detalhes.

Quirksmode é basicamente o método de layout dos tempos de guerra do navegador quando os padrões eram muito menos respeitados e definidos. Geralmente uma página de modo padrão, que é válida, vai layout mais consistentemente em vários navegadores, mas pode não ter certas características que você precisa. Uma dessas características é o atributo alvo do anchor tag. O site Quirksmode é um grande recurso para estas diferenças.

Um pensamento final é que o novo padrão HTML5 propõe usar um muito simples DOCTYPE:

<!DOCTYPE html>

Usar este DOCTYPE é uma forma compatível para indicar que as suas páginas estão no modo padrão, e são HTML. Este é o método que o Google usa, e é razoavelmente fácil de lembrar. Eu recomendo usar este DOCTYPE a menos que você planeie usar XHTML.

 24
Author: Rob, 2015-09-17 03:55:16

Um doctype define qual a versão do HTML / XHTML que o seu documento usa. Você gostaria de usar um doctype para que quando você executar o seu código através de validadores, os validadores sabem qual versão do HTML/XHTML para verificar. Esta página oferece uma boa visão geral:

Não se esqueça de adicionar um doctype

Os tipos de documentos comuns que pode utilizar estão listados aqui:

Lista recomendada de DTDs

Qual tipo de documento você deve usar depende do código que você está usando, mas para ter uma ideia, tente executar o seu código através do validador W3C e use o Tipo de Documento no menu "Mais opções" para tentar diferentes tipos de documentos.

Serviço de Validação de marcação W3C

 6
Author: , 2009-01-06 01:52:06

Em HTML (incluindo XHTML) como usado nas páginas web, o DOCTYPE é uma cadeia que despoleta um dos poucos modos de navegador (modo quirks, modo de padrões, quase modo de padrões), dependendo da ortografia exata do DOCTYPE. Você quer usá-lo para selecionar um modo de navegador que melhor se adapta à sua página.

Formalmente, em SGML e XML, uma declaração DOCTYPE é uma referência a uma definição de tipo de Documento (DTD), que especifica as regras formais de sintaxe da linguagem de marcação. Nunca foi usado nenhum navegador DTDs para qualquer coisa ou até acessá-los. No entanto, eles são usados por validadores SGML e XML de marcação, como o W3C de marcação, exceto no modo HTML5. Portanto, a escolha do DOCTYPE determina como um validador funciona se o documento é submetido a ele. No entanto, o modo de operação do validador também pode ser selecionado em sua interface de usuário. (Processadores SGML e XML podem usar DOCTYPEs de diferentes maneiras, também, mas a pergunta é aparentemente destinada a ser limitada ao contexto HTML e para Navegadores da web e software intimamente relacionado.)

Não existe uma lista autorizada de Doutipos. Cada especificação HTML ou rascunho define seu próprio DOCTYPE, ou DOCTYPEs. O conjunto de DOCTYPEs reconhecidos pelos navegadores Ao selecionar o modo varia de acordo com o navegador. Na prática, não há nenhuma razão para usar um DOCTYPE que não seja <DOCTYPE html> como definido em HTML5 , embora HTML5 também lista alguns "Doutipos legados". Você pode usar esse DOCTYPE se quiser o modo de padrões (recomendado para novas páginas) e usar nenhum DOCTYPE se quiser o modo quirks (que poderá necessitar para as páginas legadas).

"Modo de normas" geralmente significa o modo de operação em que um navegador segue HTML, CSS, DOM e outras especificações o melhor que pode. Normalmente não significa total conformidade. "Quirks mode" é diferente em diferentes navegadores, mas geralmente significa uma tentativa de imitar o comportamento de navegadores muito antigos como o IE 5. O objetivo é manter as páginas antigas funcionando, sob a suposição de que eles podem confiar em recursos e insectos nos navegadores antigos. Veja a descrição o que acontece no modo Quirks? Note que existe um conceito bastante diferente, mais limitado de "modo quirks" no HTML5, que se assemelha muito ao documento chamado Modo de vida peculiar.

Uma questão típica é que as larguras de elementos são calculadas de forma diferente no modo quirks e no modo standards. Isto significa que o layout de uma página pode ser mais ou menos alterado ou até mesmo totalmente confuso, se uma página projetada para trabalhar em o modo quirks é visto no modo padrão (ou vice-versa).

Por isso, deve usar <!DOCTYPE html> para as páginas novas e manter qualquer tipo de Documento (se existir) que tenha usado para as páginas antigas.

No entanto, o modo quirks significa, em alguns navegadores, que muitas novas funcionalidades do CSS não são suportadas. Isto significa que se você quiser melhorar uma página antiga com algum recurso CSS3, pode muito bem ser necessário mudar para um DOCTYPE que aciona o modo de padrões. Nesse caso, você precisa rever e testar a página para ver se funcionará no modo padrão.

 3
Author: Jukka K. Korpela, 2015-01-15 15:19:59

Os tipos de documentos dizem ao navegador em que língua a página está escrita, seja em HTML ou XHTML. Por exemplo,

<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN"
    "http://www.w3.org/TR/html4/strict.dtd">

Diga ao navegador para desenhar a página como HTML4 strict. Navegadores mais antigos usados para desenhar páginas incorretamente e, portanto, navegadores mais recentes simulam erros dos navegadores mais antigos quando eles encontram um antigo doctype.

Hoje deve usar pelo menos HTML4 ou XHTML melhor.

Um item no blog sobre os doctypes é conserte o seu Site com o tipo de DOCTYPE direito! (de Uma Lista Separada .

 2
Author: Georg Schölly, 2011-10-28 08:23:10

Em primeiro lugar, não há nenhum doctype que você deva usar, mas a maioria dos designers tentam fazê-lo funcionar dentro do XHTML 1.0 estrito.

Um doctype não é mais do que uma declaração das marcas que pode usar dentro do seu html (embora os navegadores possam usar mais ou menos do que o definido), você pode realmente abrir o ficheiro doctype e começar a ler ( XHTML 1.0 Strict)

Se você não especificar um doctype, o navegador irá tentar o seu melhor para adivinhar, mas nem sempre atinge o tipo correcto.

O modo Quirks é apenas uma técnica usada pelos navegadores para serem compatíveis de trás para a frente, um grande exemplo do modo quirks é como IE torna as caixas

 1
Author: Ólafur Waage, 2009-01-05 23:32:57

Na web, um doctype não faz nada além de dizer ao brower se você quer padrões, quase padrões, ou modo quirks.

O Que muda no modo quirks depende do navegador: Firefox, Opera, Safari e Chrome implementar um conjunto limitado de peculiaridades, como remover o espaço para texto descendentes no código como <table><tr><td><img></td></tr></table> (solução: td img { vertical-align:bottom; }). IE, por outro lado, reverte para o motor de renderização em IE5.5. Isso significa que você não será capaz de usar Qualquer das novas funcionalidades implementadas desde 2000.

Para activar o modo de padrões, sugiro usar o Doctype HTML5, <doctype html>, pois é o mais fácil de lembrar.

 1
Author: Ms2ger, 2009-01-06 18:31:39

A declaração não é uma tag HTML; é uma instrução para o navegador web sobre a versão do HTML em que a página está escrita.

No HTML 4.01, a declaração refere-se a um DTD, porque o HTML 4.01 era baseado no SGML. O DTD especifica as regras para a linguagem de marcação, de modo que os navegadores tornem o conteúdo corretamente.

 1
Author: ancevinz, 2018-04-06 06:04:17

Um doctype é um documento que descreve como o conteúdo de um documento do tipo xhtml pode parecer (como uma página web). Nota: Isto define apenas a sintaxe dessa página, a renderização da página não é definida pelo DTD!

Por exemplo, um doctype poderia definir como a <table>-tag pode parecer - quais atributos aceita, e quais valores/tipos de valores são aceitos para cada atributo. Pense nisso como um léxico para a sua página web atual.

A Wikipedia tem um página informativa sobre os vários tipos de documentos que estão em uso comum. Não há nada que o impeça de criar o seu próprio doctype. As chances são, no entanto, que o navegador provavelmente não sabe como renderizar o seu documento.

Qual DTD a usar depende do que vai escrever. XHTML tem um DTD totalmente diferente do HTML, por exemplo.

 0
Author: Henrik Paul, 2009-01-05 23:37:42