Hrátky s vykreslovacími režimy v MSIE

2006-12-19 20:51 napsal Lukáš Havrlant

Microsoftí prohlížeč zná v zásadě dva vykreslovací módy, konkrétně zpětně kompatibilní quirk a dále standardní mód, který se více snaží dodržovat standardy. K přepínání těchto módů se běžně používá <!doctype>, což je sice krutě nestandardní (například nepočítáme-li mailing listy, na w3c se ani slovo quirk či quirks téměř nevyskytuje), ale za to je to velice funkční. Velice přehlednou tabulku můžeme nalézt u Pixyho.

Ovšem MSIE se přeci jen chová ještě trošičku specifičtěji. Takže hezky popořadě. Pokud zvolíme HTML doctype bez adresy, jsme v quirku (pro testování jsem použil mírně upravenou javascriptovou metodu document.compatMode, nic lepšího jsem nevygooglil):

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">

Chceme-li zůstat u přechodné verze a přitom se dostat do standardního módu, přidáme adresu:

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
    "http://www.w3.org/TR/html4/loose.dtd">

A nyní už začínají lehká kouzla. Explorer totiž nereaguje jen na tuto konkrétní adresu, anóbrž na jakoukoliv adresu. Tedy pokud tam napíši svůj web, budu taky ve standardu:

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
    "http://havrlant.net">

Z předchozího bodu lze usoudit, že pokud místo adresy do doctypu zadám normální text, budu v quirku. A taky že jo:

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
    "nějaká ta beďovina">

Ovšem zajímavé je, jak MSIE určuje, zda se jedná o adresu. Žádné složitosti, prostě hledá, zda se tam vyskytuje řetězec „http://“. Tedy i s tímto doctypem dosáhnete standardního módu:

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
    "nějaká ta beďovina, ale s http://">

Takže teď už jen zbývá doufat, že w3c nezačne používat namísto http protokolu protokol ftp:

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
    "ftp://www.w3.org/TR/html4/loose.dtd">

To by byl docela průšvih.

Zdroj: Having fun with IE – part 3: doctype switching

Linkuj.cz!

Komentáře

19. December 2006, 21:14

Hurá mám tu první komentář! Jo pěkné hrátky :-) Jen ten adblock bys mohl trochu zúžit…

19. December 2006, 22:23

Zajímavé, díky za článek :-) Zajímalo by mě, co na to ostatní prohlížeče :-)

19. December 2006, 23:32

2. ObiSkyWalker: Stačí si ty odkazy v ostatních prohlížečích otevřít :-).

20. December 2006, 02:09

Takže teď už jen zbývá doufat, že w3c nezačne používat namísto http protokolu protokol ftp

I kdyby, nic nám nebrání zkopírovat si DTD a systémový identifikátor namířit někam k sobě, na beďovinu s http.

20. December 2006, 08:30

4. llook: pokud ovšem budeme vědět, proč se nám IE najednou shazuje do quirku

# MzK
22. December 2006, 19:59

IE je prostě zobrazovač a ne prohlížeč stránek

24. December 2006, 00:41

No sranda docela :))

Komentáře jsou uzavřeny