Na navigaci | Klávesové zkratky

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/content:
    • :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.

před 19 lety v rubrice Web | blog píše David Grudl | nahoru

Mohlo by vás zajímat

Komentáře

  1. Vilém Málek #1

    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 ;–)

    před 19 lety | reagoval [2] David Grudl
  2. David Grudl #2

    avatar

    #1 Viléme Málku, 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.

    před 19 lety
  3. Rdm #3

    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..

    před 19 lety | reagoval [5] David Grudl [20] rony
  4. INSiGHT #4

    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ě?

    před 19 lety | reagoval [5] David Grudl [20] rony
  5. David Grudl #5

    avatar

    #3 Rdme, 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 INSiGHTe, 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.

    před 19 lety | reagoval [33] Jiří Sekera
  6. kaifman #6

    avatar

    Presne tak, dnes uz maji js vypnute jen par hardcore paranoidnich programatoru 🙂

    před 19 lety
  7. dld #7

    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.

    před 19 lety
  8. Honza Hučín #8

    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í.

    před 19 lety | reagoval [9] David Grudl
  9. David Grudl #9

    avatar

    #8 Honzo Hučíne, 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.

    před 19 lety
  10. Aleš Janda #10

    avatar

    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í ☹

    před 19 lety
  11. rarouš #11

    avatar

    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.)…

    před 19 lety | reagoval [20] rony
  12. whitwa #12

    avatar

    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?

    před 19 lety | reagoval [13] whitwa [23] Jan Brašna
  13. whitwa #13

    avatar

    #12 whitwo, Co mi to udelalo s odkazem na email? :o)

    před 19 lety
  14. Michal Hantl #14

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

    před 19 lety
  15. Radek Hulán #15

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

    před 19 lety | reagoval [21] Littlemaple
  16. Jan Zich #16

    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.

    před 19 lety | reagoval [18] Honza Hučín
  17. Marty #17

    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ý.

    před 19 lety
  18. Honza Hučín #18

    #16 Jane Zichu, 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.

    před 19 lety
  19. cybertec #19

    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!!!

    před 19 lety
  20. rony #20

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

    #4 INSiGHTe, lenze sa nechova a stranka nemoze pockat, na „keby“.

    #11 rarouši, 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.

    před 19 lety
  21. Littlemaple #21

    avatar

    #15 Radku Huláne, 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…

    před 19 lety
  22. Hever #22

    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ď.

    před 19 lety
  23. Jan Brašna #23

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

    #12 whitwo, Fantazie woe, dej si pifko a přečti si to odzadu :)

    před 19 lety
  24. Daniel Srb ben Abraham #24

    avatar

    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></code> . )

    před 19 lety | reagoval [25] David Grudl
  25. David Grudl #25

    avatar

    #24 Danieli Srbe bene Abrahame, 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ě.

    před 19 lety
  26. Daniel Srb ben Abraham #26

    avatar

    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.

    před 19 lety
  27. Roj #27

    avatar

    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.

    před 19 lety
  28. Gnaag #28

    avatar

    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)

    před 19 lety
  29. ASH721 #29

    avatar

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

    před 19 lety
  30. xHire #30

    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!

    před 19 lety
  31. Mishak #31

    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

    před 19 lety
  32. spud #32

    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.

    před 19 lety
  33. Jiří Sekera #33

    avatar

    #5 Davide Grudle, 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.

    před 19 lety

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


phpFashion © 2004, 2024 David Grudl | o blogu

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