back to top

CSS3: usare gradienti come immagini di sfondo

Un’altra interessante novità di CSS3 consiste nella possibilità di specificare un gradiente per la proprietà background-image (prima di questa innovazione, la proprietà in oggetto poteva accettare come valore solo la URL di un file di immagine).

In altre parole, è possibile utilizzare come sfondo, di una pagina o di un box, una sfumatura.

I gradienti supportati sono di due tipi:

  • gradienti lineari (linear-gradient)
  • gradienti radiali (radial-gradient)

Gradienti lineari

Sono la forma più comune di sfumatura: in pratica si ha il passaggio graduale da un colore di partenza ad uno finale, seguendo una determinata direzione lineare.

Vediamo un esempio:

background-image: linear-gradient(top left, #FFFFFF 0%, #ff6600 100%);
esempio di gradiente lineare per la proprietà background-image

Come potete vedere, nell’esempio abbiamo riempito lo sfondo di un box quadrato con un gradiente che si irradia dall’angolo alto/sinistro e sfuma il bianco in arancio.

La sintassi dell’attributo linear-gradient prevede una serie di valori:

  • direzione: il punto di orgine può essere un angolo (come nel nostro esempio) o un lato. I possibili valori sono:
    • top
    • top left
    • top right
    • bottom
    • bottom left
    • bottom right
    • left
    • right
  • colore e offset: possono essere previste due o più coppie di valori colore/offset. Il colore viene espresso nei modi consueti (ad esempio, esadecimale) mentre l’offset è un valore espresso in percentuale o decimale (da 0.0 a 1.0) che determina il punto di partenza del colore sulla linea di gradiente.

Nel nostro esempio abbiamo, per semplicità, creato un gradeinte a due colori. Nulla vieta di utilizzarne tre o qnache di più. Vediamo, di seguito, un esempio di gradiente lineare con quattro colori:

background-image: linear-gradient(top left, #FFFFFF 0%, #ffff00 33%, #00CC00 66%, #ff0000 100%);
esempio di gradiente lineare con 4 colori

Nel nostro esempio il primo colore è il bianco, il secondo è un giallo, il terzo un verde e il quarto un rosso.

Gradienti radiali

Oltre ai gradienti lineari, CSS3 supporta i cosiddetti gradienti radiali, cioè gradienti che si diffondono irradiandosi da un centro esattamente come farebbero le onde all’interno di un lago dove è stato lanciato un sasso.

L’attributo che dovrà essere utilizzato per la proprietà background-image è, in questo caso, radial-gradient. Vediamo un esempio:

background-image: radial-gradient(top, circle, #FFFFFF 0%, #CC0000 100%);
esempio di gradiente radiale per la proprietà background-image

La sintassi dell’attributo radial-gradient prevede i seguenti valori:

  • punto di origine: il valore di default è center (il gradiente si irradia dal centro dell’elemento); altri possibili valori sono top, bottom, left e right (singoli o combinati tra loro);
  • forma (shape): i possibili valori per la "forma" del gradiente sono circle (circolare) o ellipse (ellittica); quest’ultimo è il valore di defult;
  • dimensione (size): questo valore definisce la dimensione del gradiente. I possibili valori sono:
    • farthest-corner (default)
    • closest-side
    • closest-corner
    • farthest-side
  • colore e offset: valgono le stesse osservazioni visti per i gradienti lineari.

I primi tre parametri sono facoltativi. Per generare un gradiente radiale, infatti, è sufficiente specificare come minimo due coppie di valori colori/offset. Vediamo un esempio:

background-image: radial-gradient(#FFFFFF 0%, #CC0000 100%);
altro esempio di gradiente radiale
Pubblicitร 
Massimiliano Bossi
Massimiliano Bossi
Stregato dalla rete sin dai tempi delle BBS e dei modem a 2.400 baud, ho avuto la fortuna di poter trasformare la mia passione in un lavoro (nonostante una Laurea in Giurisprudenza). Adoro scrivere codice e mi occupo quotidianamente di comunicazione, design e nuovi media digitali. Orgogliosamente "nerd" sono il fondatore di MRW.it (per il quale ho scritto centinaia di articoli) e di una nota Web-Agency (dove seguo in prima persona progetti digitali per numerosi clienti sia in Italia che all'estero).