Usando o elemento DOCTYPE no modo Quirks

Deixar o Doctype para poñer navegadores en modo Quirks

Se estivo deseñando páxinas web por máis de uns meses, é probable que teña en conta a dificultade de escribir unha páxina que se vexa igual en todos os navegadores . En realidade, iso é imposible. Moitos navegadores foron escritos con características especiais que só poderían manexar. Ou teñen maneiras especiais de manexar cousas que son diferentes do que outros navegadores xestionan. Por exemplo:

O problema para os desenvolvedores do navegador é que teñen que crear navegadores web que son compatibles con versións web construídas para navegadores máis antigos. Para afrontar este problema, os fabricantes de navegadores crearon modos para que os navegadores funcionen. Estes modos están definidos pola presenza ou ausencia dun elemento DOCTYPE e o que DOCTYPE chama.

DOCTYPE Switching e "Quirks Mode"

Se pór o seguinte DOCTYPE na súa páxina web:

Os navegadores modernos (Android 1+, Chrome 1+, IE 6+, iOS 1+, Firefox 1+, Netscape 6+, Opera 6+, Safari 1+) interpretarían isto da seguinte forma:

  1. Debido a que hai un DOCTYPE escrito correctamente, isto activa o modo de patrón.
  2. É un documento HTML 4.01 Transicional
  3. Debido a que está no modo de estándares, a maioría dos navegadores farán que o contido sexa compatible (ou a maioría compatible) con HTML 4.01 Transitional

E se puxo este DOCTYPE no seu documento:

Isto di aos navegadores modernos que desexa mostrar a súa páxina HTML 4.01 en estrita conformidade coa DTD.

Estes navegadores entrarán en modo "estricto" ou "estándar" e renderizar a páxina de conformidade cos estándares. (Así, para este documento, as etiquetas como pode ser ignorado por completo polo navegador, xa que o elemento FONT quedou obsoleto en HTML 4.01 Estricto.)

Se deixa o DOCTYPE completamente fóra, os navegadores son automaticamente pateados no modo "peculiaridades".

A táboa seguinte mostra o que fan os navegadores comúns cando se presentan con diferentes declaracións comúns de DOCTYPE.

Microsoft fai máis difícil

Internet Explorer 6 tamén ten a característica de que se pór algo enriba da declaración DOCTYPE, entrarán en modo peculiar. Deste xeito, estes dous exemplos poñerán o IE 6 en modo peculiar, aínda que as declaracións de DOCTYPE afirman estar en estándares estritos:

e o XHTML 1.1 DOCTYPE:

Ademais, se obteñas IE6, tes a "característica" que Microsoft engadiu en IE8 e IE9: cambio de elementos META e lista negra do sitio web. De feito, estas dúas versións do navegador teñen ata sete (!) Modos diferentes:

IE 8 tamén introduciu o "Modo de compatibilidade" onde o usuario podería optar por cambiar o modelo de representación ao modo IE 7. De modo que mesmo se configurou o modo que desexa usar tanto cos elementos DOCTYPE como META, a súa páxina aínda podería ser reemprazada nun modo menos compatible con estándares.

Que é o modo Quirks?

O modo Quirks foi creado para axudar a xestionar todo o rendemento estraño e compatibilidade do navegador non compatible e hacks que os diseñadores web estaban a usar para xestionar esas cousas. A preocupación que os fabricantes do navegador tiña era que se cambiase os seus navegadores ao cumprimento da especificación completa, os diseñadores web quedarían atrás.

Ao configurar a conmutación de DOCTYPE e "Modo Quirks", os deseñadores web permitiron que elixan como querían que os navegadores rendericen o seu HTML.

Efectos do modo Quirks

Hai varios efectos que a maioría dos navegadores usan no modo Quirks:

Hai tamén unha diferenza no "Modo Almost Standards:"

Como elixir un DOCTYPE

Entro en máis detalle na miña lista de artigos DOCTYPE, pero aquí tes algunhas regras xerais:

  1. Sempre elixa primeiro o modo estándar. E o estándar actual que debes usar é HTML5:
    A non ser que teña un motivo específico para evitar usar o DOCTYPE de HTML5, isto é o que debes usar.
  2. Vaia ao estricto HTML 4.01 se necesitas validar elementos antigos ou queres evitar novas funcións por algún motivo:
  3. Se tes imaxes en rodajas nunha táboa e non queres reparalos, ve a HTML 4.01 Transicional:
  4. Non escriba as páxinas deliberadamente en modo peculiar. Use sempre un DOCTYPE. Isto aforraranos no tempo de desenvolvemento no futuro e realmente non ten ningún beneficio. IE6 está perdendo rapidamente a popularidade e deseñando para este navegador (que é esencialmente o que o deseño en modo peculiar é) estás limitando a ti mesmo, aos teus lectores e ás túas páxinas. Se debes escribir para IE 6 ou 7, usa comentarios condicionales para soportalos, en vez de forzar os navegadores modernos no modo peculiar.

Por que usar DOCTYPE

Unha vez que teña coñecemento deste tipo de conmutación DOCTYPE, pode afectar as súas páxinas web de forma máis directa usando un DOCTYPE que indica o que o navegador pode esperar da súa páxina. Ademais, unha vez que comece a usar DOCTYPE, estará escribindo HTML que está máis preto de ser válido (aínda debería validalo). E escribindo XHTML válido, incentiva os fabricantes de navegadores a crear estándares de navegadores compatibles.

Versións do explorador e modo Quirks

DOCTYPE Android
Chrome
Firefox
IE 8+
iOS
Opera 7.5+
Safari
IE 6
IE 7
Opera 7
Netscape 6
Nada Modo Quirks Modo Quirks Modo Quirks
HTML 3.2
Modo Quirks Modo Quirks Modo Quirks
HTML 4.01
Transicional Modo Estándares * Modo Estándares * Modo Estándares
Transicional Modo Quirks Modo Quirks Modo Quirks
Estrita Modo Estándares Modo Estándares * Modo Estándares
Estrita Modo Estándares Modo Estándares * Modo Estándares
HTML5
Modo Estándares Modo Estándares * Modo Quirks
* Con este DOCTYPE, os navegadores están próximos aos estándares compatibles, pero teñen algúns problemas, asegúrese de probar. Isto tamén é coñecido como "Modalidade case estándar".