reklama

IE 9 bude rozumět standardům – to může být problém

Čím více standardů podporuje Internet Explorer 9, tím více v určitém úhlu pohledu komplikuje život programátorům. Celý trh si totiž zvykl na to, že kód pro IE je třeba „hackovat“.

Webové standardy nemusí být z hlediska kvality návrhu a technologie vždy to nejlepší, jejich podstatou je ale právě to slovíčko standard – jednoznačně popisují určitý úkon. Postupný přechod k W3C standardům trval Microsoftu dlouhá léta a díky této prodlevě vznikla hromada programátorských nesrovnalostí. Každý z hráčů používal své vlastní postupy, o kterých byl přesvědčený, že jsou nejlepší, a i když už nějaké ty standardy zavedl, mohl je implementovat „trochu jinak“.

Dědictví minulosti

Výsledkem toho všeho jsou tucty k nih o webovém designu, které radí, jak napsat web, který bude vypadat všude stejně s pixelovou přesností. Typickým příkladem takové nejednoty může být třeba rozdílná práce s ajaxem v Internet Exploreru 6 a ostatních prohlížečích nebo třeba jiný box model, tedy způsob, jak se chovají blokové elementy (div rámce aj.).

Další nejednota vznikne i s příchodem Internet Exploreru 9. Vlastně se opakuje situace z doby, kdy se blížil příchod Internet Exploreru 8. Devítkové „íéčko“ bude natolik správně podporovat webové standardy, že může nastat problém s optimalizací webů pro Internet Explorer obecně.

Klepněte pro větší obrázek
Technologické demo Internet Exploreru 9

Průhlednost čtyřikrát jinak

Pro názornost použiji příklad, který si vybrali i na oficiálním IEBlogu. Devítka rozumí barevnému modelu CSS3, podporuje tedy i vlastnost opacity pro průhlednost. Pokud tedy třeba pomocí třídy nastavíte nějakému prvku na stránce opacity: 0.5, bude prvek z padesáti procent průhledný.

Funguje to na jedničku, v čem je tedy problém? Internet Explorer pro průhlednost doposud používal vlastní filtr alpha, kterému ale pro změnu nebude rozumět nová Devítka – tedy pokud nepoužijete její kompatibilní mód. Jaký je výsledek? Designéři a programátoři budou muset pro úplnou kompatibilitu opět napsat více kódu – v tomto jednoduchém případě tedy budou muset v CSS použít jak standardní CSS3 vlastnost opacity, tak proprietární IE efekt alpha.

Ukázka kompatibilního CSS zápisu – použijí se obě podoby 

.padestiprocentniPruhlednost
{
    opacity: 0.5;
    filter: alpha(opacity=50);
}

To zase není žádná katastrofa, pokud ale budete chtít průhlednost objektu měnit dynamicky třeba pomocí Javascriptu, už se trošku zapotíte, budete si totiž muset zjistit, v jakém prohlížeči se zrovna stránka načetla a jestli je tedy třeba měnit parametry opacity, nebo alpha efektu. Případně v hlavičce stránky jedním řádkem kódu Internet Explorer přinutíte, aby používal kompatibilní režim a rozhodnete se pro standard, nebo proprietární efekt. Problém může nastat také u autodetekce, kdy si programátor v javascriptovém kódu zjistí jméno prohlížeče a podle něho pak použije buď starý IE kód, nebo CSS3 normu. Pokud by se však autodetekce netýkala konkrétních verzí a i v IE9 by se použil starý filtr alpha, stránka by se pochopitelně nezobrazila správně.

A kdy se to vše vyřeší? Microsoft snad v Devítce pohřbí své zbývající proprietární CSS „standardy“ a za pár let se konečně naplní idea skutečně standardizovaného HTML jazyka a kaskádových stylů, které vždy a za každé situace a v každém prohlížeči vykresli vše, tak jak má být.

Microsoft v tom ale není sám – nemá smysl mu křivdit, ostatně i Mozilla dlouhé roky používala svoje filtry -moz*, se kterými se setkáte v kódu dodnes. I zde tedy najdete zastaralý filtr pro průhlednost -moz-opacity. A nestandardní zápis používaly i webkitové prohlížeče, které zase mají vlastní předponu -webkit*. Průhlednost se nakonec dá řešit i pomocí CSS3 RGBA barevného modelu, kde poslední kanál A představuje míru průhlednosti, třeba: <div style="background-color: rgba(255, 0, 0, 0.5);">z poloviny průhledný červený rám</div>.

Ukázky kódu a další informace najdete v článku IE9, Opacity, and Alpha na oficiálním IEBlogu

Témata článku: Technologie, Microsoft, Web, Programování, Internet Explorer, Alpha

125 komentářů

Nejnovější komentáře

  • Rdm 20. 8. 2010 23:52:08
    MS nikdy netvrdil, že bude IE7 a 8 podporovat standardy na 100%. To, že to...
  • Barte 20. 8. 2010 23:33:50
    Už opravili konečně innerHTML bug?...
  • Barte 20. 8. 2010 23:32:48
    Standardy= pohádka . Je to asi stejná utopie jako ruská pe3estrojka na...
reklama
Určitě si přečtěte

Vybíráte herní periferii nebo hardware? Pak zapomeňte na nálepku Gaming

Vybíráte herní periferii nebo hardware? Pak zapomeňte na nálepku Gaming

** Herní hardware se od toho běžného často liší jen vzhledem ** Při výběru stále nezapomínejte na základní parametry ** Poradíme jak vybrat herní hardware i periferie

20.  2.  2017 | Stanislav Janů | 36

10 nejhorších produktů v historii Microsoftu

10 nejhorších produktů v historii Microsoftu

20.  2.  2017 | Karel Javůrek | 141

AMD oficiálně představilo procesory Ryzen. Známe i jejich české ceny

AMD oficiálně představilo procesory Ryzen. Známe i jejich české ceny

** AMD uvedlo první tři procesory Ryzen 7 ** Všechny budou pracovat s osmi jádry a šestnácti vlákny ** Na pulty obchodů se dostanou už za týden

22.  2.  2017 | Stanislav Janů | 132

EU se děsí Windows 10. Prý o nás vědí až příliš. Microsoft chystá změny

EU se děsí Windows 10. Prý o nás vědí až příliš. Microsoft chystá změny

** Evropští úředníci chtějí, aby byly Desítky transparentnější ** Microsoft od jara skutečně chystá změny ** Ochráncům soukromí to ale nestačí

21.  2.  2017 | Jakub Čížek | 218

Remix Singularity: Microsoft si na tom vylámal zuby. Jak dopadne Android?

Remix Singularity: Microsoft si na tom vylámal zuby. Jak dopadne Android?

** Microsoft do svých telefonů integroval desktopové prostředí ** Moc to ale nevyšlo, chyběl pořádný výkon ** Teď to zkoušejí ex-googleři s Remix Singularity

23.  2.  2017 | Jakub Čížek | 74


Aktuální číslo časopisu Computer

Supertéma o počítačové bezpečnosti

AMD Ryzen přichází

Velké testy kinoprojektorů a levných špuntových sluchátek

Příslušenství do USB-C

reklama
reklama