Podmíněné komentáře v Internet Exploreru

18. ledna 2002

Podmíněné komentáře jsou, jednoduše řečeno, nová sada tagů prohlížeče IE 5+. Tyto tagy vypadají jako obvykle používané značky pro komentáře. Díky zvláštní syntaxi však nejsou v prohlížečích IE 5+ ignorovány, ale jsou vyhodnoceny jako výraz.

Takto zapsanými komentáři můžete selektivně vyloučit prohlížeče. Základní syntaxí jsou následující dva příklady:

<!–[if IE 5]>
Používáte IE 5
<![endif]–>
<![if ! IE 5]>
Nepoužíváte IE 5
<![endif]>

Při bližším prozkoumání pohledem klasického prohlížeče pochopíte důmyslnost takto zapsanýchkomentářů – zatímco v prvním příkladu se běžnému prohlížeči jeví jako jeden dlouhý tag, který nezná a tudíž jej ignoruje, ve druhém jde o dva samostatné tagy, mezi kterými je zapsán text, který se zobrazí. Chcete-li použít funkce spolehlivě fungující jen v IE (např. DHTML nebo ActiveX komponenty, běžící text nebo zvláštní styly), uzavřete specifickou část kódu mezi značky podle prvního příkladu. Alternativní zobrazení nebo třeba jen odkaz na alternativní stránku pak uvedete mezi značky podle druhého příkladu.

Podmíněné komentáře umožnují rozpoznávat i jednotlivé verze IE vyšší než 5 (např. IE 5.5, IE6):

<!–[if IE 5.5000]>
Používáte IE 5.5
<![endif]–>
<!–[if IE 6]>
Používáte IE 6
<![endif]–>

Upozorňuji na zvláštní formát zadávání verze prohlížeče – například verzi 5.5 je třeba zadat jako5.5000. Toto čtyřčíselné rozšíření je vyžadováno pro detekci verze vždy, když testovaná verze není celé číslo. Pro širší použití jsou k dispozici další operátory – tyto doplňkové operátory jsou to, co vytváří z podmíněných komentářů silný nástroj oproti různým více či méně spolehlivým skriptům. Nejen operátor „!“, který využijete pro negaci testu verze, ale k dispozici jsou i tyto další:

syntaxe  
! not
lt menší než
lte menší nebo rovno
gt větší než
gte větší nebo rovno

S těmito operátory se stává detekce verze jako prohlížeče např. IE 5+ velmi snadnou (lze rozpoznatnapř. IE 5, IE 5.5, IE 6 apod.) Ukázka:

<!–[if gte IE 5]>
Používáte IE 5+
<![endif]–>

Následující příklad (je viditelný pouze v IE 5+) ukazuje, jak lze například definovat box běžícíhotextu <MARQUEE>, který se zobrazí pouze v IE. Bez uvedení podmíněného komentáře by se v ostatních prohlížečích objevil celý text a případně tak znehodnotil vzhled stránky.

Příklad 1 – zdrojový kód:

<!–[if gte IE 5]>
<marquee scrollamount=“3″ direction=“up“ width=“160″ height=“100″ style=“background-color=lightgreen; border:1px solid black“>
<b><small>
<p>Tak dlouho se chodí se džbánem pro vodu, až se ucho utrhne
<p>Kdo jinému jámu kopá, sám do ní padá
<p>Pýcha přechází pád
</small></b>
</marquee>
<![endif]–>

Druhý příklad (viditelný pouze v ostatních prohlížečích mimo IE 5+) ukazuje, jak zobrazit alternativní informaci. Samozřejmě je možné uvést i odkaz na alternativní stránku, nebo část stránky vyřešit jinak – např. běžící text nahradit tabulkou, JavaScriptem apod.

Příklad 2 – zdrojový kód:

<![if lt IE 5]>
<i>Omlouváme se, ale bez prohlížeče IE 5+ nemůžete vidět všechny naše naprosto neopakovatelné výplody…</i>
<![endif]>

Na závěr jen dodávám, že použití podmíněných komentářů by nemělo vést jen ke strohému vyloučení uživatelů nepoužívajících IE, jak by se mohlo zdát podle druhého příkladu, ale naopak ke snadnějšímu připravení alternativních stránek tam, kde chcete využít vylepšené nové funkce prohlížeče IE.

Pozn. red.: Kód uváděný v druhém příkladu je sice funkční, ale nevalidní. Validní řešení popisuje v níže uváděném spotu David Grudl, jehož metodu vám doporučujeme upřednostnit.

Odkazy a zdroje

Starší komentáře ke článku

Pokud máte zájem o starší komentáře k tomuto článku, naleznete je zde.

Mohlo by vás také zajímat

Nejnovější

3 komentářů

  1. Vanora4

    Úno 27, 2010 v 18:45

    je to náš miláček :)

    Odpovědět
  2. Arabela

    Čvn 22, 2010 v 14:39

    ahojky je tu nikdo na pokec

    Odpovědět
  3. Mára

    Kvě 9, 2012 v 10:44

    pěkný článek :)

    Odpovědět

Napsat komentář

Vaše e-mailová adresa nebude zveřejněna. Vyžadované informace jsou označeny *