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.
Komentáře
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 ;–)
David Grudl #2
#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.
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..
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ě?
David Grudl #5
#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.
kaifman #6
Presne tak, dnes uz maji js vypnute jen par hardcore paranoidnich programatoru 🙂
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.
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í.
David Grudl #9
#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.
Aleš Janda #10
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í ☹
rarouš #11
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.)…
whitwa #12
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?
whitwa #13
#12 whitwo, Co mi to udelalo s odkazem na email? :o)
Michal Hantl #14
Paráda paráda paráda! Nevěděl jsem o tom, dík moc za info dgx!
Radek Hulán #15
JE dobré zdůraznit, že Deanovo IE7 nefunguje 100% v XML, jen v HTML..
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.
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ý.
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.
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!!!
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.
Littlemaple #21
#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…
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ď.
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 :)
Daniel Srb ben Abraham #24
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
PROTI
DGX: máš tu malý
<code>
<TEXTAREA>
</code>
. )David Grudl #25
#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:
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ě.
Daniel Srb ben Abraham #26
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.
Roj #27
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.
Gnaag #28
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)
ASH721 #29
Taky jsem ještě neviděl indiány. Těší mě!
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!
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
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.
Jiří Sekera #33
#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.
Tento článek byl uzavřen. Už není možné k němu přidávat komentáře.