Nessun risultato. Prova con un altro termine.
Guide
Notizie
Software
Tutorial

Fogli di stile lato utente

Personalizzare facilmente con i CSS l'aspetto dei nostri siti preferiti
Personalizzare facilmente con i CSS l'aspetto dei nostri siti preferiti
Link copiato negli appunti

Questa è la traduzione dell'articolo User Styling di Jon Hicks pubblicato originariamente su 24 Ways il 3 Dicembre 2008.

Durante le ultime elezioni presidenziali americane, Twitter decise di aggiungere una barra dedicata alle elezioni stesse come parte del design del sito. Era possibile eliminarla se la si trovava fastidiosa, ma la scelta non era permanente e la barra riappariva ogni volta che si tornava sul sito.

La soluzione per problemi di navigazione come questo sono i CSS. I fogli di stile lato utente (user styling) consentono di creare delle regole specifiche per personalizzare un particolare dominio. A parte l'utilizzo per eliminare pubblicità e altri elementi fastidiosi, ci sono molte ragioni per perdere un po' di tempo e fare un piccolo sforzo per imparare ad usarli. Possono risultare infatti comodi in attività come queste:

  • Migliorare la leggibilità cambiando le dimensioni e il colore del testo
  • Personalizzare l'aspetto di applicazioni web come GMail
  • Rivelare microformati

Forse vi state chiedendo: "Ma come si fa?". Il procedimento per creare questa specie di skin per un sito consta di questi passi:

  1. Trovate l'elemento che volete modificare
  2. Scoprite come si chiama e se ci sono regole CSS applicate ad esso
  3. Scrivete regole CSS per sovrascrivere quelle esistenti o migliorarle
  4. Applicate le regole

Trovare l'elemento

Iniziamo con con il sito Multimap.com. Osservate l'header: occupa un sacco di spazio sullo schermo, non trovate?

Figura 1 - Pagina del sito Multimap.com
screenshot

Non importa. Possiamo modificare tutto.

Strumenti

Ora abbiamo bisogno di sapere dove il grande header è situato nel DOM e creare nuove regole CSS che sovrascrivano quelle esistenti. Il migliore strumento che ho trovato per questo genere di operazioni è un'applicazione per Mac OS X, CSS Edit. Utilizza una funzione con 'foglio di stile sovrapposto' e il DOM Inspector. Piuttosto che fornire i soliti strumenti per l'ispezione del DOM, CSS Edit lavora solo sugli stili. Basta andare in modalità 'X-Ray', cliccare su un elemento e osservare la finestra di ispezione per vedere ogni singola regola applicata a quell'elemento. Cliccando sul selettore veniamo portati nel punto in cui esso è definito nel CSS. È davvero l'applicazione dei sogni per i fogli di stile lato utente.

Figura 2 - CSS Edit
screenshot

Ciò detto, potete ottenere gli stessi risultati usando strumenti gratuiti e multi-piattaforma come Firefox con le estensioni Firebug e Stylish. Useremo queste per gli esempi: assicuratevi dunque di averle installate entrambe per seguire il resto dell'articolo.

Figura 3 - Usare Firebug per identificare il nostro header
screenshot

Usando Firebug possiamo vedere che la pagina ha un buon markup e che tutta l'area superiore è identificata con div che ha come id header.

Modificare

Quando si installa Stylish, l'estensione aggiunge l'icona con una pagina e un pennello sulla barra di stato del browser. Clicchiamoci sopra e scegliamo l'opzione Write Style > for Multimap.com. Le altre opzioni consentono di creare uno stile per una parte specifica di un sito o di un URL, ma noi vogliamo che la nuova regola sia applicata a tutto Multimap.com:

Figura 4 - Usare Stylish: il menu delle opzioni
screenshot

La finestra 'Add Style' che si apre presenta all'inizio, in alto, la query @-moz-document:

@namespace url(http://www.w3.org/1999/xhtml);
@-moz-document domain("multimap.com") {
}

Tutto quello che dovremo fare è aggiungere la regola CSS che nasconde l'header tra le parentesi graffe:

@namespace url(http://www.w3.org/1999/xhtml);
@-moz-document domain("multimap.com") {
#header {display: none;}
}
Figura 5 - L'header è scomparso
screenshot

Un click sul bottone per l'anteprima e vediamo come la regola funziona! Ora la mappa appare in una posizione migliore, più in alto, nella pagina. Se sia etico o meno nascondere la pubblicità lo discuteremo un'altra volta, ma diciamolo, quando avete esultato l'ultima volta davanti ad un banner?

Fare qualcosa di meglio

Se siamo soddisfatti della nostra modifica, tutto quello che dobbiamo fare è assegnarle un nome e salvarla. Ogni volta che visiteremo Multimap.com, lo stile sarà disponibile. Stylish consente anche di attivare/disattivare uno stile dal menu sulla barra di stato. Se volete condividere uno stile con gli altri, il posto dove farlo è il sito userstyles.org. È un grande deposito di personalizzazioni con cui Stylish si connette. Quando visitate un sito, potete vedere se qualcuno ha già scritto uno stile per quel sito. Ancora una volta usate il menu sulla barra di stato, selezionando la voce "“Find Styles for this Page". Selezionando questa opzione con BBC News, vedremo che sono disponibili tantissime opzioni alternative che vanno dalle piccole modifiche al layout fino al redesign completo:

Figura 6 - Un redesign del sito BBC News
screenshot

Inoltre, ogni volta che uno stile viene aggiornato, Styish ce lo farà sapere e potremo fare l'update con un semplice click. Stylish funziona solo con Firefox e Flock, per cui citerò dopo i modi con cui ottenere gli stessi risultati su altri browser.

Tecniche specifiche

Important!

Nell'esempio di Multimap.com non c'era una proprietà display specificata per quell'elemento, ma non è sempre così semplice. Potreste aver speso la maggior parte della vostra vita con i CSS per essere un buon designer e dimenticare di aggiungere !important alla vostra regola per darle priorità: se state sovrascrivendo una regola esistente ciò è necessario! Preparatevi a scrivere molte volte !important.

Il selettore universale

Il selettore universale è particolarmente utile per iniziare. Per esempio, se vogliamo usare su Flickr il font Helvetica invece che Arial (come avrebbero dovuto fare!), possiamo farlo con una sola regola:

* {font-family: "Helvetica Neue", Helvetica, sans-serif !important;}

Potete anche usarlo per selezionare tutto ciò che è dentro un altro elemento inserendolo dopo il nome dell'elemento:

#content * {font-family: "Helvetica Neue", Helvetica, sans-serif !important;}

Cambiare le immagini

Se state cambiando qualcosa di più complesso, come Google Reader, allora ad un certo punto vorrete probabilmente cambiare un immagine (<img>). La tecnica per sostituire le immagini segue questi passi:

  1. rendere l'immagine sostitutiva come sfondo del tag <img>;
  2. aggiungere un padding in alto e a sinistra fino alla misura che immaginate possa essere necessaria per spostare via l'immagine originale;
  3. settare la larghezza (width) e l'altezza (height) a 0.

Figura 7 - Sostituzione di immagini
screenshot

La vecchia immagine viene così spostata e nascosta, consentendo all'immagine sostitutiva usata come sfondo di essere vista. Per identificare l'immagine da usare come target potrebbe essere necessario un selettore di attributo:

img[src="/reader/ui/3544433079-tree-view-folder-open.gif"] {
padding: 16px 0 0 16px;
width: 0 !important;
height: 0 !important;
background-image: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYA
AAAf8/9hAAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAALEgAACxIB0t1+/AAAA
Bx0RVh0U29mdHdhcmUAQWRvYmUgRmlyZXdvcmtzIENTM5jWRgMAAAAVdE
VYdENyZWF0aW9uIFRpbWUAMjkvNi8wOJJ/BVgAAAG3SURBVDiNpZIhb5RBEIaf
2W+vpIagIITSBIHBgsGjEYQaFLYShcITDL+ABIPnh4BFN0GQNFA4Cnf3fbszL2L3
jiuEVLDJbCazu8+8Mzsmif9ZBvDy7bvXlni0HRe8eXL/zuPzABng62J5kFKaAQS
QgJAOgHMB9vDZq+d71689Hcyw9LfAZAYdioE10VSJo6OPL/KNvSuHD+7dhU
0vHEsDUUWJChIlYJIjFx5BuMB2mJY/DnMoOJl/R147oBUR0QAm8LAGCOEh3IO
ULiAl8jSOy/nPetGsbGRKjktEiBCEHMlQj4loCuu4zCXCi4lUHTNDtGqEiACTqAFSI
OgAUAKv4bkWVy2g6tAbJtGy0TNugM3HADmlurKH27dVZSecxjboXggiAsMItR
h99wTILdewYRpXVJWtY85k7fPW8e1GpJFJacgesXs6VYYomz9G2yDhwPB7NEB
BDAMK7WYJlisYVBCpfaJBeB+eocFyVyAgCaoMCTJSTOOCWSyILrAnaXpSexRsx
GGAZ0AR+XT+5fjzyfwSpnUB/1w64xizVI/t6q3b+58+vJ96mWtLf9haxNoc8M
v7N3d+AT4XPcFIxghoAAAAAElFTkSuQmCC) no-repeat !important;
}

Ehi! Ma cos'è tutto quel codice nell'immagine di sfondo? È un Data URI, e potete crearne uno facilmente con uno strumento online messo a punto da Hixie. È semplicemente l'immagine tradotta in testo così che possa essere incorporata nel CSS, tagliando così il numero di richieste HTTP. È anche necessario nei browser di Mozilla perché essi non consentono di avere nei CSS riferimenti a immagini salvate in locale. Convertendo immagini in URI si evitano questi problemi e si rendono gli stili più facilmente portabili.

Non dimenticate tutte le altre tecniche CSS a vostra disposizione: inserire contenuto personalizzato con le pseudo-classi :before e :after, rendere elementi semi-trasparenti con opacity, crare angoli arrotondati senza hack. Potete divertirvi, e per una volta godetevi la gioia di divertirvi senza pensare a IE!

Fogli di stile lato utente senza Stylish

Invece di usare l'estensione Stylish potete aggiungere regole al file userContent.css oppure usare @import in quel file per caricare un foglio di stile separato. Potete trovare questo file nella cartella /Library/Application Support/Camino/chrome/ su Mac OS X o C/Program Files/Mozilla Firefox/Chrome su Windows. Questo è il metodo per usare lo user styling su Camino. Ma come fare con gli altri browser?

Opera e Omniweb

Entrambi consentono di specificare un file CSS personalizzato come parte delle preferenze per un sito. Opera consente pure di applicare Javascript personalizzato, usando la stessa sintassi degli script per Greasemonkey.

Safari

Ci sono poche opzioni su questo fronte: PithHelmet e SafariStand consentono entrambi gli stili personalizzati o, in alternativa, uno userscript stile Greasemonkey può essere implementato attraverso GreaseKit. L'ultima soluzione è la mia preferita sul mio tema Helvetireader dal momento che consente regole più precise per il dominio come fa la direttiva @-moz-document.

E ora?

Spero di avervi dato informazioni sufficienti perché possiate essere in grado di scrivere i vostri stili. Se siete gli autori di un sito vi incoraggio, per aiutare a svolgere meglio questo tipo di attività, a fornire un nome di classe o id univoco per l'elemento body:

<body id="journal" class="hicksdesign-co-uk">

Ciò rende più semplice scrivere regole che si applicano a quello specifico sito. Se voleste usare Safari senza gli add-on citati in precedenza, questo metodo fa sì che possiate includere regole in un file CSS generale (scelto attraverso Preferences > Advanced > Stylesheet) senza interferire su altri siti.

Un'ultima rivelazione. Potete modificare l'interfaccia utente di Firefox con il file userChrome.css. Dovrete usare il DOM Inspector presente di default sul browser invece che Firebug per ispezionare il chrome della finestra. È un ottimo esercizio se volete modificare piccole parti (per esempio la dimensione del testo sulle tab) senza dover creare un nuovo tema.

Ti consigliamo anche