Klávesové zkratky na tomto webu - rozšířené Na obsah stránky

vytrženo z kontextu

Dean Edwards a jeho IE7

Geniální udělátko o kterém se u nás kupodivu moc neví. Některým webdesignérům prý natolik usnadnilo život, že začali fetovat a krást, aby zase nějaké problémy měli. Takže opatrně s tím!

Už to budou dva roky, co Dean Edwards začal psát záplatu pro Internet Explorer, která umožní webdesignerům používat pokročilé CSS vlastnosti. A nejen je. Nazval ji vyloženě nešťastně IE7, nejspíš nevěřil ve vznik další verze Microsoftího prohlížeče.

Podstatné je, že záplata je napsaná v JavaScriptu a aktivuje se pouhým vložením jednoho podmíněného komentáře (nenaruší validitu) do zdrojového kódu stránky. Explorer se poté začne chovat úplně jinak, když v CSS narazí na zápis jako je třeba ul>li:first-child:hover { color: black }, moudře pokývá hlavou, že rozumí, narozdíl od původního Exploreru, který by na to hleděl jako péro z gauče.

Co všechno to umí?

Záplata naučí Microsoft Internet Explorer, buginu mezi prohlížeči, následující:

  • CSS selektory:
    • jmenný-prostor|selektor
    • rodič > potomek
    • selektor + sourozenec
    • selektor ~ sourozenec
    • [attr], [attr=„hodnota“], [attr~=„hodnota“] atd.
    • .více.tříd
    • :hover, :active, :focus (pro všechny elementy)
    • :first-child, :last-child, only-child, nth-child, nth-last-child (což neumí ani Gecko nebo Opera)
    • :check, :disabled, :enabled
    • :root, :empty, :contains(), :not()
    • :before/:after/con­tent:
    • :lang()
  • porozumět CSS vlastnostem
    • min-width, max-width, min-height a max-height
    • overflow: visible
    • position: fixed
  • porozumět (X)HTML elementům jako abbr, object
  • aktivuje W3C box-model ve quirk režimu
  • kreslit poloprůhledné PNG obrázky
  • a ještě mnohem více

Jaké jsou naopak nároky?

Ty jsou v současné verzi naprosto minimální, posuďte sami:

  • Internet Explorer verze 5 a výše
  • zapnutý JavaScript
  • strojový čas pro vykonání skriptu
  • v základní konfiguraci si natáhne cca 26kB (zůstává v cache)
  • funkční před načtením celého dokumentu
  • licencováno pod GNU Lesser General Public License

Požadavky na JavaScript splňuje cca 100 % uživatelů IE, nevěřte statistikám, které tvrdí něco jiného. Suma sumárum, dnes už mě nenapadá jediný objektivní důvod, proč tohle udělátko nepojmout jako standardní doplněk všech webů.

No není to bomba? Vypadá to tak. Tuze by mě zajímaly praktické zkušenosti a odhalená slabá místa.

Karma body: 29. Líbil se vám článek?

Komentáře » přidat

  1. [1] Vilém Málek: nový

    Neřekl bych, že tohle udělátko je v českém webdesignu neznámé, na blozích bylo popularizováno již krátce po svém vzniku a řada soudobých CSS konstrukcí s ním počítá. Ale jak se říká, opakování matka moudrosti ;–)

    Posláno 19. 1. 2006 v 7.11 | Odpovědět
    Na komentář reagoval [2] David Grudl
  2. avatar [2] David Grudl: nový

    [1] Vilém Málek: Původně jsem chtěl psát článek ve smyslu „jaké máte zkušenosti s udělátkem IE7?“, ale pak jsem si zběžně proběhl český internet a zjistil, že vhodnější bude objevit Ameriku a na zkušenosti ze zeptat tak za půl roku.

    Posláno 19. 1. 2006 v 7.16 | Odpovědět
  3. [3] Rdm: nový

    Koukal jsem do statistik a s tím javascriptem to nebude až tak růžové. Sic nemohu přesně zjistit jestli ti uživatelé, kteří měli js vypnutý neměli i jiný prohlížeč než IE, avšak přesto téměř jednoprocentní podíl uživatelů s vypnutým js mám. Na mém malém webu je to opravdu zanedbatelný podíl, ale co ty větší weby? Nejlepší by tedy bylo zjišťovat zapnutí js a podle toho předhodit tu správnou verzi, ale jestli by to mělo smysl..

    Posláno 19. 1. 2006 v 7.50 | Odpovědět
    Na komentář reagoval [5] David Grudl
    Na komentář reagoval [20] rony
  4. [4] INSiGHT: nový

    Zeptal bych se jako amatér, v čem je háček?
    Pokud by stačilo tak málo a IE by se konečně choval jako prohlížeč, tak proč se všude řeší hacky pro max-width a podobně?

    Posláno 19. 1. 2006 v 8.04 | Odpovědět
    Na komentář reagoval [5] David Grudl
    Na komentář reagoval [20] rony
  5. avatar [5] David Grudl: nový

    [3] Rdm: I na větších webech to bude 1% ;)

    JS si vypínají především hardcore uživatelé a ti obvykle nepoužívají IE. Naopak běžní uživatelé IE absolutně netuší, „jak“ ani „proč“ takový JavaScript vypnout. Tedy pohybujeme se v řádu desetin procenta a to je dost dobře únosná míra. Tito uživatelé holt uvidí web bez vymožeností IE7. Což v praxi znamená, že například CSS vyskakovací menu nebude vyskakovací, nicméně díky dobře navrženému webu se tím navigace nijak neomezí.

    [4] INSiGHT: Myslím, že je to právě tím, že se o IE7 moc neví. Navíc v minulosti nebylo tak vychytané (nepodporovalo IE 5.0) a Navrcholu strašilo s 8 % uživatelů bez JavaScriptu.

    Posláno 19. 1. 2006 v 8.12 | Odpovědět
    Na komentář reagoval [33] Jiří Sekera
  6. avatar [6] kaifman: nový

    Presne tak, dnes uz maji js vypnute jen par hardcore paranoidnich programatoru :-)

    Posláno 19. 1. 2006 v 8.25 | Odpovědět
  7. [7] dld: nový

    Přiznám se, ja jsem o něm vůbec nevěděl. Takže dgx (a tím děkuji) pro mne objevil Ameriku.

    Posláno 19. 1. 2006 v 8.43 | Odpovědět
  8. [8] Honza Hučín: nový

    I já se zeptám jako amatér: to znamená, že si uživatel musí něco instalovat?
    Jestli jo, je to asi nanic, protože BFU (kteří by měli být cílovou skupinou) si instalovat nebudou, protože neumějí, bojí se („není to zas nějaký virus?“) nebo nesmějí.

    Posláno 19. 1. 2006 v 8.44 | Odpovědět
    Na komentář reagoval [9] David Grudl
  9. avatar [9] David Grudl: nový

    [8] Honza Hučín: vyjádřil jsem se asi nepřesně, článek jsem upravil. Jediné, co je potřeba, tak aby tvůrce stránky vložil do kódu jeden tzv. podmíněný komentář. Uživatel nic neinstaluje.

    Posláno 19. 1. 2006 v 8.48 | Odpovědět
  10. avatar [10] Aleš Janda: nový

    Je to výborná věc! :-)
    Bohužel i přes dlouhý výčet bugfixů má IE stále např. problém se záporným marginem a jistě dalším. Takže je to určitě příjemné zlepšení, ale samospasitelné to není :-(

    Posláno 19. 1. 2006 v 9.18 | Odpovědět
  11. avatar [11] rarouš: nový

    Mám s tím špatné zkušenosti, stránky se pak někdy začnou chovat úplně podivně (blikání obrázků na pozadí ap.)…

    Posláno 19. 1. 2006 v 9.19 | Odpovědět
    Na komentář reagoval [20] rony
  12. avatar [12] whitwa: nový

    Zajímalo by mě, zda konstrukce rodič > potomek, kterými validně obcházím IE6 a nižší vykreslí IE7 Správně, tak jako FF či O, a nebudu mít další starost v podobě budování nových hacků pro IE6 a 7?

    Posláno 19. 1. 2006 v 9.24 | Odpovědět
    Na komentář reagoval [13] whitwa
    Na komentář reagoval [23] Jan Brašna
  13. avatar [13] whitwa: nový

    [12] whitwa: Co mi to udelalo s odkazem na email? :o)

    Posláno 19. 1. 2006 v 9.38 | Odpovědět
  14. [14] Michal Hantl: nový

    Paráda paráda paráda! Nevěděl jsem o tom, dík moc za info dgx!

    Posláno 19. 1. 2006 v 10.26 | Odpovědět
  15. [15] Radek Hulán: nový

    JE dobré zdůraznit, že Deanovo IE7 nefunguje 100% v XML, jen v HTML..

    Posláno 19. 1. 2006 v 10.47 | Odpovědět
    Na komentář reagoval [21] Littlemaple
  16. [16] Jan Zich: nový

    Tohle je silenost. Chapu, ze toho cloveka to muselo stat dost casu, a ze to mohla byt nakonec i dobra zabava. Ale osobne bych to nepouzil. To uz je jednodussi napsat stranky obycejne (klidne i pomoci tabulek), nez pouzivat dalsi komplikovanou vrstvu, ktera vam zas neco muze nepredvidanym a nedefinovanym zpusobem rozhodit. To je fakt takova prace psat stranky pro IE? Ja myslim, ze je. Uz to delam sedm/osm let a nevim, co dneska lidi plasi.

    Posláno 19. 1. 2006 ve 13.03 | Odpovědět
    Na komentář reagoval [18] Honza Hučín
  17. [17] Marty: nový

    Ačkoli jde pro mě o zcela novou informaci, musím poznamenat, že mi to příjde jako trhání kytek dynamitem.

    Kvůli pár bugům (které obejdu 15 řádky v css) cpát uživateli nějakých 26Kb kódu je naprosto zbytečné. Ale skriptík je to pěkný.

    Posláno 19. 1. 2006 ve 14.56 | Odpovědět
  18. [18] Honza Hučín: nový

    [16] Jan Zich: To je obecný problém obecných udělátek. Řekl bych, že asi málokdy bude potřeba všechno najednou. A kdybych toho chtěl využít víc, trnul bych, jestli ten javascript nezadře nějakou pomalou šunku, na které ještě běží IE 5.0. Vím, o čem mluvím, u mého Pentia 333 MHz připojeného po modemu stačilo otevírat několik stránek s javascripty najednou a mohl jsem si jít dát kafe.
    IMHO nejde jen o to, jestli má uživatel puštěný JS, ale jestli využití JS neovlivní negativně chod počítače. Kdyby existovala light verze, která umí jen min-width, abbr a :hover, IMHO by to stačilo.

    Posláno 19. 1. 2006 v 15.03 | Odpovědět
  19. [19] cybertec: nový

    Když jsem uviděl nadpsi tak sem si říkal co za blbost… To je technicky nemožné aby se IE chovalo normálně. Po tém sem vsak nevericne stahnul spustil… Takový nával radosti… konecne!!!

    Posláno 19. 1. 2006 v 15.10 | Odpovědět
  20. [20] rony: nový

    [3] Rdm: celkom kludne to mozu byt roboti alebo exoti, ktori zo zasady nechcu js, ale tym moze byt jedno ci je nejaky box nakrivo.

    [4] INSiGHT: lenze sa nechova a stranka nemoze pockat, na „keby“.

    [11] rarouš: ano, je to nedovera ludi v nieco, co nespachali sami. musia si nastudovat vec, o ktorej mozno o rok sa bude pisat ako sposobuje problemy. a my obcas staviame stranky aj na niekolkorocny zivot bez dennodennej starostlivosti o trendy. preto by sa taka kniznica mala dostat najprv do testlabov webdesignerov, aby naozaj overitelne postavili svoje postupy doterajsie na hlavu a zohladnovali takuto kniznicu.

    Posláno 19. 1. 2006 v 16.12 | Odpovědět
  21. avatar [21] Littlemaple: nový

    [15] Radek Hulán: Máš nějaké konkrétnější zkušenosti?

    Celkem by mě to zajímalo. Buduji nový web v XHTML (opravdovém ;-) ) a možná bych to mohl implementovat, ale teď tedy nevím…

    Posláno 19. 1. 2006 ve 21.48 | Odpovědět
  22. [22] Hever: nový

    Je mi do pláče. Tolik z těch vlastností jsem se kdy snažil použít a v jednom prohlížeči to nešlo. Tolik ulehčení by mi to přineslo oproti současné situaci.

    Mám totiž pocit, že jsem se už naučil pracovat špatně a bude zase chvíli trvat, než si budu moci dovolit necpat do svých tagů tolik zbytečných classů, nedělat věci stupidně, když můžu použít poloprůhledný PNG … Bohužel jsem ten, co se snaží svoje věci zjednodušovat co to jde, takže se zase budu některé věci učit znovu.

    Díky za link, autorovi díky za skript, brzy ho nainstaluju. Škoda, že tu nebyl dřív, když jsem se teprv učil. Zlaté děti, které k css přichází až teď.

    Posláno 19. 1. 2006 ve 21.57 | Odpovědět
  23. [23] Jan Brašna: nový

    Známé to IMHO je, ale přijde mi to jako slušný „overkill“, prý to nebylo nijak ideální velikostně a rychlostně.

    [12] whitwa: Fantazie woe, dej si pifko a přečti si to odzadu :)

    Posláno 19. 1. 2006 ve 23.03 | Odpovědět
  24. avatar [24] Daniel Srb ben Abraham: nový

    V díle Deana Edwardse se vyskytuje cimrmanovské střídání prvku očekávání s prvkem zklamání.

    Ano, viděl jsem, nadchnul se, zkusil jsem použít na opravdovém webu a nepoužil.

    Asi budu opakovat co tu bylo napsáno, ale v plevách snad najdete i zrno nenapsaného.

    PRO

    • shrnovat netřeba: představa všech těch krásných selektorů a dalších vyřešených chyb ve mě dodnes způsobuje až extatické nadšení.

    PROTI

    • velikost 26 kB opravdu není málo: ale je tu cache a běžný ilustrační obrázek může mít i víc a ani vás nenapadne ho vynechat, a tuším, že jdou opravdu použít jen potřebné moduly.
    • nefunkčnost bez javascriptu: se dá u javascriptové aplikace předpokládat, to je vlastnost ; ), problém mi nečiní těch snad pár % uživatelů IE s vypnutým js, kteří „něco uvidí nakřivo“ ale spíš ti, kteří neuvidí menu nebo se jim celý layout naprosto rozpadne; přesvědčte mě někdo, že to je opravdu fuk a více uživatelů, tedy má opera 6 nebo mozilla 0.8 a měl bych věnovat čas ušetřený (?) DEIE7 jim.
    • rychlost na pomalejších počítačích: toto může být u komplexnějšího layoutu určitě problém.
    • hledání chyb: ani tato aplikace jistě není dokonalá o nepředvídatelných chybách někde v IE nemluvě. Pokud si „hackuju“ CSS a JS sám, postupy které jsou obecně vyzkoušené nebo alespoň mnou vyzkoušené, tak vím kde můžu hledat vlastnost, která to ovlivní, pokud spoléhám na DEIE7, tak se řešení nějaké chyby může stát neřešitelným oříškem a nerad bych se toho u většího projektu než je jednostránková vizitka dočkal.

    DGX: máš tu malý <code><TEXTAREA> . )

    Posláno 20. 1. 2006 v 8.28 | Odpovědět
    Na komentář reagoval [25] David Grudl
  25. avatar [25] David Grudl: nový

    [24] Daniel Srb ben Abraham: Dane, pro DEIE7 musí člověk dozrát. Mě to trvalo skoro dva roky a teprve teď s ním začínám koketovat. Během té doby se změnil poměr prohlížečů, vyzrálo samotné DEIE7 a chuť plně používat CSS se stala nezadržitelnou ;)

    Tedy nenesu si zklamání z minulosti. A bojím se pouze dvou věcí, které jsi zmínil i ty:

    • rychlost na slabých strojích (když narazím na problém, pokusím se najít způsob, jak pomalé počítače od DEIE7 odstřihnout)
    • chyby v samotném DEIE7 (to by byla nepřekonatelná bariéra)

    Ještě bych rád zmínil jedno: DEIE7 je obrovskou investicí do budoucna. Microsoft slíbil v novém IE7 výbornou podporu CSS bez současných chyb, nikdo však nevíme, jak se zachová k dnešním hackům. DEIE7 je v tomto směru jediná schůdná cesta k dopředné kompatibilitě.

    Posláno 20. 1. 2006 ve 12.57 | Odpovědět
  26. avatar [26] Daniel Srb ben Abraham: nový

    IE bez JS a IE s JS na pomalém počítači: nabízí se jednoduchá cesta: IE bez JS nabídnout tutéž stránku jako IE bez CSS… případně s nějakým opravdu základním formátováním.

    Ale jestli by šlo při načítání stránky nějak zjistit výkon stroje, to nevím.

    Posláno 20. 1. 2006 ve 14.11 | Odpovědět
  27. avatar [27] Roj: nový

    Zasadni otaska:
    Co to udela s podtrzitkovymi hacky? Budou pak fungovat jako IE, jako browser, nebo „napul“?
    A co s tim udela IE7 az bude v roce 2013 od microsoftu?
    Jestli to bude funkcni, okamzite to nacpu uplne vsude a necham to bezet jako rootkit, uzivatelem nezjistitelny.

    Posláno 21. 1. 2006 ve 12.07 | Odpovědět
  28. avatar [28] Gnaag: nový

    Niečo úžasné, práve dnes som pracoval na jednom projekte. Testoval som to hlavne pod Operou a FF (IE je nočnou morou) a na konci som zistil, že IE mi stránku neuveriteľne zohavilo. Spomenul som si na niečo, čo mi hovoril DaMage a pozrel som tu, veľmi mi to pomohlo (Aj pre mňa bola objavená Amerika)

    Posláno 22. 1. 2006 ve 20.23 | Odpovědět
  29. avatar [29] ASH721: nový

    Taky jsem ještě neviděl indiány. Těší mě!

    Posláno 23. 1. 2006 ve 12.37 | Odpovědět
  30. [30] xHire: nový

    Musím říct, že o něčem takovém jsem ještě neslyšel a že je to rozhodně něco, co využiji ve svůj prospěch, samozřejmě za účasti nápadů, které tu padly v komentářích. Díky za tip!

    Posláno 23. 1. 2006 v 17.00 | Odpovědět
  31. [31] Mishak: nový

    Doufám že si to přečte DGX prosim spravte ten mime type v linku s RSS kem je tam jen prehozene rss a xml prosím

    Posláno 24. 1. 2006 v 10.59 | Odpovědět
  32. [32] spud: nový

    Je to prima vec, dik za tip, ale kdyz jsem to zkousel, tak mi stejne Explorer blbnul pri nacitani stranky a problikavali mi velikosti pismen a obrazkovy nahrady tagu … tak jsem to nakonec zas vyhodil a osetril potrebny vlastnosti (min-width, min-height, …) hackama. Prijde mi, ze kdyz pisete stranky ve strict modu, tak tech css osetreni neni tolik.

    Posláno 25. 1. 2006 ve 12.24 | Odpovědět
  33. avatar [33] Jiří Sekera: nový

    [5] David Grudl: Troufnu si nesouhlasit. Speciálně ve větších firmách, školách a státních institucích se často vytváří instalační master s nejnovějšími záplatami, ovladači a bezpečnostními opatřeními (např. vypnutý JS), který se potom masově rozinstaluje. Vypnutý JS je pořád ještě dost pravděpodobná a i pochopitelná věc.

    Posláno 27. 1. 2006 v 16.03 | Odpovědět

Tento článek byl uzavřen. Už není možné k němu přidávat komentáře ani hlasovat

Výtah na začátek článku na první komentář

Názory čtenářů v diskusích nejsou názory provozovatele webu, a ten za jejich obsah neodpovídá.

La Trine © 2004, 2008 David Grudl – o webu
provozuje Pachollini.

Jakékoliv užití obsahu, včetně převzetí článků nebo jejich částí, je bez předchozího písemného svolení autora zakázáno.

Ukázky zdrojových kódů smíte používat s uvedením autora a URL tohoto webu bez dalších omezení.