Se você está projetando páginas da Web há mais de alguns meses, é bem provável que esteja ciente da dificuldade em escrever uma página com a mesma aparência em todos os navegadores. Na verdade, isso é impossível. Muitos navegadores foram escritos com recursos especiais que só eles poderiam manipular. Ou eles têm maneiras especiais de lidar com coisas que são diferentes de como outros navegadores lidam com elas. Por exemplo:
- Camadas foram criadas para uso em navegadores Netscape. Eles não funcionam em nenhum outro navegador e, de fato, foram preteridos no Netscape 6.x +.
- Quadros embutidos foram originalmente criados apenas para o Internet Explorer e desde então se tornaram parte da especificação HTML.
- O Internet Explorer 6.0 adiciona um espaço adicional (como um) tags adjacentes, a menos que você escreva o conteúdo do div em uma linha (longa). (O IE 6 tem muitas outras peculiaridades, assim como esta.)
- O Netscpe 4.7 não exibirá tabelas que não estejam escritas no HTML correto - ele mostrará uma página em branco. Isso foi corrigido no Netscape 6.
O problema para os desenvolvedores de navegadores é que eles precisam criar navegadores que sejam compatíveis com páginas da web criadas para navegadores mais antigos. Para lidar com esse problema, os criadores de navegadores criaram modos para os navegadores operarem. Esses modos são definidos pela presença ou ausência de um elemento DOCTYPE e o que DOCTYPE
chamadas.
DOCTYPE
Eu entro em mais detalhes no meu artigo DOCTYPE
Lista, mas aqui estão algumas regras gerais:
- Escolha sempre o modo de padrões primeiro. E o padrão atual que você deve usar é HTML5: a menos que você tenha um motivo específico para evitar o uso do HTML5
DOCTYPE
, isso é o que você deveria estar usando. - Vá para HTML 4.01 estrito se precisar validar elementos legados ou quiser evitar novos recursos por algum motivo:
- Se você tiver fatiado imagens em uma tabela e não quiser corrigi-las, vá para Transitional HTML 4.01:
- Não escreva páginas deliberadamente no modo quirks. Sempre use um
DOCTYPE
. Isso economizará tempo de desenvolvimento no futuro e realmente não terá nenhum benefício. O IE6 está rapidamente perdendo popularidade e, ao projetar para este navegador (que é essencialmente o que o design no modo quirks é), você está limitando a si mesmo, seus leitores e suas páginas. Se você tiver que escrever para o IE 6 ou 7, use comentários condicionais para suportá-los, em vez de forçar os navegadores modernos no modo quirks.
Por que usar DOCTYPE
Uma vez que você está ciente deste tipo de DOCTYPE
alternando, você pode afetar suas páginas da Web mais diretamente usando um DOCTYPE
Isso indica o que o navegador pode esperar da sua página. Além disso, quando você começar a usar DOCTYPE
, você estará escrevendo HTML que está mais perto de ser válido (você ainda deve validá-lo). E, ao escrever um XHTML válido, você incentiva os criadores de navegador a criar navegadores compatíveis com os padrões.
Versões do Navegador e Modo Quirks
DOCTYPE | AndroidcromadaRaposa de fogoIE 8+iOSOpera 7.5+Safári | IE 6IE 7Ópera 7 | Netscape 6 |
---|---|---|---|
Nenhum | Modo de Peculiaridades | Modo de Peculiaridades | Modo de Peculiaridades |
HTML 3.2 | |||
Modo de Peculiaridades | Modo de Peculiaridades | Modo de Peculiaridades | |
HTML 4.01 | |||
Transitório | Modo de Padrões * | Modo de Padrões * | Modo de Padrões |
Transitório | Modo de Peculiaridades | Modo de Peculiaridades | Modo de Peculiaridades |
Rigoroso | Modo de Padrões | Modo de Padrões * | Modo de Padrões |
Rigoroso | Modo de Padrões | Modo de Padrões * | Modo de Padrões |
HTML5 | |||
Modo de Padrões | Modo de Padrões * | Modo de Peculiaridades | |
* Com este DOCTYPE, os navegadores estão próximos dos padrões, mas têm alguns problemas - não deixe de testá-los. Isso também é conhecido como "Quase Padrões de Modo". |