A pure CSS and bootstrap based gallery that displays images in an accordion interface with smooth sliding effects.
How to use it:
Load the Twitter’s Bootstrap framwork in your page.
<script src="//cdnjs.cloudflare.com/ajax/libs/twitter-bootstrap/2.3.2/js/bootstrap.min.js"></script> <link rel="stylesheet" href="//cdnjs.cloudflare.com/ajax/libs/twitter-bootstrap/3.0.0/css/bootstrap.min.css" />
Create the html for the gallery.
<div id="main"> <h1 class="text-center">a pure CSS gallery</h1> <div id="gallery"> <ul id="wrapper" class="list-unstyled"> <li> <img src="https://lorempixel.com/250/250/nature" /> <p>Photo 1 : nature</p> </li> <li> <img src="https://lorempixel.com/250/250/animals" /> <p>Photo 2 : animals</p> </li> <li> <img src="https://lorempixel.com/250/250/fashion" /> <p>Photo 3 : fashion</p> </li> <li> <img src="https://lorempixel.com/250/250" /> <p>Photo 4 : suprise :)</p> </li> </ul> </div> </div>
The CSS (SCSS).
$bg-color : #222F33; #main { background-color: $bg-color; height: 100%; width: 100%; position: absolute; h1 { color:#FFF; font-weight:100; letter-spacing: 3px; padding:20px 0; } #gallery { overflow: hidden; height: 280px; background-color: #000; width: 250px + 50*3; margin: auto; margin-top: 30px; @include box-shadow(0 2px 3px darken($bg-color, 8%)); } #wrapper { position: relative; width:250px*4; height: 250px; ; li { float:left; width:50px; @include transition(all .5s); cursor: pointer; &:last-child { width:250px; } p { position:absolute; top:255px; left:40px; font-size:16px; color:#FFF; font-weight:100; opacity:0; @include transition(all 1s); } &:hover { width:250px; p { opacity:1; left:10px; } } &:first-child { width:250px; p { opacity:1; left:10px; } } } &:hover { li:first-child { width:50px; p { opacity:0; left:40px; } &:hover { width:250px; p { opacity:1; left:10px; } } } } } }