Přejít k navigační liště

Zdroják » Webdesign » Tři zobrazovací módy Internet Exploreru 8

Tři zobrazovací módy Internet Exploreru 8

Články Webdesign

V pondělí se objevil ke stažení release candidate Internet Exploreru 8. Pokud se neobjeví žádné problémy, bude finální verze IE8 prakticky totožná s touto verzí. Pojďme si připomenout, čím vším zatím vývoj IE8 prošel a představme si jeho tři zobrazovací módy.

Nelehká pozice Internet Exploreru

Prohlížeč Internet Explorer se nachází v nelehké pozici. Po řadu let byl na webu nekorunovaným králem, ovšem jeho podíl v posledních letech nezadržitelně klesá. A Microsoftu se zatím nepodařilo tento pokles zarazit. Jak ostatně naznačuje následující obrázek:

Podíl prohlížečů za posledních 12 let

Podíl majoritních prohlížečů za posledních 12 let. Historický průběh hlavních prohlížečů Netscape, Internet Exploreru a Firefoxu je pravděpodobně notoricky známý a není třeba jej příliš komentovat (snad jen všimněte si klesající křivky Netscape v devadesátých letech a IE dnes, jsou si zatím nápadně podobné, jen pokles IE je o něco pomalejší). Zajímavý je také podíl „ostatních“ prohlížečů, který byl znatelný v polovině devadesátých let (do té doby vzniklo okolo 40 různých webových prohlížečů!), pak na mnoho let poklesl a teprve v posledních době opět narůstá – důkaz, že trh na poli prohlížečů začal opět fungovat. Obrázek byl převzat z W3b.org.

K TÉMATU: Jak vkročily prohlížeče do roku 2009

IE8 přicházel s velkou neznámou

O tom, jak bude IE8 vypadat, se poměrně dost spekulovalo. Není divu. Microsoft všechny informace dlouho přísně držel pod pokličkou. Dokonce ani osvědčení betatesteři a řada samotných zaměstnanců Microsoftu neměla dlouho k informacím o IE8 přístup. Troufám si říct, že Internet Explorer 8 byl na počátku jedním z nejpečlivěji střežených tajemství Microsoftu.

Kromě několika velmi strohých informací z publikovaných rozhovorů veřejnost nevěděla zhola nic. O IE8 mezitím začala kolovat řada zpráv rozličné povahy, podle nich měl IE8 obsahovat nový zobrazovací mód (to se potvrdilo, viz dále), a údajně také podporu mikroformátů (což se nakonec nepotvrdilo).

První informace o IE8 se objevila 5. prosince 2007 na blogu vývojářů IE a neříkala nic jiného, než že nástupce IE7 se bude (překvapivě) jmenovat IE8.

Splnění testu Acid 2

To ale bylo jen malé zahřívací kolo, protože hned devět dní nato byl na témže blogu zveřejněn známý obrázek:

Test Acid 2

Test Acid 2 v Internet Exploreru 8. Obrázek byl převzat z IEBlogu.

Ačkoliv funkční IE8 v té době nikdo stále ještě neviděl, bylo jasné, že v podpoře webových standardů IE udělal řádný krok kupředu (několikanásobně větší, než jej udělal IE7) a sklidil tenkrát nemalou chválu.

Nový zobrazovací mód v pořadí třetí

Krátce nato se objevila další zpráva. IE8 bude obsahovat nový zobrazovací mód a veškeré webdesignerské novinky se budou týkat pouze tohoto módu (testem Acid2 tedy projde pouze v tomto novém módu). Tento krok naopak sklidil rozporuplné reakce.

IE8 tak bude obsahovat 3 zobrazovací módy: quirks, standardní mód (stejný jako u IE7) a nový standardní mód (IE8 mód).

Podpora webových standardů (hlavně CSS 2.1) je v IE8 oproti jeho předchůdcům mnohem lepší. Což ovšem také znamená, že řada webů, které různými způsoby obcházely problémy IE6 a IE7, by se v IE8 nezobrazila správně.

Historie se opakuje

To není pro historii prohlížečů nic nového. Na přelomu století, kdy ve webových prohlížečích sílila první podpora kaskádových stylů, musely všechny prohlížeče zavést nový zobrazovací mód (ten původní byl pojmenován quirks, novému se začalo říkat standardní mód), aby se vyhnuly situaci, kdy nová verze prohlížeče špatně zobrazí řadu webů. (V takové situaci se říká, že prohlížeč rozbil web, protože z pohledu webdesignéra jím vytvořený web funguje dobře, to pouze kvůli novému prohlížeči jej uživatelé vidí rozbitý.) Výrobci prohlížečů tenkrát neměli moc na vybranou, konkurenční boj zuřil (viz graf výše) a vydat novou verzi, která by rozbila web, to by pro prohlížeč mohlo znamenat vážnou ránu.

Podobná situace se již dlouho neopakovala (až na jednu drobnou výjimku v roce 2002). Ačkoliv každý výrobce prohlížečů zlepšuje podporu webových standardů a občas tím i něco málo skutečně rozbije, nikdy nebyla mezi dvěma verzemi po sobě změna natolik skoková, aby se rozbila velká část webu. Až do příchodu IE8, ve kterém by bez patřičných úprav řada webů skutečně nefungovala. Vývojáři IE8 to ovšem předvídali, a proto v IE8 vedle obou původních zobrazovacích módů (quirks a standard) a najdeme i mód třetí („nejstandardněj­ší“). Celá magie pak již spočívá v tom, jak vyvolat ten správný mód, ve kterém bude daný web fungovat.

Ostatní prohlížeče k vyvolání jednotlivých módů používají doctype, případně MIME typ dokumentu. V IE8 si navíc můžete chování z pozice autora webu vynutit pomocí meta tagu nebo HTTP hlavičky s názvem X-UA-Compatible. Ta může nabývat hodnot odpovídající verzi prohlížeče, jehož standardní mód má vynutit (např. IE=8 nebo IE=7), případně speciálních hodnot IE=edge (značící automaticky nejnovější mód prohlížeče) nebo IE=EmulateIE7 (zajistí zapínání quirks nebo standardního módu přesně, jak to činil IE7).

Někteří odborníci ovšem varují, že na rozdíl od historického zavedení quirks módu, se kterým dodnes občas webdesigneři zápasí, mohou IE-módy způsobit větší škodu, právě proto, že jsou vázány na konkrétní verzi prohlížeče a tudíž budou na věky zakonzervovány. To nebyl případ původního quirks módu, který obsahoval seznam odchylek od standardního módu prohlížeče, ale nadále se vyvíjel (tudíž podpora nových webových standardů se s další verzí prohlížeče objevila jak v standardním módu, tak v quirks módu). Je proto možné, že zatímco dnes webdesigneři nový systém módů v IE často vítají, tak další generace za deset let bude tento systém zplna hrdla proklínat.

K TÉMATU: Novinky pro vývojáře v Internet Exploreru 8

Jak ověřit, v kterém módu se vaše stránky zobrazují?

Zobrazte si vaši stránku v IE8, spusťte vývojářskou konzoli (klávesa F12 nebo nabídka Tools – Developer Tools) a podívejte se do pravé horní části okna.

Developer Tools

Najdete tam dva ukazatele. Pro vás je důležitý Document Mode napravo, který říká, ve kterém zobrazovacím módu se aktuálně zobrazená stránka nachází.

Může nabývat hodnot: Quirks mode, IE7 Standards nebo IE8 Standards.

Podle něj poznáte, v jakém módu se vaše stránka vykresluje (ať již k volbě módu došlo na základě Doctype, meta tagu nebo HTTP hlavičky). Pokud si chcete vyzkoušet, jak by se vykreslovala v dalších módech, stačí tuto hodnotu přepnout a počkat na překreslení stránky (k přepnutí dojde jen dočasně, tj. hodí se pro účely ladění webů).

Ukazatel nalevo (Browser Mode) není pro testování stránek tolik důležitý. Netýká se toho, v jakém jakém módu se zobrazuje stránka, ale v jakém módu právě funguje prohlížeč. Říká, podle jakých pravidel se nyní bude prohlížeč rozhodovat mezi jednotlivými zobrazovacími módy (ano i toto rozhodování se může v IE8 měnit!). Browser Mode může nabývat třech hodnot: IE8 (výchozí volba – prohlížeč se rozhoduje jako IE8), IE8 Compatibility View (v prohlížeči byla zapnuta volba Compatibility View, viz dále) nebo IE7 (prohlížeč se chová jako IE7 – v tomto případě jsou dostupné jen dva zobrazovací módy Quirks a IE7 Standards, můžete jej např. použít, pokud chcete v IE8 testovat pro prohlížeč IE7).

Compatibility View

Módy si může přepnout i uživatel. Pokud si v IE8 otevřete Zdroják, bude Document Mode IE8 Standards (čili nový standardní mód), Browser Mode má výchozí hodnotu IE8. V případě, že by uživatel viděl web rozbitý, může použít tlačítko Compatibility View (jedná o jakési tlačítko poslední záchrany, které se pokusí zobrazit web ve starším módu prohlížeče):

Compatibility View

Po zapnutí Compatibility View se Browser Mode přepne na hodnotu IE8 Compatibility View, stránka je znovu nahrána a jako nový Document Mode je vyhodnocen IE7 Standards (tudíž standardní mód z IE7, pro který bude řada webů odladěna).

Zmíněné tlačítko Compatibility View má sloužit jako poslední záchrana i málo používaných webů, které jejich autoři pravděpodobně nebudou aktualizovat. Ovšem existují i známé weby, které se v IE8 rozbijí (jedná se např. Facebook, Myspace nebo CNN.com). IE8 proto bude obsahovat seznam nekompatibilních webů, na kterých zapne Compatibility View automaticky za uživatele. Tento seznam se bude aktualizovat pomocí aktualizačního systému Windows.

Sami vidíte, že zpoždění se někdy nevyplácí. Pokud by Microsoft po vydání IE6 vývoj Internet Exploreru neukončil, mohl si řadu starostí ušetřit.

Českou verzi Internet Exploreru si můžete stáhnout ze Slunečnice.

Pokračování příště

S dalšími novinkami Internet Exploreru 8 vás seznámíme v některém z dalších dílů.

Vítáte nový mód IE8?

Komentáře

Subscribe
Upozornit na
guest
27 Komentářů
Nejstarší
Nejnovější Most Voted
Inline Feedbacks
View all comments
v6ak

Není náhodou dobře, že se ukončí vývoj starého režimu? Tím se po čase přestane používat, ne?

David Majda

Představte si, že máte velký a složitý web (hodně obsahu, CSS a JavaScriptu), který je v tuto chvíli kompatibilní s IE7. Když by se zobrazil v novém standardním módu IE8, rozpadne se. Vy ale chcete uživatelům IE8 nabídnout podporu nějaké nové funkce, kterou podporuje jen tento prohlížeč. Bohužel, ten ji podporuje jen v novém standardním módu. Máte dvě možnosti:

  1. Upravit web tak, aby fungoval jak v IE7, tak v novém standardním módu IE8. To taky může znamenat spoustu hacků na detekci prohlížeče a duplicitního kódu.
  2. Na novou funkci se vykašlat.

Ani jedna z možností není dobrá. A stejná situace se bude opakovat s IE9, IE10, atd. Kdyby novinky fungovaly i v ostatních módech IE8, žádný problém by nevznikl.

luboskmetko

Nie je mi celkom jasné, prečo by sa mal dobre nakódovaný web rozpadnuť v IE8. Ak mám nejaké opravy pre IE6 a IE7 pripojené cez podmienené komentáre, tak IE8 by si mal brať vo svojom štandardnom móde len hlavný stylesheet a zobrazovať stránku rovnako dobre ako povedzme Firefox. Problém je podľa mňa skôr s tvorcami webov a ich nekvalitným kódom kvôli nim sú potrebné módy v IE8.

David Majda

Nie je mi celkom jasné, prečo by sa mal dobre nakódovaný web rozpadnuť v IE8.

Nikde nemluvím o tom, že by ten hypotetický web byl dobře nakódovaný. Třeba není, stejně jako drtivá většina webů. A v článku samotném jsou jako příklady zmíněny docela známé a velké weby, co s IE8 mají problémy (Facebook, MySpace, CNN). Je mi ale samozřejmě jasné, že když je web udělaný dobře, problémy nebudou zdaleka tak velké.

ToM

No já nevím, co tu řešíte. Tak si firma zaplatí předělání webu. Dobře pro vývojáře, ne? A že si zákazník vybral blbou platformu (byť nuceně)? Zákazník si vybral a nese za své rozhodnutí a následky odpovědnost. Konec, tečka.

luboskmetko

Ok, takže IE8 prináša nejaké ďalšie (nové) a zásadné chyby v spracovaní CSS a zobrazovaní webov? Nechce sa mi to teraz hľadať na nete (nechcem si pokaziť deň :) – totiž stále mi nie je jasné, ako niekto mohol nakódovať web, ktorý fungoval v IE7 a rozpadol sa v IE8. Buď taký človek pripojil stylesheet s hackmi pre IE7 pre všetky verzie vyššie ako IE7, a teraz ich IE8 vo svojom najnovšom štadardnom móde spracuje a web zle zobrazí alebo potom kódoval čisto len pre IE a nezaoberal sa zobrazením v ostatných štandardy podporujúcich prehliadačoch ako FF, Safari, Opera, Google Chrome. Ten druhý prípad znie neuveriteľne, ale asi to tak bude. Lebo ak niečo funguje v FF, prečo by to (konečne bez hackov) nemalo fungovať aj v IE8 (v jeho najnovšom móde)?

Ešte by ma zaujímalo, ktorý mód bude defaultne predvolený, v článku to buď nie je alebo som to prehliadol.

dev

v IE8 to bude IE8 standardni mod…

Štěpán Bechynský

I když jede web v IE7 módu, budou novinky jako jsou Webslices fungovat. Podívejte se třeba na seznam.cz.

v6ak

Dekuji za vysvětlení. Já tušil, že jsem si něco neuvědomil, ale nevěděl co.

Doufám, že tu už nebude žádný "třetí standardní mód". Snad nebude potřeba. To bychom se pak mohli dočkat třeba i "desátého (ne)standardního módu"…

Aichi

"a údajně také podporu mikroformátů (což se nakonec nepotvrdilo)."

Řekl bych, že to je pravda z 90%, protože webslice není nic jiného než mikroformát.

kkl2401

Pro mě je IE8 jenom dalším velkým zklamáním z dílny MS, a to z jediného prostého důvodu. Před více než třemi lety jeden z vývojářů (nebo designérů nebo na jaké je pozici) IE vysvětloval (podle mě poněkud nepřesvědčivě, ale to je vedlejší), proč ani IE7 stále ještě nebude umět XHTML (http://blogs.msdn.com/ie/archive/2005/09/15/467901.aspx). Byl jsem naivně přesvědčen, že do IE tu podporu prostě dobudujou, ostatně času na to měli dost. Vzhledem k tomu, že ani RC1 to stále ještě neumí, pochybuju, že to ve finální verzi bude. Takže nadále nebude možno tenhle formát pořádně používat, nadále budou mikroformáty muset používat různých více či méně podivných konstrukcí a já holt nadále budu tvrdohlavě a zaslepeně tvrdit, že IE je prostě špatný prohlížeč.

dev

Me se XHTML jako standard nelibi a je dobre, ze diky MS zustaneme jen HTML a ted do me. :)

alancox

Osobně se mi XHTML také nelíbí. Pro mě je XHTML jenom truc podnik W3C organizace, která nepřidává oproti HTML vůbec nic užitečného. XHTML vznikl jenom proto, že W3C nezvládla vývoj HTML, a chtěla ho tedy násilně ukončit, ale jak se ukázalo, W3C nezvládá ani vývoj XHTML – dostalo ho do slepé uličky nekompatibilitou verzí.

XHTML nepřináší vůbec nic oproti HTML, kromě naprosto zbytečné a pochybné výhody, že je to XML dokument. Což je fakticky téměř k ničemu. Myslím, že kdyby XHTML nevzniklo, bylo by lépe.

Jan Tvrdík

XHTML nepřináší vůbec nic oproti HTML, kromě naprosto zbytečné a pochybné výhody, že je to XML dokument.

To, že se jedná o XML dokument nám umožnuje rozširovat ho pomocí jmených prostorů (např. MathML) o další značky, což by mikroformátům určitě prospělo.

Další věcí je, že takový dokument je výrazně snáze strojově zpracovatelný – příklad využití.

alancox

„To, že se jedná o XML dokument nám umožnuje rozširovat ho pomocí jmených prostorů (např. MathML) o další značky, což by mikroformátům určitě prospělo.“

Což tak nějak HTML v zásadě jde také rozšiřovat. XHTML je naprosto zbytečné, kdyby se namísto toho rovnou zavedlo obecné XML, výhody jsou nabíledni. XHTML je k ničemu.

„Další věcí je, že takový dokument je výrazně snáze strojově zpracovatelný“

Což je na webu tak nějak docela skoro na nic. Pro browser je XHTML práce navíc, protože tak jako tak browser musí umět HTML – bez toho by ho fakticky nikdo nepoužíval. Takže jakýkoli další formát je jenom práce navíc – takže je úplně jedno, jestli je snáze strojově zpracovatelný – další formát, tedy XHTML, je jen a jedině mínus. Je to práce navíc, kterou W3C uložila na výrobce browserů. A to vůbec nemluvím o tom, že W3C (jak je obecně známo) kašle i na svoje vlastní standardy, tak pokud nacpat XHTML do HTML browserů způsobem, že browsery musely porušit standard HTML, ale to vůbec fungovalo.

Jinak využití Nette aj na pečenie aj na smaženie a bombastické reklamy jeho autora komentovat nebudu. Nehledě na to, že zparsovat HTML obecným parserem je taktéž možné a existuje k tomu řada nástrojů.

XHTML je zbytečný formát. Má nevýhody HTML a nemá 99% výhod XML. Neměl vůbec vzniknout – bylo by to pro celý web mnohem lepší.

Oldřich Šmehlík

> XHTML je zbytečný formát. Má nevýhody HTML a nemá 99% výhod XML.

Teď teda nevím, ale není náhodou validní XHTML dokument současně i validní XML dokument? :)

alancox

„Teď teda nevím, ale není náhodou validní XHTML dokument současně i validní XML dokument?“

A teď k čemu to na webu je? Fakticky naprosto k ničemu.

Je to asi stejná výhoda, jako že si můžete koupit kečup, který je vhodný pro lidi o pro ptakopysky. Ta vhodnost pro ptakopysky není nic, co byste u kečupu považoval za přidanou hodnotu.

A stejně tak to téměř je to na webu s hodnotou, že je to validní XML.

Keff

Nelíbí se mi formulace 'trh začal fungovat' v popisku prvního obrázků, trh fungoval celou dobu a uživatelé během ní používali IE dobrovolně, neboť konkurence mezi pádem netscape a nástupem opery a ff prakticky nebyla.

Proč mají pořád lidé pocit že když má někdo přirozený monopol,tak trh nefunguje? To jako chcete lidem nutit násilím řešení o které nemají zájem? (tedy je v době IE5 nutit do bety FF1 či linksu?)

AHA

Problémem nicméně je, že monopol MSIE nebyl přirozený, ale byl dosažen nelegálními praktikami Microsoftu.

The effect of these actions was to „cut off Netscape's air supply“. These actions eventually led to the United States Microsoft antitrust case in 1998 which found that Microsoft had abused its monopoly on operating systems to unfairly dominate the market and eliminating competition.

http://en.wikipedia.org/wiki/Browser_wars#Internet_Explorer_5_.26_6_dominance

Judge Jackson issued his findings of fact[11] on November 5, 1999, which stated that Microsoft's dominance of the personal computer operating systems market constituted a monopoly, and that Microsoft had taken actions to crush threats to the monopoly, including Apple, Java, Netscape, Lotus Notes, Real Networks, Linux, and others. Then on April 3, 2000, he issued a two-part ruling: his conclusions of law were that Microsoft had committed monopolization, attempted monopolization, and tying in violation of Sections 1 and 2 of the Sherman Act, …

http://en.wikipedia.org/wiki/United_States_v._Microsoft

Jarmil

Cituje komentář anonymního/pseudonymního přispěvatele Wikipedie, který rozhodně nic moc neznamená, zkuste to vlastními slovy. Navíc zamlčujete další zajímavou část např. "This, together with several bad business decisions on Netscape's part, led to Netscape's defeat by the end of 1998" a hlavně, že Microsoft nebyl za toho obvinění pravomocně odsouzen, soudce byl kvůli tomu sám obviněn z neetického jednání a případ po odvolání dostal jiný soudce, přičemž nakonec došlo k dohodě.

AHA

Nic nezamlčuji, uvádím odkazy na kompletní text. K dohodě o urovnání došlo z toho důvodu, že Microsoft prokazatelně zneužíval monopol a hrozilo rozdělení firmy. Kdyby byl čistý, nemusel by přistupovat na dohodu, která jej nutila ke změně chování, a mohl se klidně nechat očistit odvolacím soudem.

Mimochodem: skupinu tzv. pseudoanonymů Wikipedie považuji za důvěryhodnější autory textů než anonymy v diskuzích na Zdrojáku.

Jarmil

K dohodě přistoupil, až poté co případ jiný soudce, který už nechtěl rozdělení. A dohoda, to je fakticky výhra Microsoftu, protože ho v NIČEM omezovala pokračovat dál v dosavadním jednání (jak vy řikáte, zneužívání monopolu), takže evidentně to vůbec není tak jednoznačné.

Enum a statická analýza kódu

Mám jednu univerzální radu pro začínající programátorty. V učení sice neexistují rychlé zkratky, ovšem tuhle radu můžete snadno začít používat a zrychlit tak tempo učení. Tou tajemnou ingrediencí je statická analýza kódu. Ukážeme si to na příkladu enum.