Você fez tudo que achou certo, mas a página não se comporta corretamente nos navegadores mais recentes. Isso porque você escreveu XHTML e CSS inválidos. Você usou o Document Object Model (DOM) padrão do W3C para manipular elementos dinâmicos na página. E quando os navegadores tentam implementar esses padrões, seu site falha. Provavelmente, isso é causado por um tipo de documento incorreto (DOCTYPE). Este artigo fornece como funciona o DOCTYPE e explica alguns usos reais desses tipos de documentos no mundo real.
Por que um DOCTYPE?
De acordo com os padrões HTML e XHTML, um DOCTYPE (abreviação de "declaração de tipo de documento") é usado para informar ao navegador qual versão do (x)HTML você está usando e deve aparecer no topo de cada página. DOCTYPEs são um componente importante das páginas web: sem eles, seu CSS não será mais válido.
Conforme mencionado no artigo da ALA mencionado anteriormente (e outros pontos interessantes também), DOCTYPE também deve ser adaptado para outros navegadores, como Mozilla, IE5/Mac, ou IE6 ou IE7.
Um novo DOCTYPE contém um URI inteiro (nota sconf: Universal Resource Identifier, Universal Resource Identifier) (uma URL completa), que informa aos navegadores para analisar (renderizar) a página em um modelo compatível com o padrão. Processe (X)HTML, CSS e DOM de acordo com o que você espera.
Usar um DOCTYPE incompleto ou antigo, ou mesmo nenhum DOCTYPE, fará com que o navegador o converta em um modelo "Quirks", onde o navegador assume que você está escrevendo código pós-90 desatualizado e quebrado.
Com esta configuração, o navegador tentará analisar sua página usando o padrão antigo e analisar seu CSS no padrão IE4. E responde ao proprietário com um DOM especial (o IE responde ao DOM do IE, enquanto o Mozilla e o Netscape 6 respondem ao modelo que pensam que é).
Sem dúvida, não é isso que você deseja. Mas é algo que você recebe com frequência. Portanto, este artigo deseja corrigir esses DOCTYPEs incorretos ou incompletos.
(Nota: o navegador Opera não suporta essas regras. Ele sempre tenta analisar páginas da web em páginas adaptadas aos padrões. Por outro lado, o Opera não fornece um suporte forte para o DOM do W3C. Mas eles também podem funcionar bem) Ed: Já que isso artigo foi publicado pela primeira vez, o Opera adicionou funcionalidade compatível com DOM ao Opera 7.
Para onde foi o DOCTYPE? (Para onde FORAM TODOS OS DOCTYPES?)
Embora os tipos de documentos sejam uma parte integrante importante dos padrões WEB em navegadores, e embora o W3C lidere a criação de padrões WEB, você também espera que os sites W3C possam fornecer alguns tipos de documentos apropriados, e você também pode querer encontrar essas informações de forma mais rápida e fácil ., no entanto, enquanto escrevo isto, você ainda não pode. {Ed: O W3C agora lista uma série de DOCTYPEs padrão em seu site. Você pode vê-los nas Diretrizes do W3C, como "Meu site é padrão. E o seu?"}
W3.org não é um List Apart, WebReference ou Webmonkey. Ele não foi originalmente planejado para ajudar designers, desenvolvedores e organizações da sociedade civil da WEB a acelerar sua compreensão e uso das tecnologias mais recentes. Este não é o trabalho dele.
O W3C publica uma série de diretrizes, embora a maioria dos web designers as desconheça. #
Você pode pesquisar DOCTYPEs o dia todo no W3.org sem precisar consultar as listas dedicadas. E quando você baixa um DOCTYPE (geralmente relacionado a alguma proposta específica ou rascunho de trabalho), ele não funciona corretamente no seu site.
Em todo o site do W3C há DOCTYPEs com URIs ausentes (nota do sconf: URIs não completos), que apontam para o próprio site do W3C. Depois que eles forem movidos do W3C para suas próprias páginas da web, esses URLs se tornarão documentos inexistentes.
Por exemplo, o DOCTYPE de muitos sites é copiado diretamente do W3.org:
A seguir está o conteúdo citado: <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" |
Se você vir a última parte deste DOCTYPE ("DTD/xhtml1-strict.dtd"), descobrirá que este é um link relativo ao site W3C. Isso está no site do W3C, não no seu. Portanto, este URI não tem efeito no navegador. (nota sconf: quando você visita W3.org, isso só funciona porque é um link relativo).
Na verdade, este DOCTYPE deve ser alterado para:
A seguir está o conteúdo citado: <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" |
Observe que o DOCTYPE por trás contém um URI completo. Isso exibe um recurso válido na rede para que o navegador possa localizá-lo e analisar seu documento em um formato compatível com os padrões.
COMO USAR DOCTYPE(DOCTYPES QUE FUNCIONAM)
Então, como usar DOCTYPE? Que bom que você perguntou. O DOCTYPE completo abaixo é tudo que precisamos:
HTML 4.01 estrito, transicional, frame
A seguir está o conteúdo citado: <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" " http://www.w3.org/TR/html4/strict.dtd "> <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" " http://www.w3.org/TR/html4/loose.dtd "> <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Frameset//EN" " http://www.w3.org/TR/html4/frameset.dtd "> |
XHTML 1.0 estrito, transicional, estrutura
A seguir está o conteúdo citado: <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" " http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd "> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" " http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd "> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Frameset//EN" " http://www.w3.org/TR/xhtml1/DTD/xhtml1-frameset.dtd "> |
XHTML1.1 DTD
A seguir está o conteúdo citado: <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" |