Prvním prohlížečem s implementací kaskádových stylů byl Internet Explorer 3. Málokoho překvapí, že nectil doporučení CSS 1. Nešlo o projev neúcty ke konsorciu, v té době dotyčná specifikace neexistovala.
Čtvrtá verze téhož prohlížeče se již trochu opírala o hotové CSS 1 a implementovala i část toho, co se o dva roky později usadilo v doporučení CSS 2. Zároveň udržovala kompatibilitu se svou starší verzí a konkurenčním Netscapem 4, včetně některých jeho chyb a „chyb“.
Jak zarovnat jeden blokový element doprostřed jiného? Nešlo by to třeba předpisem text-align: center
? Och, to snad ne! To je přeci špatně! Je chybou Exploreru, že to sbaští. Nebo ne?
Vlastnost
text-align
popisuje, jak je text zarovnán uvnitř elementu. [...]Příklad:
div.center { text-align: center; }
Jelikož se
text-align
dědí, všechny blokové elementy uvnitř elementu<div>
sclass="center"
budou vystředěné.— CSS 1, 5.4.6 Vlastnosttext-align
, W3C, 17. prosince 1996
Co je psáno, je dáno. Či alespoň bylo. Dnes již je zřejmé, že konsorcium myslelo tu větu u příkladu trošku úplně jinak, než ji napsalo. V červnu 2001 samo svoji chybu oficiálně uznalo a v CSS 2 ji roku 1998 napravilo.
Explorer 4 poslechl „mocný hlas“ konsorcia a upravil vlastnost text-align
, s níž přišla jeho předchozí verze. Záměrně se podřídil té jediné správné definici, o které dnes takřka každý začátečník jistojistě ví, že je špatná. Tvůrci Mozilly a Opery vycházeli už jen z CSS 2 a bloky nezarovnávají.
Vznikl zbytečný konflikt, kterému šlo snadno předejít. Stačilo by, kdyby konsorcium nedělalo dodatečně z vlastní chyby chybu jiných.
Vlastnost background-attachment
podporuje Explorer od verze čtyři. Použitelná však byla již ve verzi tři skrze zkrácený zápis background: url('obrázek') fixed
. První implementace je tedy starší, než specifikace CSS 1. Jak je tomu v Exploreru u mnoha dalších vlastností, i zde je první implementace na dlouhou dobu poslední.
Vůči čemu je fixní pozadí fixní? Obě doporučení konsorcia říkají, že vůči zobrazovací ploše prohlížeče. Obě zároveň dovolují vyhovujícímu prohlížeči podporovat fixní pozadí pouze u elementu <body>
. Navzdory všeobecnému přesvědčení podporuje modré éčko tuto vlastnost od pradávna na všech elementech. Jenže jinak.
Podle Exploreru je fixní pozadí fixní v rámci elementu, což se projeví jen tehdy, má-li dotyčný element posuvník. Uživatel posouvá jeho obsah, pozadí zůstává na místě. V případě elementu <body>
se tato implementace „náhodou“ kryje s představou W3C. Je starší než ta představa. Byla první a po mnoho let i jediná. Posloužila jako vzor pro jiné prohlížeče, kupříkladu Opera ji opustila až ve verzi 7.
Další zbytečný konflikt. Kdyby W3C zavedlo k již implementovaným fixed
a scroll
třetí hodnotu (třeba canvas
) problém by neexistoval. Že by se tři hodnoty hodily nakonec stejně pochopilo.
Internet Explorer 4 představil světu úžasnou novinku: pseudotřídu :hover
. Aplikovala se výhradně na odkazy, přesněji řečeno na všechny elementy <a>
s atributem href
. Nebyla sama s takto omezenou působností, zapadla mezi pseudotřídy :link
a :visited
, s nimiž přišel Explorer 3.
Konsorciu se zmíněné omezení patrně nelíbilo, proto o rok později v CSS 2 zadefinovalo, že by :hover
měl fungovat na všech elementech. Uživatelé dnešních poslušných prohlížečů proto na postarších webech nechápavě klikají na nadpisy, jejichž barva se po přejetí myší mění:
Autoři takových stránek nepočítali s doporučením W3C. I zde bylo modré éčko po mnoho let jediným prohlížečem, jenž pseudotřídu :hover
znal.
Nejotravnější demonstraci důsledku konfliktu doporučení s první implementací si můžete prohlédnout paradoxně přímo na serveru W3.org. Některé návrhy specifikací z roku 1999 mají totiž ve stylopisu takovýto obecný předpis:
Ani lidé z konsorcia si necelý rok po vydání CSS 2 zjevně neuvědomovali, že natírají na modro vše, na co zavítá myší kurzor.
Spousta CSS vlastností implementovaných ve třetím a čtvrtém Exploreru předcházela specifikacím. Velká část z těch, které konsorcium předefinovalo jinak, nebyla v původní podobě pro zdravý vývoj World Wide Webu škodlivější, než předefinování samotné. Následky těchto sabotáží pociťujete dodnes.
Správná standardizační autorita má spory urovnávat. Ne vytvářet.