12 css3 background
vediamo i nuovi attributi css3 per i background. Abbiamo la seguente pagina html:
<!DOCTYPE html> <html> <head> <title>CSS3 background</title> <link rel="stylesheet" href="12.css" type="text/css"> </head> <body> </body> </html>
Vogliamo applicare una grossa immagine come sfondo, ecco il css
body {background: url("koala.jpg") center center fixed no-repeat;}
Essendo l’immagine molto grande, possiamo utilizzare il nuovo attributo
background-size
Una possibilità è quella di attribuire dei valori in pixel:
background-size: 1280px 720px ;
In questo caso devo rispettare le proporzioni dell’immagine tra altezza e larghezza, per non deformarla. Questo metodo può essere interessante per esempio per inserire più immagini affiancate alle quali attribuisco le dimensioni.
cover
background-size: cover;
Cover è un attributo che va a coprire l’intera area interessata, ridimensionando l’immagine fino a tal punto, mantenendo intatte le proporzioni. Ovviamente per coprire e mantenere le proporzioni, ridimensionando la finestra del browser, alcune parti dell’immagine saranno tagliate.
contain
background-size: contain;
a differenza del cover, l’immagine viene visualizzata tutta, nella sua interezza. Vengono mantenute le proporzioni e la scalarità in base al dimensionamento della finestra, però se le proporzioni del browser non rispettano le dimensioni dell’immagine verranno inserite proporzionalmente delle bande di spazi laterali (sopra e sotto, destra e sinistra). Il concetto è immagine più grande possibile, che mantenga le proporzioni e che si veda tutta. Per il contain è possibile selezionare un colore di sfondo per le bande, inserendolo prima.
background: #bbbbbb url("koala.jpg") center center fixed no-repeat; background-size: contain;
repeat , position
body { background-image: url("koala.jpg"), url("canyon.jpg"); background-size: 100px 120px , 100px 150px; background-repeat: repeat-x, repeat-y; background-position: left top, left bottom; }
Ho inserito due immagini, le ho dimensionate, la prima l’ho ripetuta sull’asse x , la seconda sulle y. La prima l’ho posizionata a sinistra in alto, la seconda a sinistra in basso.
Aggiungiamo un div nel body
<div> Prova con sfondo CSS3 di un DIV</div>
e diamogli un po’ di stile
div { border: 10px dashed blue; padding: 50px; position: fixed; left: 110px; top: 130px; width: 1200px; height: 480px; color: black; font-weight: bold; font-size: 80px; background-color: yellow; background-clip: border-box; }
l’ultima proprietà è l’area di clip
background-clip: border-box;
border-box è la proprietà di default , selezionata se non viene indicata, e indica che lo sfondo arriva fino a sotto il bordo. In questo esempio si nota bene perché il bordo è tratteggiato di colore blu, mentre lo sfondo è giallo in tinta unita e tra un trattino e l’altro del bordo si può notare lo sfondo giallo. Altra proprietà è
background-clip: padding-box;
Lo sfondo si ferma al limite estremo del bordo, senza andargli sotto.
Il terzo valore è
background-clip: content-box;
Lo sfondo ricopre solo l’area del contenuto, quindi non va sul padding, nel nostro caso si nota bene, perché abbiamo un padding di 50 pixel.
Vediamo un’immagine :
div { border: 10px dashed blue; padding: 50px; position: fixed; left: 110px; top: 130px; width: 1200px; height: 480px; color: yellow; font-weight: bold; font-size: 80px; background: url("koala.jpg") center center no-repeat; background-clip: content-box; background-size: cover; }
L’immagine è centrata e scalata con la proprietà cover . Se la mettiamo in contain l’immagine non verrà tagliata.