CSS condizionali con XSLT

Mercoledì 28 Gennaio 2009 - 09:11

di Andrea Zilio

CSS

Grazie ad Ajaxian vengo a conoscenza di un nuovo e particolare metodo per fornire fogli di stile ad hoc per vari browser.

Con questa tecnica basta utilizzare un attributo del classico tag <link> o <style> per specificare i browser in cui gli stili dovranno essere intepretati ed il gioco è fatto.

Ecco ad esempio il codice per applicare un file CSS solo alle pagine visualizzate con Firefox o Safari 3:

<link rel="stylesheet" type="text/css" href="..." dr:select="Firefox, Safari 3" />

Javascript? No! Tutto funziona grazie ad un file XSLT che, applicato come descritto al codice XHTML della pagina, rileva il browser e nasconde i tag in base a quanto indicato dall’attributo dr:select.

Utilizzare in questo modo le trasformate XSL è sicuramente ingegnoso e questo metodo, rispetto ai classici commenti condizionali di Internet Explorer, permette di fornire fogli di stile specifici anche per altri browser come Safari, Opera, Firefox, ecc… Tutto senza richiedere che Javascript sia abilitato.

Limitazioni? Non ho avuto modo di testare, ma l’unico limite dovrebbe essere la necessità di fornire il documento come text/xml.

Tags:

Categoria: CSS | Permalink

Commenti

1

Non ho avuto modo di testare, ma l’unico limite dovrebbe essere la necessità di fornire il documento come text/xml.

Mhh… ma poi IE (Meglio: Windows) lo legge, o fa come i documenti serviti come application/xhtml+xml (save as…) ?

# - postato da RiKK - 28 Gennaio 2009 - 09:25

2

veramente molto interessante. Mi riprometto di fare qualche prova!

# - postato da Carlo - 28 Gennaio 2009 - 10:22

3

i documenti XSLT devono essere processati no? Bisogna impostare il server perché supporti l’xslt.

Qualche mese fa volevo studiarmi bene questa tecnologia per usarla con il cms/framework symphony (http://symphony21.com/) ma poi mi sono dedicato ad altro e non ho ancora avuto l’occasione di approfondire.

# - postato da Luglio7 - 28 Gennaio 2009 - 12:03

4

Ciao,

ho letto e valutato la news… tuttavia considerando che ormai è possibile realizzare un css unico per tutti i browser e limitarsi a servire qualche correzione per IE, secondo me il gioco non vale la candela.

# - postato da Andrea - 28 Gennaio 2009 - 13:21

5

Ottima segnalazione, appena mi capita lo provo e vedo come si comporta.

Grazie.

# - postato da Mr Kuzio - 28 Gennaio 2009 - 21:10

6

fornendo il documento come text/xml ricorre l’obbligo di codificare il documento ed il suo contenuto come UTF8

credo che chi ha problemi coi charset avrà un pò di noie ad usare questo ottimo metodo

# - postato da Salvatore Pecoraro - 29 Gennaio 2009 - 00:59

7

Ho trovato il tempo di provare questo metodo e, nonostante il sito dell’autore lasci intendere diversamente, sembra che tutto ciò non funzioni con Internet Explorer 7 che da un errore al caricamento della pagina.
(notare che con Internet Explorer 6 funziona)

Spero sia un problema risolvibile e di poco conto.

# - postato da Andrea Zilio - 29 Gennaio 2009 - 01:39

Inserisci il tuo commento:





(puoi usare i seguenti tag HTML per formattare il testo -
a href, b, i, br/, p, strong, em, ul, ol, li, blockquote, pre):

 

Anteprima del commento