Jan Bien - Váš osobní webmaster - tvorba a kurzy webových stránek na redakčním systému WordPress


Podmíněné komentáře

Podmíněné komentáře, anglicky conditional comments, jsou proprietární HTML prvky prohlížeče Microsoft Internet Explorer, které umožňují autorovi do kódu HTML stránek vkládat obsah nebo jiné prvky přístupné právě pouze pro MSIE. Podmíněný komentář vypadá nějak takto:

<!--[if IE]>
HTML kód pouze pro MSIE
<![endif]-->

Povšimněte si, že podmíněný komentář je konstruován velice vtipně. Podle HTML definice jde vlastně jen o komentář a všechna zařízení (vyhledávač, prohlížeč) by jej měla ignorovat. Řešení je pokročilou implementací SGML komentářů v HTML v souladu s normou HTML 4.

Na začátku roku 2006 již velmi mnoho uživatelů používá vyspělé internetové prohlížeče zatížené minimem implementačních chyb (Opera, Mozilla), nicméně stále nejdominantnějším prohlížečem je MSIE, v němž v některých případech musí webdesigner zápis kaskádových stylů šikovně „přiohnout“ a tím obejít některé velmi nepříjemné chyby ve vykreslování. A právě podmíněné komentáře se ukazují jako nejsprávnější způsob této individualizace stylopisů.

Zde uvádím příklad části kódu stránky s připojením stylopisu společného pro všechny prohlížeče (standardní moderní prohlížeče) a  následně ještě v podmíněném komentáři stylopis určený pro „přebití“ některých pravidel v MSIE:

<link rel="stylesheet" type="text/css" href="style.css" />
<!--[if IE]>
<link rel="stylesheet" type="text/css" href="style-msie.css" />
<![endif]-->

Tento příklad neodlišuje verzi MSIE, což považujme za malou chybu. Nyní vyvíjený MSIE7, který by podle mnoha indicií mohl mít vyřešenou velkou většinu implementačních chyb, bude pravděpodobně stránku s výchozím stylem pro standardní prohlížeče zobrazovat korektně. Pak by bylo vhodné ke speciálnímu stylopisu pustit pouze MSIE ve verzi 6 a starší takto:

<!--[if lte IE 6]>
<link rel="stylesheet" type="text/css" href="style-msie.css" />
<![endif]-->

Jen pro úplnost dodávám, že všechny zde uvedené ukázky pracují s „skrytými“ (v anglickém originále „downlevel-hidden“) podmíněnými komentáři. Dále známe ještě komentáře „odhalené“ (v anglickém originále „downlevel-revealed“), které pracují naopak, neboli umožňují vložit do stránek obsah, který pak „vidí“ všechny prohlížeče s výjimkou MSIE. Ovšem odhalené komentáře již specifikaci odporují (nejsou s výchozími DTD validní), proto je nedoporučuji a zde neuvádím.

Aktualizováno 14. dubna 2006: David Grudl v článku Kouzlo s podmíněným komentářem (La Trine, 14. dubna 2006) ukazuje možnost inverzní, jak využitím podmíněných komentářů vložit do stránky kód pro ostatní prohlížeče, než je MSIE. Podle oficiální dokumentace Microsoftu je toto možné jen pomocí odhalených podmíněných komentářů, které jsou, jak zmiňuji výše, nevalidní. David proto vyšel ze skrytých komentářů, které vylepšil tak, že se chovají jako odhalené a jsou validní. Řešení sice není oficiálně zdokumentované, ale logika věci praví, že by mělo fungovat spolehlivě. Zde je ukázka:

<!--[if !IE]> -->
Tohle vidí všichni kromě IE
<!-- <![endif]-->

Tento článek doplňuje a aktualizuje tyto mé starší články:

Souvislosti, zdroje, doporučené čtení:

Komentáře

1. neki – 16. března 2006, 14:54

Pěkný článek. S dalších zdrojů třeba Honza Brašna, který psal o tom samém: Síla podmíněných komentářů (HereBeDragons™, 28. května 2005).

2. dgx – 12. dubna 2006, 16:11

Odhalené validní komentáře:

<!--[if !IE]> -->
Nepoužíváte IE
<!-- <![endif]-->

Váš komentář

K článku nelze připojit komentář, Mraveniště bylo zakonzerováno.


Copyright © Jan Bien.
W3C XHTML 1.0  | W3C CSS 2  | UAW adaptive  | Geo URL  | RDF RSS