L'altro ieri su A List Apart è stato pubblicato
Keeping Your ElementsÂ’ Kids in Line with Offspring, un articolo che presenta Offspring, una libreria Javascript per estendere il supporto di alcuni selettori CSS livello 2 e 3 per IE6 ma non solo.
L'idea di Offspring è quella di trasformare selettori che usano pseudo-classi
del tipo li:first-child
nella classe omonima, cioè li.first-child
, così da permettere la scrittura di regole comprensibili anche per IE6. Bisognerà però ridondare la regola, assicurandosi di usare la pseudo-classe e il selettore di classe corrispondente assegnato mediante DOM da Offspring. O almeno, in via teorica. L'autore stesso sostiene che qualcosa del tipo
che dovrebbe essere l'approccio preferibile o più logico, in realtà può causare problemi con Offspring
Che fare dunque? Viene suggerito di usare solo le classi generate da Offspring. Oppure evitare di raggruppare i due selettori e creare due regole con lo stesso blocco dichiarativo. Se devo essere sincero, credo che sacrificare le pseudo-classi
che sono supportate ormai sulla maggioranza dei browser e legare permanentemente le nostre pagine a un CSS autolimitato
Nel corso dell'articolo vengono analizzati pro e contro, e viene citata anche una
nota libreria nata proprio per estendere il supporto dei CSS ad IE6, ovvero
lo script IE7
bisogno di degradare a classe i selettori non supportati: lo script in questo caso si occupa direttamente del parsing del foglio di stile.
Personalmente ritengo Offspring una soluzione poco ortodossa e preferirei usare lo script IE7
più pratico e trasparente oppure, se proprio fosse necessario
usare classi nel markup piuttosto che sacrificare il progressive enhancement solo per estendere il supporto di IE6. Voi, che ne pensate?