Pure css carousel

example using CSS only

by Zsanett Tamás

HTML

<div class="carousel">
    <div class="item red slide-in" id="item1"><h1>Item 1</h1></div>
    <div class="item green slide-in" id="item2"><h1>Item 2</h1></div>
    <div class="item yellow slide-in" id="item3"><h1>Item 3</h1></div>
    <div class="item red slide-in" id="item4"><h1>Item 4</h1></div>
    <div class="controls">
        <a href="#item1" class="btn">•</a>
        <a href="#item2" class="btn">•</a>
        <a href="#item3" class="btn">•</a>
        <a href="#item4" class="btn">•</a>
    </div>
</div>

CSS

html,
body {
    height: 100%;
}

body {
    margin: 0;
}

.carousel {
    position: relative;
    width: 100%;
    height: 100%;
    overflow: hidden;
}

.carousel .item {
    position: absolute;
    width: 100%;
    height: 100%;
    text-align: center;
}

/* animations */

.carousel .slide-in {
    -webkit-transform: translate3d(-90%, 0px, 0px);
    -moz-transform: translate3d(-90%, 0px, 0px);
    -ms-transform: translate3d(-90%, 0px, 0px);
    -o-transform: translate(-90%, 0px, 0px);
    transform: translate3d(-90%, 0px, 0px);
    -webkit-transition: -webkit-transform 0.5s ease-out;
    -moz-transition: -moz-transform 0.5s ease-out;
    -ms-transition: -ms-transform 0.5s ease-out;
    -o-transition: -o-transform 0.5s ease-out;
    transition: transform 0.5s ease-out;
    z-index: 1;
}

.carousel .slide-in:target,
.carousel .slide-in:focus {
    -webkit-transform: translate3d(0px, 0px, 0px);
    -moz-transform: translate3d(0px, 0px, 0px);
    -ms-transform: translate3d(0px, 0px, 0px);
    -o-transform: translate(0px, 0px, 0px);
    transform: translate3d(0px, 0px, 0px);
    z-index: 2;
}

.carousel .slide-in:target ~ .slide-in {
    -webkit-transform: translate3d(90%, 0px, 0px);
    -moz-transform: translate3d(90%, 0px, 0px);
    -ms-transform: translate3d(90%, 0px, 0px);
    -o-transform: translate(90%, 0px, 0px);
    transform: translate3d(90%, 0px, 0px);
}

.carousel .controls {
    position: absolute;
    bottom: 0;
    width: 100%;
    text-align: center;
    z-index: 5;
}

.carousel .controls .btn {
    color: #333;
    font-size: 3em;
    text-decoration: none;
}

/* colours */

.red {
    background-color: red;
}

.green {
    background-color: green;
}

.yellow {
    background-color: yellow;
}