Použitie prvku DOCTYPE v režime Quirks

Nechajte modul Doctype, aby sa prehliadače dostali do režimu Quirks

Ak ste navrhovali webové stránky dlhšie ako niekoľko mesiacov, s najväčšou pravdepodobnosťou viete, že je ťažké písať stránku, ktorá vyzerá rovnako vo všetkých prehliadačoch . V skutočnosti to nie je možné. Mnoho prehliadačov bolo napísaných so špeciálnymi funkciami, s ktorými sa dokázali zaobchádzať. Alebo majú špeciálne spôsoby, ako zaobchádzať s vecami, ktoré sa líšia od toho, ako ich iné prehliadače zvládnu. Napríklad:

Problém pre vývojárov prehliadačov spočíva v tom, že musia vytvárať webové prehliadače, ktoré sú spätne kompatibilné s webovými stránkami vytvorenými pre staršie prehliadače. Kvôli riešeniu tohto problému tvorcovia prehliadačov vytvorili režimy pre prehliadanie prehliadačov. Tieto režimy sú definované prítomnosťou alebo neprítomnosťou prvku DOCTYPE a tým, čo volá DOCTYPE.

Prepínanie DOCTYPE a režim "Quirks"

Ak do svojej webovej stránky zadáte nasledujúci DOCTYPE:

Moderné prehliadače (Android 1+, Chrome 1+, IE 6+, iOS 1+, Firefox 1+, Netscape 6+, Opera 6+, Safari 1+) by to interpretovali takto:

  1. Pretože je správne napísaný DOCTYPE, spúšťa štandardný režim.
  2. Je to prechodový dokument HTML 4.01
  3. Pretože je to v štandardnom režime, väčšina prehliadačov bude kompatibilné s obsahom (alebo väčšinou kompatibilné) s HTML 4.01 Transitional

A ak vložíte tento DOCTYPE do vášho dokumentu:

Toto informuje moderné prehliadače, že chcete zobraziť stránku HTML 4.01 v prísnom súlade s DTD.

Tieto prehliadače prejdú do režimu "prísne" alebo "štandardné" a vykresľujú stránku v súlade s normami. (Takže pre tento dokument môžu byť značky, ktoré môžu prehliadač úplne ignorovať, pretože prvok FONT bol zastaraný v HTML 4.01 Strict.)

Ak necháte DOCTYPE úplne, prehliadače sa automaticky spustia do režimu "quirks".

Nasledujúca tabuľka zobrazuje to, čo robia bežné prehliadače, keď sú prezentované s rôznymi bežnými vyhláseniami DOCTYPE.

Microsoft robí to ťažšie

Aplikácia Internet Explorer 6 má aj funkciu, že ak zadáte nič nad vyhlásením DOCTYPE, prejdú do režimu quirks. Takže oba tieto príklady prinesú IE 6 do režimu quirks, hoci deklarácie DOCTYPE hovoria, že sú v prísnom štandardnom režime:

a XHTML 1.1 DOCTYPE:

Navyše, ak sa dostanete okolo IE6, potom máte "funkciu", ktorú spoločnosť Microsoft pridala do IE8 a IE9: prepínanie prvkov META a čierna listina webových stránok. V skutočnosti tieto dve verzie prehliadačov majú až sedem (!) Rôznych režimov:

IE 8 tiež zaviedol "režim kompatibility", kde sa používateľ mohol rozhodnúť zmeniť model vykresľovania späť do režimu IE 7. Takže aj keď nastavíte režim, ktorý chcete nastaviť pomocou prvkov DOCTYPE a META, vaša stránka by sa mohla vrátiť späť do režimu, ktorý je menej kompatibilný s normami.

Čo je režim Quirks?

Režim Quirks bol vytvorený, aby pomohol riešiť všetky podivné vykresľovanie a nevyhovujúcu podporu prehliadačov a hackov, ktoré web dizajnéri používali na riešenie týchto vecí. Obavy, že výrobcovia prehliadačov mali, že ak by prepnúť prehliadače na úplné splnenie špecifikácií, web dizajnéri by zostali za sebou.

Nastavením prepínania DOCTYPE a režimu "Quirks" umožnili web dizajnéri, aby si vybrali, ako chcú, aby prehliadače vykresľovali HTML.

Efekty režimu Quirks

Existuje niekoľko efektov, ktoré väčšina prehliadačov používa v režime Quirks:

Existuje aj rozdiel v režime "takmer štandardov".

Ako si vybrať DOCTYPE

Prejdem do detailu v dokumente DOCTYPE List, ale tu sú niektoré všeobecné pravidlá:

  1. Vždy vyberte režim štandardov. A súčasný štandard, ktorý by ste mali používať, je HTML5:
    Pokiaľ nemáte konkrétny dôvod, prečo sa chcete vyhnúť používaniu modulu HTML5 DOCTYPE, je to to, čo by ste mali používať.
  2. Prejdite na prísny HTML 4.01, ak potrebujete overiť pôvodné prvky alebo sa chcete vyhnúť novým funkciám z nejakého dôvodu:
  3. Ak ste nakrájali obrázky v tabuľke a nechcete ich opravovať, prejdite na Prechodný HTML 4.01:
  4. Nepoužívajte stránky zámerne v režime quirks. Vždy používajte DOCTYPE. To vám v budúcnosti ušetrí čas vývoja a naozaj nemá žiaden prínos. IE6 rýchlo stráca popularitu a navrhovaním pre tento prehliadač (čo je v podstate to, čo navrhujete v režime quirks je), obmedzujete sa sami, vašimi čitateľmi a vašimi stránkami. Ak musíte napísať pre IE 6 alebo 7, použite podmienečné komentáre na ich podporu, namiesto toho, aby ste nútili moderné prehliadače do režimu quirks.

Prečo používať DOCTYPE

Akonáhle si uvedomíte, že tento typ prepínania DOCTYPE sa deje, môžete ovplyvniť vaše webové stránky priamo priamo pomocou DOCTYPE, ktorý označuje, čo môže prehliadač očakávať od vašej stránky. Taktiež, akonáhle začnete používať DOCTYPE, budete písať HTML, ktorý je bližšie k platnej (mali by ste ju stále overovať). A tým, že píšete platnú verziu XHTML, povzbudíte tvorcov prehliadačov k vytváraniu štandardných prehliadačov.

Režimy prehliadača a Režim Quirks

DOCTYPE Android
chróm
Firefox
IE 8+
iOS
Opera 7.5+
safari
IE 6
IE 7
Opera 7
Netscape 6
nikto Režim Quirks Režim Quirks Režim Quirks
HTML 3.2
Režim Quirks Režim Quirks Režim Quirks
HTML 4.01
prechodný Režim štandardov * Režim štandardov * Režim štandardov
prechodný Režim Quirks Režim Quirks Režim Quirks
prísny Režim štandardov Režim štandardov * Režim štandardov
prísny Režim štandardov Režim štandardov * Režim štandardov
HTML5
Režim štandardov Režim štandardov * Režim Quirks
* S touto DOCTYPE sú prehliadače blízke normám, ktoré sú v súlade s normami, ale majú niekoľko problémov - určite otestujte. Toto je tiež známe ako režim "takmer štandardov".