O que é Quirks Mode?

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

10 Responses to “O que é Quirks Mode?”

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

    Abraço!

  2. Pedro N.

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

Leave a Reply

XHTML: You can use these tags: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>