back to top

Background: gestione dello sfondo coi CSS

Con la scorsa lezione abbiamo esaurito la rassegna delle proprietร  CSS tipiche del box-model. A partire da questa lezione passeremo in rassegna le altre proprietร  dei fogli di stile partendo da quelle relative allo sfondo (o background), le quali possono essere applicate tanto alla pagina (tag <body>) quanto ad un suo elemento (ad esempio un box).

Attraverso tali proprietร  possiamo applicare ad un elemento uno sfondo colorato oppure unโ€™immagine da utilizzarsi singolarmente o ripetuta come se fosse una "piastrella" (cd. pattern). Ma andiamo per gradi e vediamo, prima di tutto, quali sono queste proprietร :

Pubblicitร 
  • background โ€“ consente di impostare tutte le caratteristiche dello sfondo con una notazione "compressa" (vedremo in seguito cosa vuol dire);
  • background-color โ€“ imposta il colore sfondo;
  • background-image โ€“ imposta unโ€™immagine di sfondo;
  • background-repeat โ€“ gestisce la ripetizione dellโ€™immagine di sfondo sulla pagina;
  • background-position โ€“ imposta la posizione dellโ€™immagine di sfondo;
  • background-attachment โ€“ serve per definire se lโ€™immagine di sfondo deve restare fissa oppure "scrollare" col resto della pagina.

Eโ€™ bene precisare che, come le proprietร  del box-model, anche le proprietร  relative allo sfondo non vengono ereditate ma riguardano, quindi, solo lโ€™elemento cui sono applicate.

Lasciamo per ultima background e soffermiamo inizialmente la nostra attenzione sulle proprietร  specifiche, analizzandole una ad una.

background-color

Attraverso questa proprietร  si assegna ad un dato elemento un colore di sfondo il quale puรฒ essere indicato attraverso la classica notazione esadecimale, come valore RGB o attraverso parole chiave come, ad esempio, red o black. Un altro valore che puรฒ essere assegnato a questa proprietร  รจ transparent: cosรฌ facendo il box sarร , appunto, trasparente e quindi, di fatto, lascerร  vedere lo sfondo del suo elemento genitore.

Vediamo qualche esempio:

body
{
  background-color: #000000;
}
h1 {
  background-color: rgb(255,255,255); 
}
p {
  background-color: yellow;    
}

background-image

Questa proprietร  รจ utilizzata per specificare la URL (relativa o assoluta) di unโ€™immagine da utilizzare come sfondo. Il valore di default di questa proprietร  รจ none (cioรจ "nessuna immagine di sfondo").

Vediamo qualche esempio:

body
{
  background-image: url('immagini/fiore.jpg');
}
body
{
  background-image: url('http://www.miosito.com/immagini/fiore.jpg'); 
}

Lโ€™uso degli apici tra le parentesi tonde puรฒ essere omesso salvo che la nostra URL non contenga uno spazio, nel qual caso sono necessarie.

Questa proprietร  "condiziona" tutte le altre proprietร  specifiche che vedremo di seguito.

Normalmente รจ consigliabile prevedere anche un colore di sfondo insieme allโ€™immagine in quanto il colore andrร  a riempire gli spazi eventualmente non coperti dallโ€™immagine:

body
{
  background-color: #FFFF00;    
  background-image: url('immagini/fiore.jpg');
}

background-repeat

Questa proprietร  รจ strettamente connessa alla precedente in quanto serve per definire se ed in che modo lโ€™immagine specificata in background-image debba essere ripetuta. I valori ammessi per questa proprietร  sono:

  • repeat โ€“ (valore di default) lโ€™immagine dui sfondo viene ripetuta sia in orizzontale che verticale;
  • repeat-x โ€“ lโ€™immagine viene ripetuta solo in senso orizzontale;
  • repeat-y โ€“ lโ€™immagine viene ripetuta solo in senso verticale;
  • no-repeat โ€“ lโ€™immagine non viene ripetuta (รจ consigliabile utilizzare questa opzione insieme ad immagini grandi a sufficienza per coprire lโ€™area stilizzata).

Vediamo un esempio:

body
{
  background-color: #FFFF00;
  background-image: url('immagini/fiore.jpg');
  background-repeat: no-repeat;
}

background-attachment

Attraverso questa proprietร  viene definito il comportamento dellโ€™immagine in relazione allo scrolling di pagina: piรน precisamente รจ possibile specificare se lo sfondo debba "scrollare" insieme ai contenuti o se debba restare fisso. I due valori possibili per questa proprietร , infatti, sono "scroll" e "fixed".

Vediamo un esempio di immagine non ripetuta che non segue lo scroll:

body
{
  background-color: #FFFF00;
  background-image: url('immagini/fiore.jpg');
  background-repeat: no-repeat;
  background-attachment: fixed;
}

background-position

Attraverso questa proprietร  รจ possibile definire la posizione della nostra immagine di background. Piรน precisamente:

  • definisce la posizione esatta dellโ€™immagine di sfondo non ripetuta;
  • definisce la posizione di partenza di unโ€™immagine che viene ripetuta.

Nella pratica questa proprietร  viene utilizzata quasi esclusivamente nel caso di immagini non ripetute.

Il suo valore puรฒ essere: una percentuale, un numero accompagnato da una unita di misura oppure una stringa (in questโ€™ultimo caso, il piรน frequente, si utilizzano le parole chiave "top", "left", "bottom" e "right").

Vediamo un esempio di immagine non ripetuta, che non segue lo scroll ed รจ centrata nello schermo:

body
{
  background-color: #FFFF00;
  background-image: url('immagini/fiore.jpg');
  background-repeat: no-repeat;
  background-attachment: fixed;
  background-position: center center;
}

Come potete vedere abbiamo utilizzato due volte la parola "center" per la nostra proprietร  background-position in quanto il primo valore riguarda lโ€™asse verticale ed il secondo quello orizzontale. Qualora venisse specificato un solo valore questo verrebbe applicato sia verticalmente che orizzontalmente.

La proprietร  background

Come abbiamo giร  visto per altre famiglie di proprietร  CSS, anche quelle relative alla gestione dello sfondo possono essere sintetizzate allโ€™interno di un unica proprietร : la proprietร  background.

Questa proprietร  puรฒ essere utilizzata per definire, in un colpo solo, tutte le caratteristiche del nostro sfondo. Lโ€™ultimo codice visto sopra, ad esempio, puรฒ essere convertito in:

body
{
  background: #FFFF00 url('immagini/fiore.jpg') no-repeat fixed center center;
}

Come potete vedere i valori delle varie proprietร  viste sinโ€™ora sono passati, separati da uno spazio, alla singola proprietร  background. Lโ€™ordine dei valori non รจ viuncolante ma per una questione di pulizia รจ consigliabile rispettare questa gerarchia:

  • color
  • image
  • repeat
  • attachment
  • position

Ovviamente non รจ obbligatorio prevedere tutti e quattro i valori in quanto sarebbe perfettamente valida e funzionante anche una regola del genere:

body
{
  background: #FFFF00;
}

o una del genere:

body
{
  background: url('immagini/fiore.jpg');
}
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).