Crea sito

CSS

Articoli, news, risorse, trucchi e suggerimenti sui CSS

Gli usi più creativi di jQuery ?

Oggi spezzo un po’ la monotonia di questo blog per tornare a parlare (era ora!) un po’ di web mastering e web design.

L’occasione mi si è presentata nel mentre selezionavo le risorse da inserire nel prossimo Best of Week e mi sono imbattuto in un articolo, apparso sul celebre portale NetTuts, a prima vista davvero interessante per chiunque si stia cimentando con jQuery e sviluppo web in generale: The 20 Most Practical and Creative Uses of jQuery.

Già il solo titolo, unito alla testata che lo ha pubblicato, dovrebbe essere una garanzia più che sufficiente non solo di utilità pratica ma anche di elevata qualità. Eppure, un po’ per scrupolo, un po’ perchè anche a me la cosa interessava parecchio, ho deciso di andare oltre la semplice lettura e tastare con mano tutti gli esempi riportati. E posso anticiparvi sin da ora che quell’articolo non finirà nella mia rubrica.

Mentre ad una prima lettura sembrerebbe infatti che le implementazioni effettuate dai vari autori siano la cosa più straordinaria del mondo, il discorso cambia decisamente quando si vanno ad aprire i vari esempi.

Non voglio qui puntare il dito contro questo o quello script/sviluppatore, pertanto cercherò di limitarmi ad una anlisi globale sugli aspetti più deludenti riscontrati.

Innanzitutto mi ha lasciato davvero molto perplesso notare come il fattore accessibilità sia stato totalmente ignorato non soltanto da alcuni sviluppatori, ma anche dall’autore dell’articolo.

Personalmente parto infatti da un presupposto imprescindibile secondo cui, se la resa finale non può essere cross-browser o cross-platform, bisognerebbe almeno garantire la piena fruizione dei contenuti anche sui browser non compatibili o con javascript disabilitato. Aspetto che invece non sembra essere stato preso in considerazione da alcuni sviluppatori (pochi per fortuna).

Restando sempre in tema accessibilità mi è parso poi davvero ridicolo riscontrare fra i siti in lista un Portfolio (o landing page) che supera addirittura i 5 MB (senza contare le infinite richieste http) per la sola (e strimizita) home page! Francamente, dopo aver atteso il caricamento di un mostro del genere, mi sarei quantomeno aspettato che non ci sarebbero più stati tempi di attesa nel passare da una sezione all’altra… Ovviamente mi sbagliavo ed anche tecniche base come il semplice preload o gli sprites vanno evidentemente al di là dell’immaginario comune.

Certo che se fosse finito tutto qui mi sarei comunque potuto ritenere fortunato. Ed invece è proprio la domanda che segue che mi ha portato a scrivere questo post:

Ma era davvero necessario ricorrere a jQuery (e JavaScript in generale) per ottenere quegli effetti?

Incredibile ma vero la risposta, in molti casi, è no. 😮

Per replicare alcuni degli effetti presentati sarebbe infatti bastato l’uso dei ben più semplici e compatibili CSS, eventualmente combinati con qualche sano hack.

Ora, ben vengano sperimentazioni e dimostrazioni pratiche delle proprie abilià o delle possibilità di un framework JS, ma nel momento in cui queste abbandonano lo status di esempio per approdare nel mondo reale credo bisognerebbe essere un po’ più critici. Specie poi nel caso specifico di jQuery che non è certo noto come il più parsimonioso di risorse (anche se con la prossima versione le cose porebbero cambiare).

Infine, e parzialmente correlato al punto precedente, lascia un po’ perplessi anche un’altra cosa. Molte delle risorse segnalate non hanno in realtà quasi nessun “sex-appeal” . Cosa che dovrebbe fare un attimo riflettere per un articolo che titola come “I 20 usi più pratici e creativi di jQuery”.

Ma ad ogni modo qui si va sul campo dei gusti personali e non è quindi possibile dare giudizi assoluti.

Chiudo quindi questo mio secondo articolo-polemica (o terzo ? 😕 ) nel mondo del web design lasciando a voi il compito di giudicare. E se volete fatemi avere i vostri pareri. 😉

PS
Preciso comunque che non tutto è da buttare e, anzi, molte cose sono interessanti. Solo sarebbe stato necessario maggior criterio durante la stesura dell’articolo.

Nostalgia di Opera

Aprendo dopo millenni il forum italiano ufficiale di Opera, questa mattina ho trovato una discussione interessante.

Si parlava della scomparsa, nelle ultime versioni del browser, di uno dei più spettacolari e peculiari CSS personali da applicare al volo alle pagine web che stiamo visualizzando, ovvero il mitico Nostalgia.

Opera Nostalgia

Per chi non sapesse di cosa sto parlando, si tratta, come spiega più che esaurientemente il nostro Francy, della grafica ad 8 bit visualizzata dal leggendario Commodore 64.

Nonostante personalmente non lo utilizzi più da secoli, sono rimasto incredulo leggendo della sua rimozione, considerando anche il fatto che più volte sulla rete ho letto di commenti entusiasti di questa funzionalità. Per principio, o per semplice ripicca, sono andato quindi a recuperarlo ed a rimetterlo al suo posto estraendolo da una vecchia versione del browser. Per chi volesse fare altrettanto ecco la procedura da seguire.

Per prima cosa scaricate il file nostalgia.css allegato a questo post.

Adesso dovrete copiarlo nella cartella styles\user\ all’interno del vostro profilo. Se non sapete dove si trova andate su ? > Informazioni su Opera e la troverete alla voce Cartella di Opera.

A questo punto vi basterà riavviare il browser per avere, nella lista dei vostri CSS personali, anche la vecchia modalità Nostalgia. E devo dire che un giro di prova in memoria dei vecchi tempi non dispiace affatto. 😛

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. 😉

Filmati Flash in background con i CSS

Ed iniziamo con questo articolo una serie di guide e di tips & tricks per eventuali webmasters alle prime armi che passassero da queste parti. Onestamente non so bene neanche io come (e se) si svilupperà la cosa. Ma come sempre l’importante è iniziare no?

L’idea mi è venuta grazie ad una domanda posta da un utente sul forum di MegaLab.it. Vedendo come operazioni apparentemente molto semplici possano sembrare dei problemi insormontabili ad un neofita mi ha spinto a cominciare questa nuova “rubrica”.

Ed adesso andiamo al tema di oggi: “Come creare in modo semplice e veloce una pagina web in cui un filmato flash farà da cornice alla nostra pagina vera e propria”.

Il trucchetto si rivela utile soprattutto per chi il Flash non lo conosce proprio al meglio, visto che la soluzione migliore sarebbe sviluppare tutto direttamente con questo programma sfruttandone le pressochè illimitate possibilità.

Per realizzare il nostro progetto ci limiteremo dunque al solo uso di codice (x)HTML e CSS e, in particolare, alle specifiche XHTML 1.0 Strict e CSS 2.1 così da garantire un’ottima compatibilità cross-browser e cross-platform (nonostante quell’ XHTML 1.0 Strict possa far pensare diversamente qualche profano 😉 ).

Per ottenere l’effetto desiderato, ovvero avere due livelli sovrapposti in vario modo esattamente come siamo abituati a vedere in programmi di grafica come Photoshop, la specifica CSS2 infatti ci mette a disposizione la proprietà z-index.

Tutto quello che dobbiamo fare è quindi creare due box posizionati assolutamente ed ai quali attribuire dei valori diversi per lo z-index (maggiore per quello che deve essere visualizzato sopra). Tuttavia questo non è ancora sufficiente in quanto limitandovi ad inserire il vostro file .swf tramite il codice standard (in genere fornito dalla routine di esportazione stessa) noterete che invece di fare da sfondo al livello superiore verrà visualizzato in primo piano coprendo la vostra pagina.

Questo comportamento, apparentemente inspiegabile, è in realtà normale in quanto, affinchè il plugin flash del vostro browser posizioni e visualizzi il filmato nel modo desiderato, è necessario che aggiungiate al codice fornito per il suo inserimento (ammesso che si tratti di codice XHTML valido) la seguente stringa:

<param name="wmode" value="transparent">

ottenendo quindi un codice di questo tipo:

<object classid="clsid:d27cdb6e-ae6d-11cf-96b8-444553540000" width="100" height="100" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,40,0"><param name="wmode" value="transparent" /><param name="src" value="movie.swf" /><embed type="application/x-shockwave-flash" width="100" height="100" src="movie.swf" wmode="transparent"></embed></object>

A questo punto avrete ottenuto l’effetto desiderato senza dovervi scervellare a gestire il tutto tramite il ben più complicato Flash. Comodo no? 😉

Ed ecco infine il codice completo di una pagina di esempio in cui un filmato preso da YouTube farà da sfondo al testo:

< !DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml"  dir="ltr" lang="it-IT">
<head>
<title>Test1 </title>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
<style type="text/css">
<!--
#box1 { background: #ffffff; width: 450px; position: absolute; top: 120px; left: 30px; z-index: 1; }
#box2 { background: #f3f3f3; width: 300px; position: absolute; top: 160px; left: 90px; z-index: 2; }
-->
</style></head>
<body>
<div id="box1">
<object classid="clsid:d27cdb6e-ae6d-11cf-96b8-444553540000" width="100" height="100" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,40,0"><param name="wmode" value="transparent" /><param name="src" value="http://www.youtube.com/v/dZWl-SOC5jQ" /><embed type="application/x-shockwave-flash" width="100" height="100" src="http://www.youtube.com/v/dZWl-SOC5jQ" wmode="transparent"></embed></object></div>
<div id="box2">Come volevasi dimostrare questo testo viene visualizzato sopra il filmato</div>
</body>
</html>
Go to Top