Podtrhnout či nepodtrhnout?
Toť otázka. Doposud jsem používal pro veškeré činnosti spojené s hackováním IE podtržítkový hack. Podtržítkový hack je sice dle specifikace validní, ale validátoru se zrovna dvakrát nelíbí. Validnější alternativy Doposud jsem znal a v omezené míře i používal validní alternativu podržítkového hacku, selektor html>body, který IE ignoruje. Tato konstrukce je dle specifikace CSS naprosto v pořádku, její hlavní nevýhoda je […]
Toť otázka. Doposud jsem používal pro veškeré činnosti spojené s hackováním IE podtržítkový hack. Podtržítkový hack je sice dle specifikace validní, ale validátoru se zrovna dvakrát nelíbí.
Validnější alternativy
Doposud jsem znal a v omezené míře i používal validní alternativu podržítkového hacku, selektor html>body, který IE ignoruje. Tato konstrukce je dle specifikace CSS naprosto v pořádku, její hlavní nevýhoda je v tom, že by ji IE7+ mohl někdy v budoucnu začít interpretovat, leč původní chyby by v něm zůstaly (zpětná kompatibilita musí být :-)).
* html
Včera jsem na blogu WELL.DONE narazil na hack * html. Tento selektor není nikdy splněn (proto ho Mozilla i Opera ignorují a ignorovat budou i nadále), zato IE ho s klidem interpretuje. Je sice možné, že si v budoucnu vývojáři IE vzpomenou i na tuto chybu, ale asi bych ji na seznamu bugů hledal později než selektor html>body.
Výhodou selektoru * html je, že je validní. Jeho nevýhodou oproti podtržítkovému hacku je fakt, že potřebujete další deklaraci jen pro IE (s podtržítkovým hackem stačilo změnit jednu hodnotu v deklaraci).
Dodatek – hacky v praxi
Všechny následující techniky způsobí modrou barvu textu v IE, červenou barvu v ostatních prohlížečích.
p {color: red;_color: blue;}
p {color: blue}
html>body p {color: red}
p {color: red}
* html p {color: blue}
Komentáře
Vtip je i v přehlednost, podle mého názoru je [* html] podstatně přehlednější než vše patlat do jedné definice..
Kdysi se o validitě podtržítkového hacku vedly dlouhé disputace a většina profesionálů se připklonila k názoru, že podtžítkový hack JE validní, jen onen zmíněný validátor má v sobě malý bug. Já osobně pro ošetření chyb v MSIE využívám oddělený CSS soubor připojený pomocí „komentářů“. Sice jde o jeden request navíc, ale když je jich na stránce 50, tak už se jeden ztratí.
A nakonec: Je jedno co kdo používá, hlavně když ho to dovede ke správnému cíli ;)
No nevim, ale jeste jsem nenarazil na problem, ktery bych musel resit pomoci CSS hacku. Vzdy to slo obejit jinak – cisteji – bez hackovani.
Me osobne se zda nejpraktictejsi pouzivani extra stylesheetu pro IE, nacitanem pres podmineny komentar; proc mam slusnym prohlizecum cpat nejaky IE balast?
[4] Petre, to Vam zavidim. Opravdu. Muzete prihodit nejaky link na rozsahlejsi web z Vasi dilny? Nektere bugy IE dle me neobejdete, leda byste proste problematicky prvek vypustil.
* html
nebude v IE7 (standard mode)fungovat. Tahle věc už je opravena. To je myslím dobrá zpráva. :)
[5]
Zkuste si vybrat neco z mych referenci, ale predem upozornuji, ze starsi kousky jsou tabulkoidni a i ten kod u nic neni zcela idealni…
Asi nejrozsahlejsi z posledni doby je Beetle Tour.
Ja vim, uvedene weby nejsou zrovna nejak moc komplikovane a rozsahle. Takze jeste odkaz na jeden web, co jsem tvoril ve skutecne praci – a ne doma po vecerech: Highland Search
Nejak jsem zkomolil odkaz, takze znovu: Moje reference
„asi bych ji na seznamu bugů hledal později než selektor html>body“ – Nikoliv. Obojí bude napraveno v naprosto stejném horizontu. Tuším, že jsem o tom kdysi něco psal.
Tak už je to tady, hacky nebudou v MSIE moc dobře podporovány: IE7 a problémy s CSS hacky
[3] Většina profesionálů podtržítkový hack za validní považuje (považovala), jde ovšem výhradně o většinu profesionálů v Čechách, kteří si pojem „validita“ vysvětlili po svém a v rozporu s originálem – a když se toto jaksi „provalilo“, snažili se bazírovat na jedné části CSS2.1, kterou opět překládali ve zjevném rozporu s originálem. Navíc jaksi pozapomněli, že CSS2.1 stále ještě nebyla jako standard schválena, stále jde jen o pracovní návrh…
Ja používam * html hack už asi jeden rok a zatial sa mi osvečil. Ak nepotrebuješ na 100% validné CSS tak podtržítkový hack je úplne postačujúci a ak siahaš po validite za každú cenu tak * html je na to super.