Cosa manca nei CSS?

Mancanze e difetti più evidenti dei CSS, in un articolo aperto a opinioni e suggerimenti.

Senza dubbio i CSS sono uno strumento essenziale per ogni web designer, ma non sono esenti da difetti. Prendendo spunto da un recente post di Rockholderdesign, ho voluto riassumere quelle che secondo me sono le più gravi mancanze.

Ecco cosa che mi piacerebbe vedere implementato.

Selettori ascendenti

E’ una buona pratica l’uso dei selettori discendenti per evitare l’abbondanza di classi, ma al momento non esiste modo di selezionare il genitore di un particolare elemento.

Posizionamento verticale

Alcune azioni apparentemente intuitive sono fin troppo complicate con i CSS. Ad esempio il posizionamento orizzontale è elementare, ma centrare un elemento verticalmente non è così semplice.

Espressioni matematiche

Non è possibile usare formule per calcolare una dimensione, come ad esempio width: 100% – 5px;

Contenimento dei float

Non esiste una proprietà per far contenere ad un elemento un float (problema noto anche come auto-clear di un div). Ci sono degli hack, ma spesso portano a conseguenze indesiderate.

Background multipli

Attualmente è impossibile specificare una doppia immagine di sfondo su un elemento. La possibilità è prevista nei CSS3, e sarebbe di grande aiuto per evitare markup aggiuntivo.

Angoli arrotondati

I CSS permettono di utilizzare solo forme rettangolari. Sarebbe utile l’introduzione degli angoli arrotondati, così come quella di altre semplici forme facilmente gestibili dal foglio di stile.

Variabili

L’introduzione delle variabili sarebbe un vero passo avanti per i CSS. Poter dichiarare colori, bordi e altri elementi in maniera sintetica agevolerebbe il lavoro. C’è qualche speranza per il futuro, ma è ancora un’ipotesi lontana.

Colonne

Realizzare dei layout con 2, 3 o più colonne è ovviamente possibile, ma anche in questo caso non esistono dei moduli CSS appositi. Sarebbero sicuramente utili delle proprietà su misura per dividere uno spazio in colonne.

Maggiore coerenza tra i browser

Il punto fondamentale, non imputabile direttamente ai CSS. Ciò che crea più problemi tra gli sviluppatori è il differente supporto tra i vari browser esistenti. Alcuni come Safari e Opera si spingono fino ai CSS3, altri come Explorer non arrivano nemmeno alle specifiche dei CSS 2.1. Maggiore coerenza non farebbe male.

Alcuni di questi punti sono caso di studio per le future specifiche dei CSS, altri sono solamente delle ipotesi. Secondo voi cosa altro manca? Poche aggiunte faciliterebbero il compito di chi lavora ogni giorno con i fogli di stile: non sono problemi insormontabili e c’è sempre un modo per aggirarli, ma riuscire ad evitare hacks e markup aggiuntivo sarebbe un sogno.

Miglior sito Hosting Talk 2008: il nuovo concorso

HostingTalk.it lancia un nuovo concorso per premiare il miglior sito. Ecco i dettagli per partecipare, tra i premi un server dedicato.

A due anni di distanza dal primo concorso, Hosting Talk lancia una nuova competizione per decretare il miglior sito HT 2008.

Per chi non lo sapesse, TomStardust.com è stato eletto miglior sito dell’edizione 2006. Per me è quindi d’obbligo segnalare l’iniziativa, che mi ha aiutato a far conoscere questo blog dopo pochi mesi dal lancio.

Iscrizione e regolamento

Per partecipare è sufficiente iscriversi in questa sezione del forum HT, naturalmente dopo aver letto il regolamento.

Il sito non potrà essere di un’azienda del settore hosting e dovrà essere segnalato dal proprietario, in ogni caso potranno iscriversi anche i partecipanti all’edizione 2006. Ovviamente l’iscrizione è gratuita.

Criteri di valutazione

Il sito sarà valutato da uno staff interno, sulla basi di criteri che molto probabilmente saranno gli stessi dell’edizione 2006:

  • Grafica
  • Codice
  • Contenuti
  • Posizionamento sui motori di ricerca
  • Organizzazione
  • Accessibilità
  • Usabilità
  • Rispetto degli standard W3C

Premi

Ecco la parte interessante, i premi. Saranno ben 10, quindi avrà la possibilità di vincere qualcosa anche chi non si classificherà nelle primissime posizioni.

Senza dubbio in evidenza i primi due premi, due server dedicati. Al terzo classificato andrà un pacchetto di servizi di Sedo.it, mentre dal 4° al 10° premio ci sono diversi piani hosting, tutti da 12 mesi.

Io mi iscriverò, anche perchè la valutazione finale del primo concorso mi ha dato molti suggerimenti utili per migliorare alcuni aspetti del sito. Mi auguro che anche in questa edizione la procedura sia simile.

Grunge: nuovo stile per il Web Design

Dopo la grafica Web 2.0, attira molte attenzioni il grunge style. Uno sguardo alla nuova tendenza con esempi e download.

Senza ombra di dubbio lo stile Web 2.0 è stato uno dei più seguiti ed utilizzati degli ultimi tempi. Riflessi, colori accesi, badge e quant’altro stanno ancora imperversando in rete, ma nuovi stili cercano di emergere per differenziarsi dalla massa.

Proprio tra questi c’è il Grunge style: il termine è difficilmente traducibile, ma è possibile riconoscerlo facilmente.

Cos’è lo stile Grunge

E’ caratterizzato da un look sporco, con irregolarità nelle illustrazioni e negli elementi che compongono le pagine. Spesso i colori sono scuri, ma ci sono anche delle eccezioni. In realtà non nasce oggi, ma diversi siti lo utilizzano già da tempo: basti pensare che questo post di Jason Santa Maria è del 2004.

Per un web designer, nonostante l’apparenza disordinata questo stile implica molto più lavoro ed attenzione ai dettagli. Servono ottime doti di fotoritocco e soprattutto equilibrio per non esagerare e rendere un sito caotico.

L’irregolarità va bene, ma non deve diventare un problema per l’utente: il primo obiettivo deve sempre essere una facile lettura ed una navigazione intuitiva.

Proprio questa difficoltà probabilmente impedirà allo stile grunge di diventare una vera e propria tendenza. Niente comunque vi impedisce di usarlo per ottenere un risultato originale e differente dagli altri.

Galleria Grunge

Ecco alcuni esempi. Cliccate sugli screenshot per andare ai siti relativi.

Matt Brett Darklight JUXT Interactive Bart-Jan Verhoef nYq Design Studio CSS Rockstars

Download e Risorse esterne

Senza dubbio uno dei punti fondamentali per questo stile è l’attenzione alla tipografia: da non perdere questa collezione di 63 font gratuiti in stile grunge.

Un’ottima guida, anche questa risalente a diverso tempo fa, è quella di Cameron Moll. Divisa in quattro parti, spiega anche come sfruttare al meglio Photoshop.

Immancabile la segnalazione di Smashing Magazine, che ha dedicato ben 2 articoli allo stile Grunge:

Infine se siete alla ricerca di altre icone, texture ed elementi grafici, vi segnalo questo sito.

99designs e la svalutazione del mercato IT

Un sito consente di avere lavori di design realizzati per 100$. Analisi del fenomeno e dei problemi del mercato IT, non solo in Italia.

99designs LogoNavigando in rete si fanno ogni giorno delle scoperte, quella odierna per me è stata 99designs. E’ un sito creato dai gestori di Sitepoint che permette di organizzare dei contest, stabilendo un compenso. I partecipanti sottopongono i loro lavori ed il creatore del concorso decide quale accettare, pagando la cifra stabilita.

Sembrerebbe interessante, se non fosse che la maggior parte dei lavori (soprattutto attività di logo design, ma anche layout per siti web) hanno compensi tra i 100$ ed i 200$, cifre veramente irrisorie soprattutto se pensate al cambio euro-dollaro.

A volte si incontrano clienti che per la realizzazione di un sito affermano “lo faccio fare a mio nipote.. se la cava con i computer e risparmio”, ma in quel caso il risultato sarà logicamente amatoriale. A questo target di clienti non interessa il lavoro di un professionista. Qui però il problema passa ad un livello diverso, perchè i risultati finali spesso sono buoni, ma ricevono un compenso non adatto.

Il punto cruciale è uno: il mercato è cambiato, non servono innovazione e grandi investimenti, ma nella maggior parte dei casi si scelgono le soluzioni più economiche. Ovviamente anche i gestori di 99designs ne sono consapevoli, ma finchè avranno partecipanti ai contest non ci sarà motivo per cambiare politica.

Proprio pochi giorni fa sulle pagine di questo sito è stato sollevato indirettamente il problema, nei commenti del contest per il logo di Kublai, che aveva un premio di 1000€. Se pensate che nel caso di 99designs ci sono lavori di buon livello realizzati anche per 100$, gli spunti di riflessione non mancano.

Ci sono stati diversi articoli sui problemi del mercato IT anche su Punto Informatico: uno dei più interessanti è del Novembre scorso, di Giuseppe Cubasia, che dice:

Per semplificare, il mercato dell’IT è diventato come l’IKEA.
Ne aprono sempre di più e sono sempre di più affollate perché la gente vuole soluzioni economiche, talmente economiche che se le monta da sola, magari male, consapevole che non è proprio quello che voleva, consapevole che tra pochi anni dovrà ricomprarle, però sono soluzioni economiche e che fanno (quasi) al caso loro.

Personalmente credo che il problema esista, ma debba essere valutato senza rassegnarsi. Se si hanno le qualità, trovare lavoro nel settore non è impossibile, l’importante è cercare negli ambiti giusti. Il sito amatoriale può essere fatto da più o meno chiunque, ma ci sono determinati progetti che necessitano di figure specializzate, ed è lì che si può fare la differenza.

Ci sarà sempre chi avrà bisogno di consulenti di accessibilità ed usabilità, che dovrà affidarsi ad un professionista per evitare problemi ed avere garanzie sia di qualità che di assistenza.

Voi cosa ne pensate? Aspetto i vostri pareri a riguardo, l’argomento è rilevante sia per chi lavora nell’ambito del web design, che più in generale nel mercato IT.

Il Framework CSS ideale

I Framework CSS sono fogli di stile con regole già pronte, che teoricamente dovrebbero servire per tutte le esigenze. In realtà per me non è così, il mio CSS di base è costruito su misura.

CSS Edit LogoIn questi giorni ho ottimizzato il CSS di base che utilizzo come partenza per tutti i miei lavori. Scartare a priori l’idea di utilizzare un qualsiasi Framework CSS, come Blueprint, è stata la prima cosa che ho fatto.

Per chi non lo sapesse i Framework CSS sono fogli di stile con regole già pronte, che teoricamente dovrebbero servire per tutte le esigenze, ma che almeno nel mio caso complicano solo il lavoro. Spesso proprio questa generalità implica un’inutile mole di codice, che nella maggior parte dei casi non viene utilizzato.

Queste soluzioni non potranno mai essere universali: ognuno è abituato ad utilizzare un metodo diverso, e CSS Reset a parte tutto il resto ha comunque bisogno di essere personalizzato.

E’ appunto solo il CSS Reset di Eric Meyer che uso come punto di partenza, perchè consente di avere una buona coerenza tra i vari browser senza i problemi del reset con il selettore universale “*”.

Nel mio caso ho eliminato i selettori che non utilizzo per alleggerire il codice, ma la base è sempre quella di Eric.

Inoltre una comoda aggiunta per la quale ho rubato l’ispirazione a Piotr, è l’inserimento di una sezione dedicata ai colori utilizzati, all’inizio del CSS. Un comodo riferimento durante lo sviluppo, anche per eseguire al volo dei copia-incolla dei codici esadecimali.

Il risultato finale è un CSS che potete vedere a questo indirizzo, ma che non è pensato per essere adatto a tutti, l’ho realizzato esclusivamente per me.

Il mio consiglio è di ispirarsi alle varie soluzioni che offre la rete, ma costruirsi un CSS di base secondo le proprie esigenze. Solo così potrete ottimizzare i tempi nella scrittura di un foglio di stile.

Shadowbox: soluzione Javascript per gallerie di immagini

Analisi di Shadowbox, una soluzione Javascript che potrebbe definire un nuovo standard per la realizzazione di gallerie di immagini.

Le gallerie di immagini sul web occupano senza dubbio un importante spazio, soprattutto per la varietà di soluzioni javascript che ci sono a disposizione per implementarle.

Gli script più famosi sono sicuramente Lightbox e Thickbox, che ho confrontato in passato. Da qualche mese però è disponibile Shadowbox, una soluzione che potrebbe definire un nuovo standard per la realizzazione di gallerie di immagini.

Queste le caratteristiche:

  • Standard-compliant: il codice HTML utilizzato è valido
  • Cross-browser: supporta tutti i principali browser, da IE6 ad Opera passando per Firefox e Safari
  • Cross-platform: è adattabile a molti framework javascript (Prototype, jQuery, MooTools..) tramite gli adapters, che indicano a Shadowbox quale metodo utilizzare
  • Aspetto personalizzabile: tramite delle skin CSS è semplice modificare l’aspetto delle finestre
  • Multiformato: supporta immagini, filmati QuickTime, Windows Media Player, Flash, Flash Video e HTML
  • Configurabile: sono disponibili decine di opzioni di personalizzazione per cambiare facilmente colori, interfaccia e tempi di esecuzione

Quello che mi ha colpito maggiormente è proprio il supporto a diversi framework, che consente di risparmiare codice, ridurre i tempi di caricamento e integrare perfettamente Shadowbox nel proprio sito.

Se volete approfondire l’argomento vi rimando al sito ufficiale, dove sono disponibili anche varie demo.

Per valutare invece le altre soluzioni per realizzare gallerie di immagini, potete leggere il post “Gallerie di immagini, adesso c’è anche Smoothbox”, dove ho raccolto varie segnalazioni.

CSS3 Web Fonts: test pratico

Istruzioni d’uso per i Web Fonts, nuovo modulo dei CSS3.

Con i CSS2 è possibile avere un buon controllo sui font utilizzati in una pagina web. Basta dichiarare un elenco di font, e se il primo non è disponibile il browser cercherà il secondo, fino all’esaurimento dei font dichiarati.

Le cose però sono state sviluppate ulteriormente con i CSS3, che vedono l’introduzione dei Web Fonts.

Cosa sono i Web Fonts? Sono un miglioramento che consente tramite CSS di far scaricare automaticamente all’utente dei font non installati sul proprio sistema operativo. In questo modo le pagine saranno visualizzate esattamente come pensato dal graphic designer, senza bisogno di ricorrere a tecniche di image replacement.

In realtà il documento del W3C che parla di Web Fonts è stato creato il 2 Agosto 2002, ma come noto dalla dichiarazione di uno standard all’utilizzo pratico il cammino è lungo. Ne parlo ora perchè Safari 3.1 è il primo browser a supportarli, consentendo di iniziare ad usare questa tecnica.

Niente infatti vieta di utilizzare i Web Fonts, che saranno trascurati dai browser che non li supportano.

Per usarli, è sufficiente inserire all’interno del CSS una dichiarazione di questo tipo, indicando il percorso per scaricare il font:

@font-face {
font-family: 'Bimini';
src: url('bimini.ttf');
}

A questo punto sarà possibile usare il font dichiarato (Bimini) senza preoccuparsi della sua presenza sul computer dei visitatori:

h1 { font-family: Bimini, Arial, sans-serif; }

Da notare che se si vuole usare il nuovo font in grassetto, va dichiarata anche questa variante:

@font-face {
font-family: 'Bimini';
font-weight: bold;
src: url('bimini.ttf');
}

Stesso discorso per il corsivo e le altre combinazioni a disposizione.

Se avete Safari 3.1 e volete testare i Web Fonts, ho preparato una pagina demo. Utile anche per chi vuole vedere il CSS in pratica.

A questo punto potete utilizzarli liberamente, al momento solo chi usa Safari avrà un’esperienza migliore.

Il mio consiglio però è di farlo in maniera responsabile. Ricordate che dovreste usare solo font gratuiti con licenza di libera distribuzione, e soprattutto che verranno scaricati dal browser dei visitatori. Considerando che esistono font dal peso superiore ai 100kb, valutate con attenzione ogni cosa prima di usare i Web Fonts.

IE8, Microsoft e gli Standard Web

Analisi delle ragioni che potrebbero aver portato Microsoft alla fatidica decisione: Internet Explorer 8 supporterà i Web Standards.

Internet Explorer 8 rispetterà di default gli standard web. Questa è la notizia che da un paio di giorni sta facendo il giro del mondo, ripresa su blog e testate più o meno importanti. Del resto che IE fino ad ora sia sempre stato ben lontano dagli standard è cosa nota, era prevedibile che un’inversione di tendenza provocasse tanto scalpore.

La cosa più strana è come la Microsoft sia arrivata a questa decisione. Fino a poco fa la sua posizione era completamente opposta, e prevedeva che il Super-Standard Mode dovesse essere abilitato tramite un meta tag apposito. Questa scelta era stata approvata nientemeno che da Jeffrey Zeldman su A List Apart, sollevando numerose polemiche.

Come si può essere arrivati a questo cambiamento, tanto positivo per gli sviluppatori che fanno del rispetto degli standard la loro religione?

La risposta più plausibile è quella ipotizzata da Andy Budd, in un post precedente al cambio di posizione della Microsoft:

Microsoft have set up the ideal conditions to marginalise their own browser. Clueless developers won’t know about this behaviour so every new site they build will automatically be rendered as IE7. Clued-up developers will use this as an excuse to freeze support for IE and turn their attentions to better browsers.

[..]

No matter what great leaps forward the Internet Explorer team make from now on, the majority of developers won’t use them and the majority of users won’t see them.

In pratica se la Microsoft fosse rimasta lontana dagli standard, gli sviluppatori avrebbero potuto smettere di preoccuparsi di IE8 e successivi, limitandosi a controllare la visualizzazione su IE7.

Un probabile suicidio, perchè tutte le future release si sarebbero comportate di default sempre allo stesso modo. L’esperienza di navigazione migliore sarebbe rimasta un’esclusiva dei browser concorrenti.

In ogni caso, questa novità deve essere accolta positivamente: uno sviluppatore del calibro di Roger Johansson ha parlato di sorpresa dell’anno, ed io non posso che concordare.

Progetto David e RItalia Camp: qualcosa si muove

La nascita di italia.it ha dalla sua parte un merito: aver smosso qualcosa, risvegliando le coscienze di numerosi personaggi del web design nazionale. Sono stati in molti a ribellarsi più o meno apertamente nei loro siti e blog, ed in questi giorni stanno sorgendo varie iniziative.

La prima che voglio segnalare si chiama Progetto David, e si propone di porre le basi per un nuovo portale turistico italiano. Idea sicuramente ambiziosa, ma parte con il piede giusto raccogliendo segnalazioni, idee e tutto quello che può servire veramente in un progetto del genere, partendo prima di tutto da un’analisi di marketing.

In parallelo è sorta l’altra iniziativa: RItaliaCamp. Potete trovare ampi dettagli sul wiki dedicato; il primo obiettivo è quello di far incontrare tutti coloro che hanno da dire qualcosa su come avrebbe dovuto essere italia.it e come sarà possibile far nascere un progetto simile, utile a tutti.

La mia idea riguarda l’aspetto sociale che dovrebbe avere un portale del genere: si parla di Web 2.0 spesso a sproposito, ma quando si dovrebbe veramente chiamarlo in causa questo fenomeno viene dimenticato. Sarebbe tanto difficile integrare GoogleMaps, i video di YouTube, le foto geotaggate di Flickr? Non credo, anzi tutti ci guadagnerebbero qualcosa.

Se avete quindi un’idea non tiratevi indietro, partecipate all’iniziativa che più vi attira, l’importante è far capire come dovrebbe realmente essere il nostro portale nazionale.

6 consigli per un CSS accessibile

6 semplici metodi per avere un sito più accessibile ed usabile, con un minimo di attenzione nella creazione dei fogli di stile.

I CSS hanno rivoluzionato il mondo del Web Design, permettendo di arrivare ad una separazione totale tra presentazione e contenuti. Sono senza dubbio uno strumento potente, ma a volte è bene usarli con cautela, per evitare problemi di leggibilità e più in generale di accessibilità.

In questo post voglio descrivere 6 semplici metodi per avere un sito più accessibile ed usabile, con un minimo di attenzione nella creazione dei fogli di stile.

1. Colore di sfondo del body

Ne avevo già parlato in passato, ma è sempre bene ricordarlo. E’ fondamentale ricordarsi sempre di settare un colore di sfondo del body:

body {background-color: #fff}

In questo modo sarà garantita una corretta visualizzazione anche per gli utenti che hanno delle impostazioni dei colori non standard.

Se non viene assegnato nessun colore, il rischio è che i visitatori si trovino davanti una pagina illeggibile per colpa dei loro stessi settaggi.

2. Interlinea

Se volete rendere leggibili le vostre pagine, fate in modo che i paragrafi di testo siano ben distanziati tra loro. E’ naturale che il font debba essere sufficientemente grande, ma non bisogna dimenticarsi di usare una line-height tra 1.2 e 1.6.

3. Link riconoscibili

Inutile girarci intorno, i link testuali è bene che siano sottolineati.

Questo però non basta, per raggiungere l’eccellenza è bene utilizzare tutte le pseudoclassi che ci sono a disposizione, ovvero :link, :visited, :hover, :active e :focus.

Differenziate lo stato :link da quello :visited per far orientare meglio i vostri visitatori, e ricordatevi che non esiste solo il mouse. Proprio per questo è bene assegnare i comportamenti della pseudoclasse :hover anche ad :active e :focus.

Non limitatevi ad applicare tutti gli stili solo all’elemento a.

Un esempio pratico:

a:link {
background: #fff;
color: #f00;
text-decoration: underline;
}
a:visited{
background: #fff;
color: #f77;
text-decoration: underline;
}
a:hover, a:active, a:focus{
background: #f00;
color: #fff;
text-decoration: none;
}

4. Font generici

E’ sempre bene ricordare che l’utente per i motivi più vari potrebbe non avere installati i nostri stessi font sul sistema operativo. Per questo motivo è sempre bene specificare un font generico:

body{ font-family: Arial, Verdana, sans-serif; }

Questo font sarà utilizzato in mancanza di alternative.

5. Testi a dimensione variabile

Il problema riguarda IE6 ed i suoi predecessori, ma al momento non è ancora trascurabile. Tutti i testi la cui dimensione è espressa in pixel, non possono essere ingranditi (o rimpiccioliti) dall’utente.

Meglio utilizzare le dimensioni in percentuale o em.

Il futuro, almeno guardando Firefox 3, Opera e IE7, è invece orientato verso la possibilità di zoomare direttamente la pagina.

In ogni caso state sempre attenti a non utilizzare font troppo piccoli per lunghi paragrafi di testo. Un sito leggibile a fatica non potrà mai essere apprezzato.

6. CSS per la stampa

Se avete un foglio di stile per la stampa, dichiarato tramite l’attributo media=”print”, approfittatene per offrire all’utente un’esperienza su misura.

Per prima cosa cambiate il font utilizzando un serif, più leggibile sulla carta stampata. Considerate poi che chi vuole stampare un documento lo fa per il suo contenuto: menu di navigazione, banner, path e altri elementi di contorno diventano inutili, eliminateli.

Seguite queste semplici regole per migliorare il vostro sito, ed i visitatori vi ringrazieranno.