Css condizionali con html comment e css conditional


11 marzo 2011 21 Commenti css

Oggi parliamo di come usare i css conditional comments nel migliore dei modi. Ma cosa sono?

Nativi per html sono dei semplici commenti ma per Internet Explorer rappresentano delle particolari condizioni che ci permettono di realizzare applicazioni molto particolari che si attivano solo alla presenza di un determinato browser di casa Microsoft.

Ebbene si, questi semplici codici ci permettono di creare delle vere e proprie condizioni funzionanti a secondo del browser.

La sintassi per utilizzare questi commenti è la seguente:

1
<!--[ If IE 8]> qua il contenuto condizionale <![endif]-->

Avrete notato due cose: il comando If , IE e il numero 8. Cosa vogliono dire? Semplice: ci dicono che solo il browser Internet Explorer 8 può visualizzare il contenuto nel commento condizionale.

Se omettessimo il numeretto tale commento funzionerebbe su tutte le versioni di IE. Ma se invece volessimo far funzionare questo codice per tutte le versioni che vanno da x in su potremmo scrivere tale codice:

1
<!--[ If IE gt 8]> lo vedi solo su ie7 in sù <![endif]-->

Ovviamente possiamo giocare con questi parametri attraverso questi comandi:

- lt seleziona i browser di versione inferiore a quello che gli dici tu
- lte seleziona quelle versioni uguali o minori
- eq seleziona quelle versioni uguali
- gte seleziona quelle versioni uguali o maggiori
- gt seleziona quelle versioni maggiori

Se volessimo provare qua questa semplice paginetta di esempio, che ho realizzato per vedere la potenza di tali codici, ovviamente potremmo utilizzare questi css conditional anche per segnalare all’utente che utilizza una versione troppo vecchia del browser ( solitamente vogliamo dirlo a chi usa ie6 ).

Nei css esistono invece i css conditional analoghi come i precedenti in quanto fanno la stessa cosa ma funzionano pure sugli altri browser.

Per utilizzarli dobbiamo scrivere la seguente sintassi:

1
2
3
4
5
6
7
.rocco {

margin: 10px auto;

[if IE 7] margin: 20px auto;

}

La proprietà margin verrà vista solo su ie7 e di 20px auto, mentre sugli altri browser sarà di 10px auto.

Ovviamente qua la lista della nomenclatura per selezionare il browser:

- Gecko per Firefox;
- Webkit per Safari;
- IEMac per Internet Explorer su Mac;
- Opera per Opera;

Valgono pure le stesse regole per selezionare i browser uguali , inferiori o maggiori:

1
2
3
4
5
6
7
.rocco {

padding: 10px;

[if eq IE 8] padding: 12px;

}

Ultima chicca: potremmo attraverso questi css condizionali, applicare pure la condizione di una regola css dicendo se fosse diverso i browser da quello che si userebbe:

1
2
3
4
5
.rocco {

[if ! IE 6 ] margin: 20px;

}

In questo caso se la versione fosse differente ie6 il margine sarebbe di 20px.

Queste css conditional sono ottimi per colmare i difetti che ogni browser importa da versione a versione e da browser a un altro.

Avete qualche dubbio? Volete dire la vostra? Vi è piaciuto l’articolo ? Commentate e condividete ;)




Potresti trovare interessante anche

compatabilita_internet_explorer_IETESTER 105
Pubblicato in css |



Iscriviti alla newsletter

Vuoi ricevere ogni articolo che pubblico direttamente sulla tua mail ? Vuoi evitare di perdere qualsiasi articolo pubblico ? Registrati alla mia newsletter in un click.

Inserisci il tuo indirizzo mail:

21 commenti per Css condizionali con html comment e css conditional

Ciao Rocco,
come sempre grazie di queste condivisioni, non sapevo potessimo usare i commenti anche all’interno del CSS.
 
Attenzione però che il codice 
<!–[ If IE gt 8]> lo vedi solo su ie7 in giù <![endif]–>
non è corretto, infatti sarebbe “lo vedi solo su ie9 in su”, altrimenti avresti dovuto mettere “lt”

Ciao ciao

Questo lo conoscevo di già , ma fa sempre comodo avere queste informazioni sotto mano ;)

@Dez correggo subito questo errore plateale ( la battitura ;) )

@Marcus Grazie Mille :D

ti stavo per segnalare anche io lo stesso errore di battitura ma vedo che l’hanno fatto già. :D
Bell’articolo

@yesWEBcan Grazie mille ;)

Molto carino non sapevo che si potessero inserire direttamente nel foglio stile. Purtroppo non è validabile una specifica del genere. Continuerò ad utilizzare i css hack che sono comunque validabili. Ciao!

Proprio quello che cercavo :D

;) Ottimo, mi tornerà utile a breve.

@Alessandro a ogniuno la sua
@Roberta & @Gabriele Malaspina sono contento :D

Interessante sapere che si possono usare pure all’interno deri fogli css.
Eppoi sinceramente non mi ero mai andato a documentare su lt, lte, eq, ecc..

Ciao Rocco! Complimenti per portfolio e blog.
Sono capitato qua diverse volte, ma mi accorgo solo ora che anche tu sei un webdesigner nisseno.
Saluti. Phil

@Zaso ottimo ;)

@Filippo ottimo a sapersi  un collega nisseno pure su Ebug :D

Controllatevi questo articolo e’ di gran lunga piu’ completo.

http://www.javascriptkit.com/dhtmltutors/csshacks.shtml

@bugV grazie per la condivisione, ma perdonami ci sono un sacco di inesattezze in quest’articolo e in più sembra pure datato :( , controlla la prossima volta la fonte ;)

[...] questa tecnica vi è sembrata utile io ho realizzato una piccola guida a questo link che spiega come utilizzare al meglio questi commenti [...]

Grazie per la condivisione.
Vorrei chiedere delle spiegazioni.
IEtester non mi fà vedere le correzione che apporto al css tramite gli hack quindi io non sò se funzionano o no….come la mettiamo.
Inoltre metto il link per 2 foglio di stile separati per IE7 e IE8 lui vede quello di IE8 nel debug in elenco assieme agli altri “standard” metre quello di IE7 (presente nella pagina in visualizzazione sorgente) non lo mette in elenco quindi non sò poi come proseguire.
Qualche suggerimento?

ciao @Giuseppe potresti darmi un link per vedere quello che hai già fatto in codice ? Aspetto tue nuove :D

grazie dell’articolo
ho cercato queste informazione su molti siti, e nessuno dei codici postati funzionavano.
Il tuo si.
grazie davvero!
 
Simona

@simona grazie mille a te per il complimento ^_^, se hai bisogno di altro io sono qui ;)

Lascia un Commento