MagnificaWeb Siti

 

Commenti Condizionali per Internet Explorer

Traduzione dell'articolo originale "CSS Conditional comments" di Peter-Paul Koch.

Commenti Condizionali per Internet Explorer

2 Novembre 2009

I commenti condizionali funzionano soltanto nella versione Windows di Internet Explorer, e sono quindi un'ottima soluzione per dare istruzioni speciali significative soltanto per Internet Explorer. I commenti condizionali sono supportati da Internet Explorer 5 in poi, e permettono anche di distinguere tra le versioni 5.0, 5.5 e 6.0.
I commenti condizionali funzionano nel seguente modo:

<!--[if IE 6]>
  Istruzioni speciali per Internet Explorer 6
<![endif]-->
  1. La loro struttura di base è identica al commento in HTML (<!-- -->). Quindi tutti gli altri browser lo vedranno come un comunissimo commento e lo ignoreranno completamente;
  2. Internet Explorer su Windows è stato programmato per riconoscere la sintassi speciale <!--[if IE]>, risolvere la condizione “if” e considerare il contenuto del commento condizionale come se fosse normale contenuto della pagina;
  3. Siccome i commenti condizionali usano la struttura dei commenti HTML, possono essere utilizzati nei file HTML, ma no nei file CSS. Avrei preferito poter mettere gli stili speciali direttamente nel file CSS, ma questo non è possibile. E’ comunque possibile inserire un tag <link> all’interno di un commento condizionale e indicare un ulteriore file CSS.

Esempi

Sotto ho aggiunto una serie di commenti condizionali che stampano dei messaggi in accordo con la vostra versione di Internet Explorer.

Nota: se utilizzate più versioni di Internet Explorer su uno stesso computer, i commenti condizionali potrebbero essere interpretati da tutte le versioni di Internet Explorer come se fossero uguali alla versione maggiore tra quelle disponibili sulla macchina (solitamente IE6 o IE7).

Test

Di seguito sono riportati alcuni commenti condizionali che rivelano la versione di Internet Explorer che state usando. Se non ne vedete significa che non state usando Internet Explorer.

Codice

La sintassi che ho usato:

<p>
<!--[if IE]>
In accordo con il commento condizionale questo è Internet Explorer<br />
<![endif]-->
<!--[if IE 5]>
In accordo con il commento condizionale questo è Internet Explorer 5<br />
<![endif]-->
<!--[if IE 5.0]>
In accordo con il commento condizionale questo è Internet Explorer 5.0<br />
<![endif]-->
<!--[if IE 5.5]>
In accordo con il commento condizionale questo è Internet Explorer 5.5<br />
<![endif]-->
<!--[if IE 6]>
In accordo con il commento condizionale questo è Internet Explorer 6<br />
<![endif]-->
<!--[if IE 7]>
In accordo con il commento condizionale questo è Internet Explorer 7<br />
<![endif]-->
<!--[if gte IE 5]>
In accordo con il commento condizionale questo è Internet Explorer 5 e successivi <br />
<![endif]-->
<!--[if lt IE 6]>
In accordo con il commento condizionale questo è Internet Explorer minore di 6<br />
<![endif]-->
<!--[if lte IE 5.5]>
In accordo con il commento condizionale questo è Internet Explorer minore o uguale a 5.5<br />
<![endif]-->
<!--[if gt IE 6]>
In accordo con il commento condizionale questo è Internet Explorer maggiore di 6<br />
<![endif]-->
</p>

Notate la sintassi utilizzata:

  • gt: maggiore di (greater than)
  • lte: minore o uguale a (less than or equal to)

CSS hack?

I commenti condizionali sono da ritenersi dei CSS hacks? A rigor di termine, sì, dal momento che possono servire a dare istruzioni speciali per alcuni browser. Tuttavia, essi non si basano su bug del browser per risolverne un altro, come fanno tutti i veri CSS hack. Inoltre, possono essere utilizzati per altri motivi e non soltanto come CSS hack (anche se ciò accade raramente).
Dal momento che i commenti condizionali si basano su una caratteristica voluta dagli sviluppatori, io credo che siano sicuri per l'uso. Certo, altri browser potrebbero implementare i commenti condizionali (anche se ancora nessuno lo ha fatto), ma è improbabile che rispondano alla query specifica <!--[if IE]>.
Io utilizzo i commenti condizionali, anche se con parsimonia. Prima cerco una soluzione reale ad un problema CSS di Windows Explorer. Se non posso, però, non esito ad usarli.

Comment tag

Internet Explorer (Windows e Mac) supportano il tag (non-standard) <comment>.

<p>Questo <comment>non</comment> è Internet Explorer.</p>

Questo non è Internet Explorer.

Questo tag potrebbe essere comodo se si desidera utilizzare tag o stili per tutti i browser tranne che per Internet Explorer. Purtroppo queste situazioni sono piuttosto scarse, soprattutto perché le versioni di Internet Explorer di Windows e Mac supportano questo tag e di solito si vuole servire del contenuto speciale o di stile soltanto per uno solo di essi.

Ti è piaciuto questo articolo? Aggiungilo a: del.icio.us


 

Ricevi tutte le news tramite RSS
© 2005-2010 MagnificaWeb. Tutti i diritti riservati.