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.