Doctype? What a hell is that?

by renie on jan 28th in Artigos

DoctypeMuitas vezes eu corrijo amigos que insistem em omitir o doctype de seus html, aí sempre me pergutam – Pra que isso? – ou então – Ah, essa merda ferra a renderização da minha aplicação/site. Resolvi explicar qual é a dessa parada então.

O doctype, ou Document Type ou DTD,serve para dizer ao browser como ele deve entender e executar o seu código, pois é no doctype que você informa qual a versão de html ou xhtml que você está usando e se o browser deve ler tudo ao pé da letra ou se ele pode deixar passar uma coisa ou outra “errada” no seu código, como por exemplo uma tag sem fechamento.

Uma das grandes vantagens de você não omitir essa informação é que você ganha performance, pois você já especifica logo de cara como você quer que sua página seja entendida, ou seja, o navegador não tem o trabalho de descobrir por conta própria essa informação. Outra vantagem é de você poder validar o seu código nos padrões w3C. Sem contar que seu html fica a prova de más interpretações.

Existem os seguintes tipos de doctype:

  • HTML
    • HTML 4.01 Strict – Pra quando você segue de forma rígida as regras do HTML 4.01
      • <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
    • HTML 4.01 Transitional – Pra quando você está migrando de regras mais antigas pras mais novas
      • <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
    • HTML 4.01 Frameset – Pra quando você está usando frames (eca!)
      • <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Frameset//EN" "http://www.w3.org/TR/html4/frameset.dtd">
    • HTML 3.2 – Só a título de curiosidade
      • <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 3.2 Final//EN">
    • HTML 2.0 – Só a título de curiosidade
      • <!DOCTYPE html PUBLIC "-//IETF//DTD HTML 2.0//EN">
  • XHTML
    • XHTML 1.0 Strict – Pra quando você segue de forma rígida as regras do XHTML 1.0
      • <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
    • XHTML 1.0 Transitional – Pra quando você está migrando de regras mais antigas pras mais novas
      • <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"
    • XHTML 1.0 Frameset – Pra quando você está usando frames (eca! denovo)
      • <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Frameset//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-frameset.dtd">
    • XHTML 1.1 DTD
      • <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
    • XHTML 1.1 Basic DTD
      • <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML Basic 1.1//EN" "http://www.w3.org/TR/xhtml-basic/xhtml-basic11.dtd">
  • MathML
    • MathML 2.0
      • <!DOCTYPE math PUBLIC "-//W3C//DTD MathML 2.0//EN" "http://www.w3.org/TR/MathML2/dtd/mathml2.dtd">
    • MathML 1.01
      • <!DOCTYPE math SYSTEM "http://www.w3.org/Math/DTD/mathml1/mathml.dtd">
    • MathML 2.0 + XHTML 1.1
      • <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1 plus MathML 2.0//EN" "http://www.w3.org/TR/MathML2/dtd/xhtml-math11-f.dtd" [ <!ENTITY mathml "http://www.w3.org/1998/Math/MathML"> ]>

É isso aí,  qualquer dia eu posto algo sobre MathML. Mas só pra não ficar no vazio, MathML é uma linguagem também de marcação, baseada em XML, que serve para representar melhor fórmulas e operações matemáticas, infezlimente são poucos os browsers que consegue interpretar de maneira correta essa linguagem, alguns precisam de um player pra isso. Mas é interessante. Meio inútil pra maior parte dos desenvolvedores, mas quem sabe um dia vc pode precisar ;) . Vale a pena dar uma pesquisada superficial na net, só pra ficar por dentro do assunto.

Tags

1 comentário

  1. Guga

    28th janeiro 2010

    Eu sou um desses preguiçoso que não coloca doctype. Curti a materia, mas e ai o que essa de MathML? Postalogo algo sobre ;) ! Fiquei Curioso.

Trackbacks/Pingbacks

  1. Renie » MathML – Cálculos no browser sem imagens

Deixe um comentário

Powered By Wordpress Designed By Ridgey