Io non so davvero se salverà il mondo consentendo un'accelerazione decisiva nell'adozione dei CSS3 pur in assenza di un supporto esteso a tutti i browser. Fatto sta che le soluzioni basate su script o librerie che permettono di implementare le nuove funzionalità previste dalla specifica non si contano più.
Modernizr di Faruk Ates segue a dire il vero un approccio diverso. Semplificando: non permette di creare angoli arrotondati o trasparenze o animazioni CSS sui browser che non supportano tali funzionalità , ma semplifica la dichiarazione di fallback e soluzioni alternative. Il tutto attraverso un meccanismo che ricorda quello degli if... else
e che viene implementato con l'aggiunta di specifiche classi all'elemento body
.
Un esempio chiarirà meglio il tutto. Una volta aggiunto lo script, esso testa il supporto di certe funzionalità dei CSS3. Facciamo il caso degli sfondi multipli. Su Safari 4, che li supporta, sarà aggiunta in fase di rendering della pagina la classe multiplebgs
, su IE8, che non li supporta, la classe no-multiplebgs
. Su questa base si potranno scrivere nel modo più opportuno i CSS:
body.multiplebgs div p { /* per i browser che supportano gli sfondi multipli */ } body.no-multiplebgs div p { /* fallback per i browser che non li supportano */ }
Oltre che per i CSS3, Modernizr è utile per applicare gli stili a nuovi elementi HTML5 come section
o header
.