Gamit ang DOCTYPE Element sa Quirks Mode

Iwanan ang Doctype upang Ilagay ang Mga Browser sa Quirks Mode

Kung nag-disenyo ka ng mga web page nang higit pa sa ilang buwan, malamang na alam mo ang kahirapan sa pagsusulat ng isang pahina na mukhang pareho sa lahat ng mga browser . Sa punto ng katotohanan, imposible iyon. Maraming mga browser ay nakasulat na may mga espesyal na tampok na maaari lamang nilang hawakan. O mayroon silang mga espesyal na paraan ng paghawak ng mga bagay na iba sa kung paano gagamitin ng ibang mga browser ang mga ito. Halimbawa:

Ang problema para sa mga nag-develop ng browser ay mayroon silang gumawa ng mga web browser na pabalik na tugma sa mga web page na binuo para sa mas lumang mga browser. Upang makitungo sa isyung ito, lumikha ng mga browser maker ang mga mode para magamit ang mga browser. Ang mga mode na ito ay tinukoy sa pamamagitan ng presensya o kawalan ng elemento ng DOCTYPE at kung ano ang tawag ng DOCTYPE.

Paglipat ng DOCTYPE at "Quirks Mode"

Kung inilagay mo ang sumusunod na DOCTYPE sa iyong web page:

Mga modernong browser (Android 1+, Chrome 1+, IE 6+, iOS 1+, Firefox 1+, Netscape 6+, Opera 6+, Safari 1+) ay mabibigyang-kahulugan ito sa sumusunod na paraan:

  1. Dahil mayroong isang wastong nakasulat na DOCTYPE, pinalitaw nito ang mga mode ng pamantayan.
  2. Ito ay isang HTML 4.01 Transitional na dokumento
  3. Dahil sa mode na pamantayan, ang karamihan sa mga browser ay magbibigay ng sumusunod na nilalaman (o karamihan ay sumusunod) sa HTML 4.01 Transitional

At kung inilagay mo ang DOCTYPE na ito sa iyong dokumento:

Sinasabi nito ang mga modernong browser na nais mong ipakita ang iyong HTML 4.01 na pahina sa mahigpit na pagsunod sa DTD.

Ang mga browser na ito ay papunta sa "mahigpit" o "mga pamantayan" na mode at i-render ang pahina sa pagsunod sa mga pamantayan. (Kaya, para sa dokumentong ito, ang mga tag tulad ay maaaring ganap na binalewala ng browser, dahil ang elemento ng FONT ay na-deprecate sa HTML 4.01 Strict.)

Kung iniwan mo ang DOCTYPE out ganap, ang mga browser ay awtomatikong kicked sa "quirks" mode.

Ang talahanayan sa ibaba ay nagpapakita kung ano ang ginagawa ng mga karaniwang browser kapag iniharap sa iba't ibang mga karaniwang deklarasyon ng DOCTYPE.

Ginagawang Mas Mahirap ang Microsoft

Mayroon ding tampok ang Internet Explorer 6 na kung ilagay mo ang anumang bagay sa itaas ng deklarasyon ng DOCTYPE, pupunta sila sa mode ng quirks. Kaya, pareho ng mga halimbawang ito ay maglalagay ng IE 6 sa mga mode ng quirks, kahit na sinasabi ng mga deklarasyon ng DOCTYPE na nasa mahigpit na pamantayan na mode:

at ang XHTML 1.1 DOCTYPE:

Dagdag pa, kung nakakuha ka ng nakaraang IE6, mayroon kang "tampok" na idinagdag ng Microsoft sa IE8 at IE9: META element switching at blacklisting ng website. Sa katunayan, ang dalawang bersyon ng browser na ngayon ay may hanggang sa pitong (!) Iba't ibang mga mode:

Ipinakilala rin ng IE 8 ang "Kakayahan na Mode" kung saan maaaring piliin ng user na baguhin ang rendering na modelo pabalik sa IE 7 mode. Upang kahit na itakda mo ang mode na nais mong itakda gamit ang parehong mga elemento ng DOCTYPE at META, maaari pa ring itulak ang iyong pahina sa mas kaunting mga mode na sumusunod sa pamantayan.

Ano ang Quirks Mode?

Ang mode ng Quirks ay nilikha upang matulungan ang pakikitungo sa lahat ng kakaibang rendering at di-sang-ayon na suporta sa browser at mga hack na ginagamit ng mga taga-disenyo ng web upang harapin ang mga bagay na iyon. Ang pag-aalala na ang mga tagagawa ng browser ay na kung inililipat nila ang kanilang mga browser sa ganap na pagsunod sa pagtutukoy, ang mga taga-disenyo ng web ay maiiwan.

Sa pamamagitan ng pag-set up ng DOCTYPE switching at "Quirks Mode" na pinapayagan ang mga taga-disenyo ng web na piliin kung paano nila nais ang mga browser na mag-render ng kanilang HTML.

Mga Mode ng Effect Quirks

Mayroong maraming mga epekto na ginagamit ng karamihan sa mga browser sa Quirks Mode:

Mayroon ding pagkakaiba sa "Almost Standards Mode:"

Paano Pumili ng isang DOCTYPE

Pupunta ako sa mas maraming detalye sa aking artikulo na Lista ng DOCTYPE, ngunit narito ang ilang pangkalahatang alituntunin ng hinlalaki:

  1. Laging piliin muna ang mga pamantayan ng mode. At ang kasalukuyang pamantayan na dapat mong gamitin ay HTML5:
    Maliban kung mayroon kang isang tiyak na dahilan upang maiwasan ang paggamit ng HTML5 DOCTYPE, ito ang dapat mong gamitin.
  2. Pumunta sa mahigpit na HTML 4.01 kung kailangan mo upang patunayan ang mga elemento ng legacy o nais na maiwasan ang mga bagong tampok para sa ilang kadahilanan:
  3. Kung mayroon kang mga hiniwang larawan sa isang table at ayaw mong ayusin ito, pumunta sa Transitional HTML 4.01:
  4. Huwag isulat ang mga pahina nang sadya sa mode ng quirks. Laging gumamit ng DOCTYPE. I-save ito sa oras ng pag-unlad sa hinaharap, at talagang walang pakinabang. Ang IE6 ay mabilis na nawawala ang katanyagan at sa pamamagitan ng pagdidisenyo para sa browser na ito (na kung saan ay mahalagang kung ano ang pagdidisenyo sa mode ng quirks) ay nililimitahan mo ang iyong sarili, ang iyong mga mambabasa, at ang iyong mga pahina. Kung dapat kang sumulat para sa IE 6 o 7, pagkatapos ay gamitin ang mga kondisyon na komento upang suportahan ang mga ito, sa halip na pagpilit ng mga modernong browser sa mode na quirks.

Bakit Gamitin ang DOCTYPE

Sa sandaling alam mo na ang ganitong uri ng paglipat ng DOCTYPE, maaari mong makaapekto sa iyong mga web page nang mas direkta sa pamamagitan ng paggamit ng isang DOCTYPE na nagpapahiwatig kung ano ang maaaring asahan ng browser mula sa iyong pahina. Gayundin, sa sandaling simulan mo ang paggamit ng DOCTYPE, magsusulat ka ng HTML na mas malapit sa pagiging wasto (dapat mo pa ring patunayan ito). At sa pamamagitan ng pagsusulat ng wastong XHTML, hinihikayat mo ang mga gumagawa ng browser na bumuo ng mga pamantayan na sumusunod sa mga browser.

Mga Bersyon ng Browser at Mga Mode ng Quirks

DOCTYPE Android
Chrome
Firefox
IE 8+
iOS
Opera 7.5+
Safari
IE 6
IE 7
Opera 7
Netscape 6
Wala Quirks Mode Quirks Mode Quirks Mode
HTML 3.2
Quirks Mode Quirks Mode Quirks Mode
HTML 4.01
Transisyonal Mode ng Pamantayan * Mode ng Pamantayan * Pamantayan ng Mode
Transisyonal Quirks Mode Quirks Mode Quirks Mode
Mahigpit Pamantayan ng Mode Mode ng Pamantayan * Pamantayan ng Mode
Mahigpit Pamantayan ng Mode Mode ng Pamantayan * Pamantayan ng Mode
HTML5
Pamantayan ng Mode Mode ng Pamantayan * Quirks Mode
* Gamit ang DOCTYPE na ito, ang mga browser ay malapit sa mga pamantayan na sumusunod, ngunit may ilang mga isyu-siguraduhin na subukan. Ito ay kilala rin bilang "Almost Standards Mode."