18 Oct

Accordian Slider in CSS3

I love this tutorial on making an accordian slider out of pure CSS3. I nabbed the source from The Code Player. The best part of this tutorial is how simplistic the HTML portion of the document is. You don’t have to create classes, custom variables, or structures to achieve an interface that looks and functions fluidly. You also don’t need the weight of javascript or a js library for the effects.

We will make a simple accordian with hover effects. The markup will have a list with images and the titles

1234567891011121314151617181920212223242526272829303132333435363738394041424344
<div class=”accordian”>
    <ul>
        <li>
            <div class=”image_title”>
                <a href=”#”>KungFu Panda</a>
            </div>
            <a href=”#”>
                <img src=”http://thecodeplayer.com/uploads/media/3yiC6Yq.jpg”/>
            </a>
        </li>
        <li>
            <div class=”image_title”>
                <a href=”#”>Toy Story 2</a>
            </div>
            <a href=”#”>
                <img src=”http://thecodeplayer.com/uploads/media/40Ly3VB.jpg”/>
            </a>
        </li>
        <li>
            <div class=”image_title”>
                <a href=”#”>Wall-E</a>
            </div>
            <a href=”#”>
                <img src=”http://thecodeplayer.com/uploads/media/00kih8g.jpg”/>
            </a>
        </li>
        <li>
            <div class=”image_title”>
                <a href=”#”>Up</a>
            </div>
            <a href=”#”>
                <img src=”http://thecodeplayer.com/uploads/media/2rT2vdx.jpg”/>
            </a>
        </li>
        <li>
            <div class=”image_title”>
                <a href=”#”>Cars 2</a>
            </div>
            <a href=”#”>
                <img src=”http://thecodeplayer.com/uploads/media/8k3N3EL.jpg”/>
            </a>
        </li>
    </ul>
</div>

Now to make the accordian pretty and functional

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364
.accordian {
    width: 805px; height: 320px;
    overflow: hidden;
   
   
    margin: 100px auto;
    box-shadow: 0 0 10px 1px rgba(0, 0, 0, 0.35);
    -webkit-box-shadow: 0 0 10px 1px rgba(0, 0, 0, 0.35);
    -moz-box-shadow: 0 0 10px 1px rgba(0, 0, 0, 0.35);
}

.accordian ul {
    width: 2000px;
   
}
.accordian li {
    position: relative;
    display: block;
    width: 160px;
    float: left;
   
    border-left: 1px solid #888;
   
    box-shadow: 0 0 25px 10px rgba(0, 0, 0, 0.5);
    -webkit-box-shadow: 0 0 25px 10px rgba(0, 0, 0, 0.5);
    -moz-box-shadow: 0 0 25px 10px rgba(0, 0, 0, 0.5);
   
   
    transition: all 0.5s;
    -webkit-transition: all 0.5s;
    -moz-transition: all 0.5s;
   
}

.accordian ul:hover li {width: 40px;}


.accordian ul li:hover {width: 640px;}
.accordian li img {
    display: block;
}

.image_title {
    background: rgba(0, 0, 0, 0.5);
    position: absolute;
    left: 0; bottom: 0;
width: 640px;  
}
.image_title a {
    display: block;
    color: #fff;
    text-decoration: none;
    padding: 20px;
    font-size: 16px;
}

If you are having trouble figuring out the width of your image elements, try using a simple formula. Sometimes it helps to include it right above your slider CSS for reference in the future.

Accordian and Image widths

123456789

The accordion slider here won’t be useful on most websites. You’ll need a specific purpose such as displaying a set of equal level products or setting up a comparison of products. If you end up using it, please leave a comment with a link. I’d love to check it out!