Fotogallery Fullscreen con Css3 e Html5


12 maggio 2011 12 Commenti css, css3, html5

Tra le tante nuove proprietà di css3 molto interessanti, esiste quella background-size che ci permette di poter amministrare la grandezza dei nostri sfondi adattandoli ad ogni dimensione.

Possiamo infatti utilizzare anche le percentuali ed è proprio grazie a questo valore che oggi posso spiegarvi come realizzare un semplice photo-gallery fullscreen con css3.


Per iniziare creiamo la struttura html:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
<!doctype HTML>
<html>
 
<head>
 
<title>Sito animato con HTML5</title>
 
<link rel="stylesheet" media="screen" href='stile.css'>
 
</head>
 
<body>
 
<div id='uno'></div>
<div id='due'></div>
<div id='tre'></div>
 
<nav>
 
<ul>
<li><a href='#uno'><img src='1.jpg'></a></li>
<li><a href='#due'><img src='2.jpg'></a></li>
<li><a href='#tre'><img src='3.jpg'></a></li>
</ul>
 
</nav>
 
 
</body>
 
</html>

Come avrete visto ho inserito tre div vuoti con degli ID univoci che contrassegnano ogni elemento, e tre immagini linkate proprio con quegli id. Questo perché tutta la fotogallery girerà attorno al pseudo-selettore :target che ci permette di selezionare un determinato elemento contrassegnato da un ID attraverso l’url del browser.

Ora possiamo inserire il nostro css altamente commentato:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
* {
margin: 0px auto;
padding: 0px;
}
 
div {

/* posiziono i div contenenti gli sfondi */
 
position: absolute;
top: 0;
left: 0;
width: 100%;
height: 100%;

/* utilizzo queste semplici regole per adattare lo sfondo */
 
background-attachment: fixed;
background-repeat: no-repeat;
background-size: cover;
-moz-background-size: cover;
-webkit-background-size: cover;
-o-background-size: cover;
-ms-background-size: cover;

/* applico un effetto di transizione sull'opacità */
 
-moz-transition: opacity 3s linear;
-webkit-transition: opacity 3s linear;
-o-transition: opacity 3s linear;
 
/* imposto con opacity 0 i div */

opacity: 0;

 
}

/* imposto le varie foto come sfondo */
 
div#uno { background-image: url('1.jpg'); z-index: 9; }
div#due { background-image: url('2.jpg'); z-index: 9; }
div#tre { background-image: url('3.jpg'); z-index: 9; }
 
/* utilizzo :target per rendere visibili le immagini */

 
div:target {
 
opacity: 1;
z-index: 12;
 
}


/* vista la difficoltà applico un ordine di livello negli elementi */
 
nav { z-index: 13; }
nav ul { z-index: 14; position: absolute; bottom: 20px; right: 20px }
nav ul li { z-index: 15; margin: 10px; }
 
 
 
ul li {
float: left;
list-style: none;
}
 

/* utilizzo clip per le thumnail della gallery */


nav ul li a img {
 
clip: rect(20px, 300px, 200px, 100px);
width: 50px;
height: 50px;
border-radius: 200px;
opacity: 0.9;
 
}
 
nav ul li a img:hover {
opacity: 1;
}
 
nav ul li {
border-radius: 200px;
border: 5px solid #ffffff;
}

Come avete visto è stato molto semplice realizzare questo fantasmagorico effetto. Ho solo tre punti saliente da sottolineare:

- La transizione di opacità viene interpretata in maniera esemplare solo su motore mozilla mentre su webkit va quasi “a scatti”;
- Ovviamente l’effetto di transizione non viene visionato anche sul nuovo browser di casa Microsoft ( Internet Explorer 9 );
- La proprietà clip è stata deprecata in alcuni browser con la sua vecchia forma che utilizzava le virgolette potrebbe capitare che alcuni browser moderni non visualizzino l’immagine rimpicciolita.

Se voleste visionare la demo potreste tranquillamente andare su questo link.

Vi è piaciuto l’articolo? Scrivetemelo in un commento :D




Potresti trovare interessante anche

foto_gallery_css3_html5 tabs_css3_html5 Realizziamo una lightbox in css3 e html5 Buginar seminario gratuito su html5 css3
Pubblicato in css, css3, html5 |



Iscriviti alla newsletter

Vuoi ricevere ogni articolo che pubblico direttamente sulla tua mail ? Vuoi evitare di perdere qualsiasi articolo pubblico ? Registrati alla mia newsletter in un click.

Inserisci il tuo indirizzo mail:

12 commenti per Fotogallery Fullscreen con Css3 e Html5

Bellissima questa galleria!
pensi di averle viste tutte e invece….
Grande Rocco!

Grazie dell’articolo Rocco, sto imparando sempre piu nuove cose… sarebbe bello vedere come creare una semplice landing page , tipo: logo , slideshow e sotto dei contenitori da esporre dei prodotti per esempio… tutto html5 e css3 :D

Grazie mille ^^ , ricordatevi di condividere ;)  

PS: sto provvedendo a realizzare un mega tutorial su css3 e html5 :D

Fantastico, Complimenti!

io una cosa così fino ad oggi l’avevo vista fare solo con jQuery, bravo rocco =)

@Acid, @Roberta, @Francesco grazie mille :D

Quanto impegno e quanta dedizione Rocco!! Sei il Capo! complimenti nuovamente!

ottimo articolo Rocco, ho condiviso ;)

Grazie mille ragazzi ;) work in progress per il prossimo articolo :D

[...] Fotogallery Fullscreen con Css3 e Html5 [...]

E’ molto bella, (demo)  ma come si fa a realizzarla, non sono molto esperto di html infatti dopo avere creato la pagina html e la pagina css copiando il relativo codice le immagini vanno in qualche cartella?
Perché se apro la pagina vedo semplicemente le tre immagini ma senza nessun effetto. Grazie e scusami…magari sarebbe carino avere proprio i file già pronti in una cartella zappata. Grazie Max

Lascia un Commento