Home > Java for Web, Programmazione > La magia di ice:outputStyle

La magia di ice:outputStyle

Mi sono sempre chiesto perchè fare un tag icefaces apposito solo per inserire il link ad un foglio di stile. Bene, oggi pomeriggio non riuscivo a venire a capo di un problema, ho letto la documentazione del componente in questione, ed ecco svanite tutte le perplessità (il consiglio leggere sempre le istruzioni prima dell’ uso è sempre valido).

Con le facelets, di default è abilitato che non vengono considerati i commenti html, in modo da mandare meno roba ad i clients, ma questo comporta che anche i commenti condizionali per i css mirati ad i browsers (maledetto IE) vanno a finire nel garbage.

Il caro metodo:

<!–[if IE]>….<![endif]–>

non viene più mandato nella response. Ed ora come faccio ad inserire un foglio di stile che aggiusta qualcosa solo quando apro l’applicazione web con Internet Explorer?

Niente di più semplice: se il mio voglio di stile si chiama ad esempio /css/styleRed.css, creo nella stessa directory il file css dedicato al browser internet explorer 7 chiamandolo con lo stesso pathname, ma preponendo all’estensione .css la stringa “_ie7″; ecco quindi che il secondo foglio di stile sarà /css/styleRed_ie7.css.

A questo punto basta che nella nostra pagina web o nel template usiamo il comando:

<ice:outputStyle href=”/css/styleRed.css”/>

ed icefaces fa tutto il lavoro per noi: apri con mozilla e viene caricato solo styleRed.css, apri con IE7 e trovi nel sorgente pagina caricato styleRed.css e subito dopo styleRed_ie7.css

Bellissimo e facilissimo, no?

Le stringhe da usare per creare i fogli di stile adattati per i browser sono:

  • Internet Explorer < 7 = _ie.css
  • Internet Explorer 7 = _ie7.css
  • Safari = _safari.css
  • Sun Studio Creator = _dt.css

Java for Web, Programmazione , , , , ,