CSS/Compatibilità

Wikibooks, manuali e libri di testo liberi.
< CSS


Come pure molte altre tecnologie usate per la programmazione web, anche il linguaggio CSS soffre di problemi di compatibilità tra i diversi browser disponibili.
Infatti, sebbene ormai sia possibile adottare soluzioni accettabili e compatibili, persistono ancora nei diversi browser differenze con le specifiche ufficiali del WWW Consortium.

I problemi sono legati soprattutto:

  • alla compatibilità tra versioni precedenti dei browser (retro-compatibilità)
  • alle differenze di rendering (visualizzazione) tra i diversi browser

L'affidabilità dei diversi browser[modifica]

Attualmente nessuno dei browser in commercio offre il supporto completo agli standard W3C, tuttavia molti vi si avvicinano:

  • Internet Explorer, il browser attualmente più usato, è stato forse uno dei maggiori freni alla diffusione del CSS, a causa della scarsa attenenza agli standard. Presenta numerosi problemi di rendering (ad esempio il valore medium della proprietà font-size è interpretato in maniera scorretta) e, maggiore lacuna, non offre alcun supporto al contenuto generato (proprietà content, quotes, counter, ecc...).
  • presentano un ottimo supporto agli standard, anche se non completo, Firefox, Opera, Safari, Google Chrome e Konqueror. In particolare gli ultimi tre presentano un parziale supporto ai CSS3.

Soluzioni[modifica]

Una delle tecniche più usate è il cosiddetto browser-sniffing (annusamento del browser) tramite JavaScript, che consiste nella determinazione del browser in uso dal client e poter usare di volta in volta un foglio di stile differente.

Internet Explorer mette inoltre a disposizione nell'ambito dell'HTML il commento condizionale, una tecnica che consiste nell'inserimento nella pagina di un commento HTML distinto dalla particolare sintassi:

<!--[if IE]>
 codice esclusivamente per Internet Explorer
 <![endif]-->

In questo modo i browser normali non interpreteranno il commento mentre solo IE leggerà il codice al suo interno. In questo modo è possibile definire un foglio di stile unicamente per IE:

<!--[if IE]>
 <link rel="stylesheet" type="text/css" href="stileIE.css">
 <![endif]-->

L'ultimo suggerimento è quello di testare sempre le proprie pagine su diversi motori di rendering; è infatti oramai possibile sviluppare, come già detto, soluzioni accettabili e compatibili con più broswer.