Espressioni CSS vs. Javascript
Mercoledì 21 Novembre 2007 - 08:33
di Cesare Lamanna

Non so quanti di voi hanno usato o usano nei CSS le cosiddette espressioni CSS. Si tratta di uno dei modi con cui è possibile, tra l’altro, implementare sulle versioni più datate di Internet Explorer le proprietà CSS non supportate dal browser di Microsoft. Volete usare max-width? Si può fare così:
#container{
/* per IE */
width: expression(document.body.clientWidth > 1100)? "1100px" : "auto";
/* per i browser che supportano la proprietà */
max-width: 1100px;
}
Copio il codice da questo post in cui Robert Nyman evidenzia i problemi di prestazione nella resa delle pagine che possono derivare da questa scelta. E dato che le espressioni, essendo in tutto e per tutto Javascript, non sono interpretate se il browser non supporta questo linguaggio, non c’è motivo per non usare proprio Javascript per ottenere i risultati desiderati. Basterà servire lo script solo a IE con i commenti condizionali. Il guadagno in termini di prestazioni sarà comunque assicurato.
Commenti
1
Espressioni CSS? Aborro!!!
# - postato da Pino Volpe - 21 Novembre 2007 - 09:33
2
Mi associo all’amico Pino Volpe. Aborro? Di più!! ma scherziamo? Non sarebbe meglio il supporto completo ai CSS 2.1, o 3, invece di usare sotterfugi, commemti condizionali, hack e quant’altro? Non credo che non siano capaci, anzi… Forse il motivo è che si devono distinguere (in negativo) rispetto ai browser molto standard compliant.
3
Preferisco fare un css che sia valido per le versioni più recenti dei browser (parlo da IE 6 in poi), e cercare di farlo il meglio possibile, evito come la peste queste soluzioni (ma che molti altri miei colleghi ho visto usare ancora molto spesso).
# - postato da Alessio Michelini - 21 Novembre 2007 - 11:00
4
io semplicemente faccio siti senza più pensare ad internet explorer 6.
Chi ha un browser indecente si merita siti indecenti :)# - postato da saintpumpkin - 21 Novembre 2007 - 11:46
5
Dato che explorer è l’unico che legge i commenti e li interpreta nell’html, io proporrei un hack in cui gli si dice di associare un ulteriore css nel caso il browser sia explorer 6 o 7.
E’ la soluzione più semplice e pulita secondo me.
6
quando proprio non si può fare altrimenti uso commenti condizionali con css e javascript per IE, 6 o 7, nella remota speranza di avere in futuro una versione di internet explorer standard-compilant…
7
Certo è vero che alcuni browser non sono conformi agli standard, ma è anche vero che la maggior parte degli utenti usa proprio quei browser.
Quindi io eviterei i commenti estremisti tipo “o mangi di questa minestra o giù dalla finestra”.
Visto che purtroppo per molto tempo dovremo sopportare il “quasi monopolio” dello zio adattiamoci come possiamo.Io, ad esempio, preferisco usare questo tipo di strategie, piuttosto di creare un css per ogni browser o fare qualche spaghettata di codice php dentro al css.







