Použití prvku DOCTYPE v režimu Quirks

Nechte okno Doctype, aby se prohlížeče dostali do režimu Quirks

Pokud navrhujete webové stránky déle než několik měsíců, s největší pravděpodobností znáte potíže s psaním stránky, která vypadá stejně ve všech prohlížečích . Ve skutečnosti to není možné. Mnoho prohlížečů bylo napsáno se speciálními vlastnostmi, které dokázaly zvládnout pouze. Nebo mají speciální způsoby, jak se vypořádat s věcmi, které se liší od toho, jak se s nimi zacházejí ostatní prohlížeče. Například:

Problémem pro vývojáře prohlížeče je to, že musí vytvářet webové prohlížeče, které jsou zpětně kompatibilní s webovými stránkami postavenými pro starší prohlížeče. Za účelem vyřešení tohoto problému vytvořili výrobci prohlížečů režimy pro provoz prohlížečů. Tyto režimy jsou definovány přítomností nebo nepřítomností prvku DOCTYPE a tím, co volá DOCTYPE.

Přepínání DOCTYPE a režim "Quirks"

Pokud na své webové stránce umístíte následující DOCTYPE:

Moderní prohlížeče (Android 1+, Chrome 1+, IE 6+, iOS 1+, Firefox 1+, Netscape 6+, Opera 6+, Safari 1+) by to interpretovali následujícím způsobem:

  1. Protože je správně napsaný DOCTYPE, spustí se standardní režim.
  2. Je to přechodový dokument HTML 4.01
  3. Protože je to v normálním režimu, většina prohlížečů bude kompatibilní s obsahem (nebo většinou kompatibilní) s jazykem HTML 4.01 Transitional

A pokud vložíte tento DOCTYPE do vašeho dokumentu:

To řekne moderním prohlížečům, že chcete zobrazit stránku HTML 4.01 v souladu s DTD.

Tyto prohlížeče přejdou do režimu "přísné" nebo "standardní" a budou zobrazovat stránku v souladu s normami. (Takže pro tento dokument mohou tagy takového prohlížeče zcela ignorovat, protože prvek FONT byl zastaral v HTML 4.01 Strict.)

Pokud necháte DOCTYPE úplně, prohlížeče se automaticky přepnou do režimu "quirks".

Níže uvedená tabulka ukazuje, co běžné prohlížeče dělají při prezentaci s různými běžnými deklaracemi DOCTYPE.

Microsoft dělá to těžší

Aplikace Internet Explorer 6 má také funkci, že pokud položíte něco nad deklarací DOCTYPE, přejdou do režimu quirks. Takže oba tyto příklady uvedou IE 6 do režimu quirks, přestože deklarace DOCTYPE říkají, že jsou v přísném standardu:

a XHTML 1.1 DOCTYPE:

Navíc, pokud se dostanete kolem IE6, pak máte "funkci", kterou společnost Microsoft přidala v IE8 a IE9: přepínání prvků META a seznam blacklistů na webu. Ve skutečnosti mají tyto dvě verze prohlížečů až sedm (!) Různých režimů:

IE 8 také uvedl "režim kompatibility", kde se uživatel může rozhodnout změnit model vykreslování zpět do režimu IE 7. Takže i když nastavíte režim, který chcete nastavit pomocí prvků DOCTYPE a META, může být stránka stále tlačena zpět do režimu, který je méně kompatibilní s normami.

Co je režim Quirks?

Režim Quirks byl vytvořen, aby pomohl vypořádat se se všemi podivnými vykreslování a nekompatibilní podporou prohlížečů a hacků, které používali weboví návrháři k řešení těchto věcí. Obavy, že výrobci prohlížečů měli, bylo, že kdyby přepnuli prohlížeče na plnou specifikaci, budou weboví návrháři zanecháni.

Nastavením přepínače DOCTYPE a režimu Quirks umožnilo webovým návrhářům zvolit si, jakým způsobem chtějí prohlížeče vykreslit jejich HTML.

Quirks Mode Effects

Existuje několik efektů, které většina prohlížečů používá v režimu Quirks:

K dispozici je také rozdíl v režimu "téměř standardů":

Jak vybrat DOCTYPE

Jdu se podrobněji v mém článku DOCTYPE seznam, ale zde jsou některé obecné pravidla palce:

  1. Nejprve zvolte režim standardů. A současný standard, který byste měli používat, je HTML5:
    Pokud nemáte konkrétní důvod, abyste se vyhnuli používání dokumentu HTML5 DOCTYPE, je to to, co byste měli používat.
  2. Přejděte na přísné HTML 4.01, pokud potřebujete ověřit starší prvky nebo chcete z nějakého důvodu vyhnout se novým funkcím:
  3. Pokud jste v tabulce nakrájeli obrázky a nechcete je opravovat, přejděte na položku Přechodné HTML 4.01:
  4. Nepřipište stránky úmyslně do režimu quirks. Vždy používejte DOCTYPE. To vám v budoucnu ušetří na vývojovém čase a opravdu nemá žádný užitek. IE6 rychle ztrácí popularitu a tím, že navrhuje pro tento prohlížeč (což je v podstatě to, co navrhuje v režimu quirks), omezujete se, své čtenáře a vaše stránky. Pokud potřebujete napsat pro IE 6 nebo 7, použijte podmíněné komentáře k jejich podpoře, nikoliv přimět moderní prohlížeče k režimu quirks.

Proč používat DOCTYPE

Jakmile zjistíte, že se tento typ přepínání DOCTYPE děje, můžete ovlivnit vaše webové stránky přímo pomocí DOCTYPE, který označuje, co může prohlížeč od vaší stránky očekávat. Také, jakmile začnete používat DOCTYPE, budete psát HTML, který je blíže k platné (měli byste ji ještě potvrdit). A psaním platné XHTML doporučujete výrobcům prohlížečů vytvářet prohlížeče kompatibilní s normami.

Režimy prohlížeče a režimu Quirks

DOCTYPE Android
Chrome
Firefox
IE 8+
iOS
Opera 7.5+
Safari
IE 6
IE 7
Opera 7
Netscape 6
Žádný Režim Quirks Režim Quirks Režim Quirks
HTML 3.2
Režim Quirks Režim Quirks Režim Quirks
HTML 4.01
Přechodné Režim standardů * Režim standardů * Režim standardů
Přechodné Režim Quirks Režim Quirks Režim Quirks
Přísný Režim standardů Režim standardů * Režim standardů
Přísný Režim standardů Režim standardů * Režim standardů
HTML5
Režim standardů Režim standardů * Režim Quirks
* S tímto prohlížečem DOCTYPE jsou prohlížeče v souladu s normami, ale mají určité problémy - nezapomeňte otestovat. Toto je také známé jako režim "téměř standardů".