Nessun risultato. Prova con un altro termine.
Guide
Notizie
Software
Tutorial

Offspring, selettori CSS con Javascript

Offspring, una libreria presentata su Alistapart per estendere il supporto dei CSS a IE6, insieme ad alcuni motivi per cui non si tratta di una soluzione accettabile.
Offspring, una libreria presentata su Alistapart per estendere il supporto dei CSS a IE6, insieme ad alcuni motivi per cui non si tratta di una soluzione accettabile.
Link copiato negli appunti

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

ul#nav li:first-child, ul#nav li.first-child{
/* qui le dichiarazioni necessarie */
}

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 e ad uno script sia una soluzione inaccettabile e poco pratica. E trovo poco pratico dover replicare coppie di regole che condividono lo stesso blocco dichiarativo. Una possibile soluzione, non prospettata da Bischoff, potrebbe essere quella di usare le pseudo-classi nel CSS principale e relegare le classi analoghe in un CSS specifico da aggiungere mediante il commento condizionale per IE6. In questo modo almeno avremo un CSS il più pulito possibile.

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 di Dean Edwards. La soluzione di Edwards, anche se più corposa, si rivela più trasparente dato che non c'è
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 che è un po'
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?

Ti consigliamo anche