O que é Quirks Mode?

Por: Henrique C. Pereira

Publicado em Wednesday 31 August 2005 às 14:53

Categoria: HTML/CSS/JScript

Eu sei que muitos já escreveram coisas sobre Doctypes, Box Model, Quirks Mode etc, mas eu quero sempre tentar levantar outras informações que complementem as já existentes. Sem querer reinventar a roda claro!

Quirks Mode é uma maneira peculiar em que os browsers interpretam o CSS. A palavra "quirks" em inglês significa "peculiaridade", "idiossincrasia". Quirks Mode é o oposto de "Strict Mode" (modo estrito, preciso). Quirks Mode e Strict Mode são as duas maneiras dos browsers interpretar seu CSS.

Quando o internet Explorer 4 e o Netscape 4 implementaram o CSS, nem um dos dois o fizeram de acordo com os padrões da W3C. Por incrível que pareça na época a implementação de CSS do Internet Explorer foi melhor do que o Netscape. Quando o Internet Explorer 5 saiu, muitos bugs da versão 4 foram corrigidos, mas alguns, como o infame box model, permaneceu. Os browsers começaram a implementar CSS da maneira que mais conviesse. Entretanto, quando os webstandards começaram a se tornar importantes, eles precisavam ser mais flexíveis. Se os browsers de uma versão para outra adotassem os padrões da web muitos sites feitos para as versões anteriores ficariam "quebrados", ou seja, não seriam bem aparentados na nova versão do browsers, e ao mesmo tempo, se eles não adotassem os padrões web, o que aos poucos foi se tornando uma tendência, eles ficariam para trás.

A solução para este problema deveria permitir que os desenvolvedores que quisessem fazer seus sites dentro dos padrões web poderiam fazê-lo sem problemas e ao mesmo tempo, os sites feitos do modo antigo, em "quirks mode" também deveriam exibir as páginas antigas, nas regras antigas. Ou seja, todos os browsers precisavam de dois modos, o modo Strict que seguisse os padrões da W3C e o modo peculiar de cada um (quirks mode).

Para escolher qual dos dois modos a se trabalhar, seria necessário um "dispositivo" que fosse possível alternar entre um modo e outro. A solução encontrada foi o "doctype switching" ou comutação (ativação) do doctype. Nos dias de hoje, todos os browsers modernos suportam essas alterações. Para você ativar o modo estrito (Strict Mode) e trabalhar com os padrões da W3C, a presença de um DocType correto é fundamental. Se você não utilizar nenhum DocType, os browsers vão trabalhar em Quirls Mode , como o Internet Explorer e o Ópera, com exceção do Mozilla Firefox e do Safari que sempre está em Strict Mode.

No Internet Explorer 6, a Microsoft implementou uma maneira de você validar sua página de acordo com a W3C e ao mesmo tempo trabalhar em Quirks Mode. Ou seja, para validar em XHTML 1 é preciso usar um DocType correto, mas usar um Doctype certo ativava o Strict Mode. A solução da Microsoft então, foi usar um prólogo (Prolog de XML) antes do Doctype que ativa o Quirks Mode ao mesmo tempo em que utiliza um DocType aceito e validado pela W3C:

<?xml version="1.0" encoding="iso-8859-1"?>

Ou então, basta soltar inserir uma linha vazia sobre o Doctype, sem inserir o Prolog em XML que a ativação do Quiks Mode funciona do mesmo jeito (bronca do Bruno Torres ao chamar isso de "bug" e não de solução. E ele está certo : P). Agora a escolha é sua sobre qual modo você quer usar para o Internet Explorer principalmente. Seja em Quirks Mode ou em Strict Mode , procure sempre usar um DocType certinho para nunca poluir a natureza!

Para saber mais:

Quirks Mode

http://hsivonen.iki.fi/doctype/

Bruno Torres.net: Porque a Microsoft não atualiza o Internet Explorer?

Tableless: Doctype e Browsers Modes

Comentários dos leitores

Este artigo possui 10 comentários

  1. Rafael C. da Silveir Tuesday 24 January 2006 às 23:39

    Muito interessante! :)

    Mas acho que vou continuar com o meu amigo strict!

  2. Pingback: Mudei meu mime-type » Revolução Etc

  3. André Gazola #1° Saturday 08 April 2006 às 08:20

    Muito bom o post, só dá uma verificada no link pro site do Bruno Torres, tá faltando um "w" no endereço ;)

    Abraço!

  4. Pingback: Declarando encodings em XHTML » Revolução Etc

  5. Pingback: Doctype - DTD - Document Type Definition » Revolução Etc - Web Standards em uma casca de noz!

  6. Pingback: Boas praticas para Desenvolvimento Web #1 » Clauber Stipkovic Halic - CSH

  7. Pingback: Bit por minuto » Para que Serve o Doctype?

  8. Pingback: neyRicardo • blog » Blog Archive » É Transitional mas é meu…

  9. Pingback: É Transitional mas é meu… « neyRicardo

  10. Pedro N. #2° Friday 17 September 2010 às 19:15

    Parabéns amigo, muito bom seu site. Tem me ajudado muito.

Deixe seu comentário:

Observação: Todos os campos obrigatórios estão marcados com um asterisco (*).

  1. As seguintes tags podem ser inseridas nos comentários: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>

Sobre este blog

Meu nome é Henrique C. Pereira e o Revolução Etc é o meu blog pessoal. Eu trabalho com design de interfaces, dispositivos móveis, planejamento de soluções web, arquitetura da informação, programação de interfaces, acessibilidade, padrões web, e-commerce e outras coisas relacionadas.
Leia mais sobre o autor.