Hackovat se dá i legálně.
Ten, kdo někdy dělal webové stránky a chtěl, aby jeho výtvor vypadal ve všech prohlížečích stejně, narazil často na problémy. Každý prohlížeč totiž interpretuje kód CSS (HTML také) jinak. Pokud bychom dělali stránky jen pro jeden prohlížeč, byla by práce jednoduchá, ale správný postup to není. Naštestí existuje možnost, jak napsat kód, který ovlivní jen určitý prohlížeč, obecně se tomu říká CSS hack. Některé jsou validní, některé už ne; který je a který není, se dozvíte v mém přehledu.
Podmíněný komentář
Tento prvek rozezná pouze MSIE v jakékoliv verzi. Mozilla (Firefox) ho nepřečte. Základní kód může vypadat takto:
<!--[if IE 5]>
Prohlížeč je IE 5
<![endif]-->
<![if ! IE 5]>
Prohlížeč není IE 5
<![endif]>
Když mezi tyto podmínky vložíte nějaký HTML kód, tak se zobrazí pouze ve zmíněném prohlížeči. Použít se dají samozřejmě všechny verze prohlížeče MSIE:
Verze prohlížeče | Zápis |
5.0 | IE 5 |
5.5 | IE 5.5000 |
6 | IE 6 |
V podmínce se dají použít i různé operátory:
Zápis | Jméno | Ukázka | Co dělá |
! | negace | <![if ! IE 5]> | když neplatí |
lt | nižší než | <![if lt IE 5]> | pro verze nižší než IE5 |
lte | menší nebo rovno | <![if lte IE 5]> | pro verze nižší nebo stejné |
gt | větší než | <![if gt IE 5]> | pro verze vyšší než IE5 |
gte | větší nebo rovno | <![if gte IE 5]> | pro verze vyšší nebo stejné |
Ještě je nutné dodat, že tento hack lze použít jen v kódu HTML a ne v zápisu CSS.
Podtržítkový hack
Tento hack se používá v zápisu CSS, narozdíl od předchozího. Slouží k vyloučení Mozilly a MSIE 7, přečte ho tedy jen IE v nižší než sedmé verzi. Zápis vypadá takto:
TABLE {_margin:10px;}
Z tohoto zápisu vyplývá, že v IE bude kolem všech tabulek 10px mezera. Zobrazení ve Firefoxu to nijak neovlivní. Tento hack je ale podle všeho nevalidní.
Hack s !important
Další čistě CSS hack, používá se k vyloučení MSIE, přečte ho jen Firefox. Zápis vypadá takto:
TABLE {margin:10px !important;}
Tabulka bude mít v Mozille kolem sebe 10px mezeru, zobrazení v IE to nijak neovlivní.
http://www.pixy.cz/pixylophone/2004_06_archiv.html#1088438627