Come tutti sapete, il metodo forse più seguito per risolvere i problemi CSS di Internet Explorer senza ricorrere all'utilizzo di hack di vario genere nel foglio di stile principale consiste nell'uso dei commenti condizionali. Dall'articolo di Alessandro Fulciniti che ho linkato:
Usare i commenti condizionali e dichiarare le regole necessarie ad IE in un foglio di stile a parte ci consente di creare un CSS principale il più pulito possibile, libero da hack o workaround.
Bene, dalle segnalazioni di Simon Willison traggo il riferimento a questa alternativa presentata da Paul Hammond sotto la denominazione di nomi di classe condizionali.
Il problema che intende risolvere è semplice: creare uno o più CSS ad hoc per Internet Explorer aumenta il numero di richieste HTTP. Se si intende ridurre il numero di tali richieste e dei fogli di stile incorporati nella pagina, si può adottare questa strategia, sempre basata sui commenti condizionali.
Ecco il codice:
<!--[if IE ]> <body class="ie"> <![endif]--> <!--[if !IE]>--> <body> <!--<![endif]-->
Se il browser è Internet Explorer, verrà aggiunto un attributo class="ie"
all'elemento body
. In tal modo, nel nostro CSS, potremo creare regole specifiche per IE agganciandoci a questo riferimento:
div.foo { color: inherit; } .ie div.foo { color: #ff8000; }
Qualcuno conosceva o ha mai applicato un approccio simile? Lo trovate interessante?