Per coloro i quali non hanno mai realizzato un sito web, quando si sentono parlare anche di CSS una delle domande più ovvie è “ma vale la pena usare i fogli di stile?”
Potreste tranquillamente rispondere di no, o se sapete quanto tempo ci vuole a fare un sito in puro CSS, essere dell’idea opposta, ma vi assicuro che il tempo e l’abitudine all’uso dei CSS vi farà redimere.
La mia risposta alla domanda ”Vale la pena usare i fogli di stile” è ovviamente “SI”. E oggi aggiungo anche “Non ne posso fare a meno”.
E’ dai tempi di Explorer 4 e Netscape 4 che il mio odio profondo per la sintassi proprietaria si è conclamato. All’epoca dei due browser non vi era un giorno che una release minore non modificasse un minimo comportamento di come il design venisse alterato, e io li a districarmi sul come aggiiustare un sito che solo pochi giorni prima era perfettamente funzionante.
E allora via con codice JavaScript, browser sniffers, e menate varie. Alla fine bisognava sempre scendere a qualche compromesso, di cui il più delle volte non ero certo orgoglioso. Explorer 5 cambiò un pò la vita in quel senso, e l‘“abbandono dello sviluppo” di Netscape che venne ceduta ad AOL, se vogliamo, fu una sorta di pace interiore. Tuttavia c’erano ancora molte persone che continuavano ad usare Netscape, i browser minori ancora non erano così diffusi, e comunque tra una versione ed un altra, Explorer cambiava sempre qualcosa.
Il problema insomma era che non esisteva una piena coscienza da parte dei produttori di browser dell’importanza di adottare linguaggi standard, e questa convinzione ha fatto molta fatica ad affermarsi.
Una prima svolta, sul versante dei browser di massa, si ebbe con l’introduzione di Opera, che ricordo ancora era un browser inizialmente a pagamento (esisteva anche una versione gratuita, ma toccava subirsi la pubblicità). Questo fu, a mio avviso, uno dei più grandi errori che la software house svedese commise, perchè il renderlo a pagamento penalizzò la sua diffusione (infatti oggi Opera è gratuito). Tuttavia c’è anche da comprendere la cosa: all’epoca i finanziatori per progetti “alternativi” non abbondavano, e magari la software house non era riuscita a trovare le sinergie giuste o magari si era rivolta ad una platea di finanziatori la cui importanza di avere un browser nuovo era meno sentita.
Fortunatamente oggi questa consapevolezza è aumentata. Oggi possiamo contare su strumenti di navigazione che supportano la quasi totalità della specifica CSS 2, e tra questi spicca Firefox che surclassa tutti gli altri. Microsoft ha continuato e sta continuando la sua opera di adeguamento. Ha deluso un pò con Explorer 6, e chissà cosa farà con Explorer 7.
Nonostante tutto la via dei CSS è ancora lastricata di tanti problemi per gli sviluppatori. Due le maggiori fonti di difficoltà:
- la compatibilità con i vecchi browser
- le diverse modalità di rendering di certe proprietà
Sono problemi diversi, che vogliono quindi risposte diverse.
La retro-compatibilità
Per quanto riguarda la retro-compatibilità si hanno due strade. Si può scegliere che non vale più la pena sprecare tempo per Netscape 4 e tutti i browser che non rispettino un minimo di standard. Semplice e accettabile, anche perchè basta avere un occhio alle statistiche del proprio sito web, sotto la sezione “agent” per vedere quante richieste sono generate da questi antenati e ci si renderà ben presto conto che non il gioco non vale la candela.
La seconda strada è quella di compromesso, del metodo detto cross-browser. Si tratta di elaborare strategie e di usare trucchetti in grado di preservare un minimo di compatibilità con il passato senza rinunciare ai vantaggi dei CSS per i browser recenti. Tendenzialmente, io seguo la prima linea di condotta.
Diversità di rendering
Il secondo aspetto è decisamente più rovente del primo. Qui la strategia non può essere univoca e va valutata caso per caso. E non si può nemmeno optate per la fuga, ma bisogna armarsi di pazienza e conoscenza e dar vita al nostro sito, testandolo su diversi browser e quando possibile su differenti piattaforme.
Il problema di fondo purtroppo è sempre lo stesso: per quanto i browser si stiano pian piano uniformando agli standard, ci sono ancora dei sassolini dentro la scarpa che sviano dalla retta via. Il risultato è che alcune proprietà sono disponibili solo su alcuni browser (un esempio che vale per tutti è il supporto mai incoraggiato dal W3C dello stile delle barre di scorrimento disponibile solo per IE) o altre proprietà che si comportano a volta in maniera differente. Fortunatamente le proprietà coinvolte da queste differenze sono il più delle volte poco importanti, e con pochi semplici accorgimenti si può porre rimedio, ma la vera e unica panacea è quella di testare le pagine con il maggior numero di browser possibile, valutate i risultati (e se le differenze siano trascurabili), quindi procedete senza problemi. Che una pagina sia identica e visibile allo stesso modo su tutti i browser è semplicemente un’utopia.
Se le differenze sono tante o tali da pregiudicare il layout della pagina affidatevi a Google o a qualche buona risorsa sui CSS per risolvere il problema. Un trucchetto prima o poi viene inventato, statene tranquilli. Una risorsa abbastanza importante dove poter iniziare le ricerche è la mailing-list css-discuss. Se non trovate una soluzione a un problema qui, vuol dire che non è stata ancora trovata.