Insel der Engel'

Il mio piccolo pezzo di Paradiso

 

Frameworks CSS: La moda del momento

Oggi torno finalmente a parlare un po’ di webdesign. Nessun tutorial questa volta (ma ne dovrebbe arrivare qualcuno prossimamente) ma solo una riflessione.

Seguendo con interesse la parte di blogosfera che si occupa di queste tematiche, non ho potuto fare a meno di notare come ultimamente realizzare, usare e rilasciare un Framework CSS sia diventata una cosa assolutamente necessaria, pena essere uno sfigato.

Web DesignMa andiamo con ordine. Cosa è un Framework CSS? Si tratta in pratica di un “pacchetto” base già pronto con tutto un insieme di regole generali che consentono in poco tempo di realizzare layout anche piuttosto complessi. In realtà l’idea è buona e facilita molto la vita di webmasters e webdesigners che non si vedranno più costretti a ricreare tutto da zero ad ogni lavoro commisionatogli. Creando un framework generico una volta, sarà poi sufficiente riadattarlo alle necessità del nuovo sito a cui si sta lavorando.

Ma la prima pecca (sempre nella mia umilissima opinione) sta proprio in questo: un framework va bene (e comunque neanche troppo) finchè ad utilizzarlo è il suo creatore o una ristretta schiera di sviluppatori molto vicini (nella metodologia) ad esso. Il motivo è presto detto ed anche facile da capire. Per accogliere le più disparate esigenze dei suoi utilizzatori, il CSS base dovrà necessariamente includere un corposo set di regole e proprietà generiche e di reset che non avrebbero senso di esistere (e che non ne hanno in effetti) in un foglio di stile creato in proprio e costruito per adattarsi al progetto per cui è nato, proprio come un guanto in lattice farebbe con una mano. 😆

Conseguenza di ciò sarà una inutile pesantezza e complessità del CSS finale che, tradotto in termini pratici, significa tempi maggiori per il suo download e per il rendering della pagina (ipotizzando che tutti i problemi cross-browser/platform siano stati previsti e risolti 🙄 ).

Se, tuttavia, questi problemi possono essere sentiti solo marginalmente (o comunque in modo irrilevante rispetto ai benefici) usando un framework ben progettato, la follia raggiunge il suo culmine con l’uso di framework specificatamente creati per sopperire ad ogni esigenza. Tipici esempi sono Blueprint e YUI Grids, nonostante le ottime intenzioni con cui nascono.

Il secondo problema è poi proprio l’uso, spesso davvero eccessivo ed inadeguato, di regole di reset. Anzi si è oggi arrivati persino ad avere non più framework CSS bensì CSS di Reset! 😯

Anche qui meglio dare prima una piccola spiegazione. Con regole di reset in pratica si azzerra qualsiasi “proprietà” (margini, padding e molto altro) che questo o quel browser attribuirebbe arbitrariamente agli elementi della pagina attenendosi al proprio schema (beati coloro che vedranno il giorno in cui il W3C sarà l’unico Dio riconosciuto da sviluppatori web e produttori di browsers).
Senza alcun dubbio il problema esiste ed è reale (anche se personalmente oggi non lo avverto più come in passato) e le opinioni in materia sono le più disparate. Quello che è certo però è che larga parte degli sviluppatori odierni fa un vero abuso di questa pratica anche quando sarebbe assolutamente evitabile, e vedere applicati 10 o più reset al selettore universale non è poi così raro.

Girl PC

Giusto mentre stavo scrivendo questo articolo (in stato di bozza da diverse settimane insieme ad altri che seguiranno 🙁 ) ho avuto modo di leggere un’interessantissima trattazione (che vi consiglio caldissimamente) dell’argomento sulle pagine di <edit>. Ed anche lì comunque il succo è il medesimo benchè a parlare siano voci ben più autorevoli della mia.
Chiamati in causa sono stati infatti Jonathan Snook e Jens Meiert, che si sono espressi anche ben più duramente del sottoscritto ed arrivando addirittura a sostenere che l’unico reset da utilizzare debba essere il classico margin: 0; padding: 0;.

Ai più questo sembrerà forse davvero eccessivo ma personalmente, per il mio modo di sviluppare un sito, non la ritengo una regola tanto costrittiva o limitativa.

Comunque stiano le cose è chiaro che si tratta di pure opinioni personali condivisibili o meno. In attesa di dedicarmi nuovamente al sito principale (lo finirò… un giorno o l’altro lo finirò), e verificare di persona la reale necessità di questi strumenti, io la mia l’ho detta (e con la solita logorroicità che mi contraddistingue 😆 )… ora tocca a voi. 😉

Leave one

4 Responses

  1. Cooming Jons

     /  28 Aprile 2008

    Bell’articolo complimenti. Mi trovo in perfetta sintonia con le tue opinioni ma c’è da dire che per lo meno l’uso di un framework permette di creare un sito correttamente sviluppato anche a chi non ne avrebbe le capacità.

  2. Ciao

    si in effetti anche questo è un aspetto importante e che può controbilanciare gli aspetti negativi evidenziati… ma come detto si tratta di semplici opinioni personali e nulla di più

  3. Andrea

     /  16 Maggio 2008

    Salve
    Ho letto con molta attenzione l’articolo e l’ho trovato davvero interessante essendo un aspirante webmaster alle prime armi. Non conoscevo questo genere di strumenti e riconosco che l’idea di provarli non mi dispiacerebbe.
    Avrei comunque una domanda riguardo una cosa letta nell’articolo: in cosa consisterebbe esattamente il selettore universale? Ne parlava sui CSS di reset.

    Aspettando una vostra risposta rinnovo i miei complimenti. 🙂

  4. Ciao
    riguardo l’utilizzo dei framework io non te lo consiglierei… la mia opinione l’ho già espressa sopra… considerando poi che dici di essere alle prime armi il mio consiglio è invece di cominciare a lavorare da 0… scoprirai piano piano tutti quei problemi che nessuna guida potrà mai insegnarti e la tua esperienza aumenterà grandemente 😉

    Per il selettore universale (per la cronaca costituito da questo simbolo: *) invece è di fatto un selettore generico le cui proprietà verranno attribuite a qualsiasi altro elemento della pagina, a meno che non venga specificato diversamente… se per esempio nel tuo CSS scrivi il seguente codice:

    * { margin: 0; padding: 0;}

    Tutti gli elementi (tabelle, div, ecc…) avranno tali proprietà

    Sperando di aver chiarito i tuoi dubbi, ti ringrazio per i complimenti. 😀