Quante volte ci è capitato di notare differenze di stili su siti web a seconda del Browser utilizzato?
Come ben saprete, purtroppo i diversi browser in circolazione non interpretano il codice CSS allo stesso modo.
La soluzione per risolvere questo inconveniente è creare dei Conditional-CSS!
Fogli di Stile (CSS) che hanno la funzione di verificare tramite condizioni la versione del browser e di conseguenza attivare o meno alcune proprietà alla classe.
Vediamo insieme la sintassi del codice da inserire nei nostri CSS
Ecco un esempio di Conditional-CSS:
.box {
width: 400px;
[if IE 6] width: 600px;
padding: 100px 0;
}
In questo caso se il browser prescelto sarà Internet Explorer 6 la larghezza della nostra classe chimata box sarà larga 600 pixel altrimenti 400 pixel
[if {!} browser]
[if IE] oppure se è diverso da IE6 [if ! IE]
[if {!} browser version]
[if IE 6] oppure se è diverso da IE6 [if ! IE 6]
[if {!} condition browser version]
[if lt IE 6] oppure se non è Minore di IE6 [if ! lt IE 6]
Per quanto riguarda l’inclusione di fogli di stile su piattaforme server come PHP, C, C# è possibile utilizzare il sito opensource conditional-css.com
Il sito permette di compilare automaticamente in due sempici click i codici necessari per adoperare o includere CSS condizionati ottimizzati al meglio
Ecco una pagina demo in cui potremo vedere l’utilizzo di un CSS condizionale a seconda del browser usato per visualizzare la pagina.
Articoli simili in CSS, Grafica, HTML, PHP, Sviluppo, Webdesign
tag abilitati: <code> </code> | <a href=""> </a> | <b> </b> | <i> </i>
Iscriviti ai Feed RSS dei commenti di questo articolo

Conditional-CSS: un CSS per ogni browser | Kobrabyte
27 agosto 2008
[...] JuliusDesign ci presenta Conditional-CSS, cioè un foglio Css, che [...]
Issivan
27 agosto 2008
Hai ragione bel argomento,
diciamo però che se il codice css è pulito e se uno sa molto bene i fogli di stile si riesce a fare a meno di questo Conditional-CSS
IE e Mozzila non vanno per niente daccordo…specialmente con le nuove versioni.
Peccato che adesso IE 6 e IE 7 ad esempio visualizzano diversamente il css perciò la questione si complica ulteriormente anche tra lo stesso browser….hehehehehe
Ciao
Saverio
27 agosto 2008
Non li conscevo! va be non sono un espero!
Comunque funzionano figata!
Mi hai salvato!
Marchino
27 agosto 2008
Ottima soluzione!
Oramai i browser sono davvero troppi, e ci sono ancora persone poco esperte che utilizzando IE6, davvero mostruosa la cosa…
Non si potrebbe unificare tutto a Firefox? sarebbe meglio…
Issivan
27 agosto 2008
@Marchino magari
Marco
27 agosto 2008
Molto interessante l’argomento, vista la continua evoluzione/aumento dei browser…
COMPLIMENTI JULIUS!
Julius
27 agosto 2008
@Marco ottimo portfolio, belli anche i fotoritocchi bravo!
franc3s
27 agosto 2008
Mi stanno capitando spesso sottomano negli ultimi tempi lavorando un po di piu lato codice, e il tuo articolo capita a fagiuuuolo! Bentornato
ZioSteve
27 agosto 2008
Oppure si può utilizzare il PHP:
<?php
if (ereg("MSIE", $_SERVER['HTTP_USER_AGENT'])) {
echo "";
}
else {
echo "";
}
?>
Sinceramente preferisco questa di opzione, in questa maniera non si appesantisce troppo il singolo file .css, settando più regole.
L’unico inconveniente e che non potrete salvare le pagine con il solito .html, ma in .php.
Ciao!
Issivan
28 agosto 2008
Zio preferisco .php fa + figo
:)
.html sembra pagina statica hahahahahah
Gigi
5 settembre 2008
Ho trovato un altro articoletto interessante…
http://tinyurl.com/5usce5
Julius
5 settembre 2008
@Gigi Ottima segnalazione
Nikopolidis
10 ottobre 2008
Ciao julius, per caso sai se c’è qualcosa relativo a Safari su Mac come condizionale?
Grazie
Riggio Filippo Matteo
21 aprile 2009
Ciao Julius ti segnalo una correzione di dovere.
Ho testato i conditional css come hai proposto tu,il problema è che non funzionano.
Questo perchè il codice css non ha la capacità di riconoscere il browser del client.
Il conditional css è giusto ma non va utilizzato nella dichiarazione degli stili stessi, bensì quando inserisci il link al file css. In questo modo:
<!--[if IE 6]>-->Spero di essere stato utile.
Ciao alla prossima!
mrzpro
18 luglio 2009
Ciao, così come sono riportate le condizioni non funzionano in alcun modo. Sarebbe necessario creare dei files d’ esempio anche perchè, vedendo quanto scrive Riggio Filippo Matteo non è molto chiaro dove/come inserirlo inoltre è una riga commentata e non verrebbe eseguita…..
Gabriele
27 gennaio 2010
Riggio Filippo Matteo ha scritto:
Invece funziona, basta andare sull’apposito sito che ti crea il file php col nome del tuo file css (e lo importi con @import).
E’ noto che, purtroppo, non si possono usare i commenti condizionali direttamente nel css per farli interpretare dal browser ed infatti di ciò si occupa lo script in php (o in C) che viene eseguito lato server.
ciao,
Gabriele
Gabriele
27 gennaio 2010
@ Julius:
Ciao,
sto usando anch’io il sistema del conditional-css, ma ha una limitazione grossa: non distingue le “sotto versioni” del motore di rendering.
Ad esempio tra gecko 1.9 e 1.9.2.
Probabilmente modificando il file c-css.php si può fare, ma io non riesco bene a capire come. Mi pare sia la funzione ‘fnSetUserBrowser’ e quella successiva che arrotonda ad un solo decimale il riconoscimento…
Tu hai forse idea di come fare?
grazie
Gabriele
sergio
15 aprile 2010
aiuto, sono confuso!
ho costruito un sito su firefox/Mac e l’unica differenza tra altri browser/SO è solo la lunghezza del menu orizzontale.
vorrei quindi applicare giusto una regoletta per i vari IE, a questo punto la mia domanda è dove va inserito il giusto codice? nel CSS? o nel file dove risiede il codice del menu?
si può fare una differenza anche in base al SO?
grazie ragazzi scusate le mille domande
K
27 maggio 2010
infatti così non funziano gli stili condizionali. Il problema è che sono regole interpretate dall’html e non dai file css…
@ZioSteve: con la potenza computazionale dei computer moderni e la velocità delle connesioni sarebbe meglio appesantire i file css ( o html e js) piuttosto che appesantire il server con un controllo inutile. Inoltre per la separazione dei compiti concettualmente è meglio inserire regole che definiscono il layout nei file html. Mi spiego: se un giorno un grafico deve rifare la grafica del sito ma non conosce il php (come è giusto che sia) si può trovare in difficoltà. Separando la logica di presentazione tramite i css il grafico si occupa di fare il grafico e il programmatore di fare il programmatore…
Mario
20 agosto 2010
Ciao,
Ho provato con gli ID ma sembra non andare. Come posso farE?