CSS: Podrtžítkový hack a IE7

23. října 2007

Představme si situaci: Máme web optimalizovaný pro IE6 pomocí podtržítkového
hacku a přijde IE7. Jaké je logické východisko? Všechny podtržítkové deklarace
převedeme bez podtržítek do zvláštního stylesheetu, říkejme mu třeba ieall.css,
který jako poslední vložíme podmíněným komentářem pro všechny IE. To zajistí,
že se bude našimi výjimkami řídit i IE7, který podtržítkový hack (zcela správně)
ignoruje, ale má s IE6 většinu zobrazovacích chyb společnou. Další (zcela
zanedbatelnou) výhodou je, že naše CSS bude (dost možná) rázem validní.

Odchylky v zobrazování u těchto dvou prohlížečů odstraníme vytvořením nového
stylesheetu pro IE=<6, říkejme mu třeba ielt7.css, který bude vlastně obsahovat
původní deklarace, které byly v ieall.css smazány nebo pozměneny. Takto a ne
naopak je to proto, protože můžeme počítat s tím, že počet chyb v novějších
verzích se bude dále snižovat).

Pokud bychom nechtěli další stylesheet, není v podstatě důvod nepoužít ve
stylesheetu pro všechna IE podtržítkový hack. V takovém případě je to zvlášť
jednoduché - původní deklaraci uvedeme s podtržítkem pro IE=<6 a pokud je třeba,
vykopírujeme ji do nové a pozměníme hodnotu. Ve vzácných případech, kdy již
byla chyba v IE7 ostraněna, jsme dělali práci navíc, ale pracujeme-li s axiomem,
že IE7 nemá nové chyby, zajistíme, že žádnou z nich nezapomeneme odstranit.
Proto tento postup pokládám za nejlepší systémové řešení.

Řešení, které napadne spoustu lidí jako první (totiž vytvořit pouze nový
stylesheet pro IE7) pokládám za nesystémové a má tu nevýhodu, že podstatným
způsobem přidělává práci tím, že je nutné více pro IE7 testovat a znovu
opravovat každou nalezenou chybu.


Přidat komentář: