IE8 e l’opacità vecchia maniera
Martedì 3 Febbraio 2009 - 08:04
di Cesare Lamanna

Aveva suscitato parecchie discussioni la modalità con cui Microsoft aveva gestito il supporto per la proprietà CSS opacity nella fase di sviluppo di IE8.
Al momento dell’uscita della Beta 2, a Redmond si erano premurati di far sapere che per ottenere gli effetti di trasparenza su IE8 in modalità standard bisognava ricorrere ad una nuova sintassi in cui l’estensione proprietaria filter doveva essere preceduta dal prefisso -ms-. Una sintesi della questione con esempi di codice la trovate in questo nostro post.
Bene, navigando su qualche sito con la RC1 di IE8 ho potuto verificare come in realtà la situazione sia nuovamente cambiata: il browser in modalità standard applica regolarmente la trasparenza anche usando la sintassi (filter: progid:DXImageTransform.Microsoft.Alpha(Opacity=50); oppure filter: alpha(opacity=50);) in un primo momento segnalata dal team di sviluppo di IE come deprecata (potete fare dei test, mi limito a segnalare questa pagina di Quirksmode).
Ho cercato di scoprire se Microsoft avesse segnalato in qualche modo la cosa, e l’unica cosa che ho trovato sono le note di rilascio della versione Partner Build di IE8 ora diventata RC1 per gli utenti finali:
Syntactically valid filter declarations are applied in standards mode, even if unquoted. Starting with IE8 Beta 1, the following filter declaration was not applied in standards mode:
filter: progid:DXImageTransform.Microsoft.Alpha(Opacity=80, FinishOpacity=70, Style=2);Instead, IE8 standards mode required the following declaration:
-ms-filter: “progid:DXImageTransform.Microsoft.Alpha(Opacity=80, FinishOpacity=70, Style=2)”;For web applications supporting both IE7 and earlier as well as IE8 standards mode, this meant maintaining both declarations and possible a third for other browsers in the case of opacity. Starting with IE8 Partner Build, the first declaration above will be applied in standards mode if and only if its syntax is valid. If it is not e.g. the final parenthesis is missing then the declaration will not be applied and our CSS parser fails per the standard.
Chissà che la versione finale non ci riservi altre sorprese…
Commenti
1
L’ennesima prova che IE non cambierà mai…era così difficile implementare per lo meno la proprietà opacity stantard insieme al loro equivalente filter? Di IE non bisogna fidarsi per principio ormai…quelli di Microsoft fanno solo promesse e poi siamo sempre noi che i browser li usiamo per testare le nostre pagine a pagare il prezzo di queste scelte assurde. Sarebbe meglio per tutti se IE implementasse Gecko come motore di rendering. Allora forse riuscirebbero a fare un browser degno di questo nome.
# - postato da Alexandro - 03 Febbraio 2009 - 09:17
2
Ma supportare semplicemente la proprietà “opacity” non era più semplice?
3
@lloyd27
Certo che era più semplice, ed era anche più standard…è per questo che non l’hanno fatto.# - postato da Alexandro - 03 Febbraio 2009 - 12:07
4
… comincio a preparare il css con gli hack per IE8 :-)
# - postato da PPM - 03 Febbraio 2009 - 13:02
5
E’ davvero una …. cosa brutta!!
(per non dire altre cose peggiori)secondo me dovrebbero vergognarsi!
è tanto semplice:
opacity: 0;
perchè devo mettermi a fare un altro css per IE dove devo dire filter:X ecc ecc??
6
i browser di microsoft sono un insulto al web ed ai suoi standard.
7
IE sta migliorando, ma rimane sempre un software della Microsoft. E sappiamo tutti come alla Microsoft non vadano a genio gli standard già presenti, devono essere sempre suoi standard proprietari. Speriamo che prima o poi cambi atteggiamento.
# - postato da Gabbianone94 - 04 Febbraio 2009 - 16:14







