Guillaume Duverger - DĂ©veloppement & Graphisme - Blog

Vous ĂȘtes ici : Accueil > DĂ©monstrations > CSS > Lightbox/slideshow/slider

Lightbox responsive effet flip CSS

Code :

HTML


<ul class="liste">
<li>
<a href="#image1"><img src="votreimage.jpg" alt></a>
<div class="votre-galerie" id="image1">
<img src="image.jpg" class="image" alt>
<a href="#image3" class="precedent">Précédent</a>
<a href="#image2" class="suivant">Suivant</a>
<a href="#" class="ferm">X</a>
</div>
</li>
<li>
<a href="#image2"><img src="votreimage" alt></a>
<div class="votre-galerie" id="image2">
<img src="image.jpg" class="image" alt>
<a href="#image1" class="precedent">Précédent</a>
<a href="#image3" class="suivant">Suivant</a>
<a href="#" class="ferm">X</a>
</div>
</li>
<li>
<a href="#image3"><img src="votreimage" alt></a>
<div class="votre-galerie" id="image3">
<img src="image.jpg" class="image" alt>
<a href="#image2" class="precedent">Précédent</a>
<a href="#image1" class="suivant">Suivant</a>
<a href="#" class="ferm">X</a>
</div>
</li>
</ul>


CSS


*{box-sizing:border-box}

body{margin:0}


img{max-width:100%}
	

.liste{
margin: 0;
padding: 0;
list-style: none;
display: flex;
flex-flow: column;
align-items: center; 
margin:2rem auto
	
	}
	
.liste a img{
	
border: 3px solid white;
box-shadow: 0 0 5px hsla(0,0%,0%,.4)
	
	}

/*galerie*/
.votre-galerie{display: none}/*on rend invisible la galerie d'images*/
    
    
.votre-galerie:target{
	
z-index: 1;
display: flex;
background: hsla(0,0%,0%,.6);
width: 100%;
height: 100vh;
top: 0;
left: 0;
position: fixed
	
	}/*on rend visible lorsqu'on clique*/
    
    

	
.votre-galerie:target .precedent{
	
	position: fixed;
	bottom: 0;
	left: 0;
	display: flex
	}
	
.votre-galerie:target .suivant{
	
	position: fixed;
bottom: 0;
right: 0;
display: flex
	
	}
	
/*On applique l'animation lorsqu'on clique sur une image*/
	
.votre-galerie:target .image{

backface-visibility: hidden;
max-height: 90%;
max-height: 80vmin;
max-width: 90%;
margin: auto;
animation: votre-animation 10s 
	
	}

/*fermeture */
a.ferm{
	
background: #cf4a2d;
color: #fff;
position: absolute;
top: 0;
display: flex;
justify-content: center;
align-items: center;
left: 0;
font-size: 20px;
font-weight: bold;
text-align: center;
width: 60px;
height: 60px;
overflow: hidden;

	
	}

/*boutons suivant et precedent*/
.precedent, 
.suivant{
	
font-size: 20px;
padding: 5px;
margin: 15px;
color: #333;
background: #f1f1f1;
border: 1px solid #ccc;

	
	}



/* animation */

@keyframes votre-animation{
	0%{
		
	transform: scale(.1) rotatey(180deg)
	
	}
	
	5%{
		transform:scale(1)
	
	}
	
	
	
	}
    
@media screen and (min-width:62.75rem){ 
	
.liste{
	
flex-flow: row;
justify-content: space-around
	
	}
	
.votre-galerie:target .image{

	min-width:100%;
	min-height:100vmin
	}
	
	}
    

Support navigateurs :

CSS transforms 2d

Vous rencontrez un problÚme avec cette démonstration ?

Avant de vous arracher les cheveux ou de crier au scandale, procĂ©dez Ă  quelques simples vĂ©rifications. Si la dĂ©monstration fonctionne ici, il n'y a aucune raison pour qu'il n'en soit pas de mĂȘme chez vous. De plus vous pouvez tĂ©lĂ©charger la dĂ©monstration. Si vraiment vous coincez, vous pouvez me contacter par mail (contact@guyom-design.com) et je vous aiderai si je le peux. Je ne rĂ©ponds qu'aux messages respectueux.