Edit in JSFiddle

<div class="stage">
    <div class="cube">
        <div class="front"></div>
        <div class="back"></div>
        <div class="left"></div>
        <div class="right"></div>
        <div class="top"></div>
        <div class="bottom"></div>
    </div>
</div>
div.stage{
    position: relative;
    top: 100px;
    -webkit-perspective: 500;
    div.cube{
        width: 200px;
        height: 200px;
        position: relative;
        margin: 0 auto;
        -webkit-transform-style:preserve-3d;
        -webkit-transition:all 1s;
        &:hover{
                -webkit-transform: rotateX(180deg) rotateY(180deg) rotateZ(180deg);
        }
        div{
            width: 200px;
            height: 200px;
            border: 1px solid #999;
            box-sizing: border-box;
            text-align: center;
            line-height: 198px;
            position: absolute;
            background-color: rgba(255,255,255,.7);
        }
        div.front{
            top: 0;
            left: 0;
            -webkit-transform: translateZ(100px);
        }
        div.back{
            top: 0;
            left: 0;
            -webkit-transform: translateZ(-100px);
        }
        div.left{
            top: 0;
            left: 100px;
            -webkit-transform:rotateY(90deg);
        }
        div.right{
            top: 0;
            right: 100px;
            -webkit-transform:rotateY(-90deg);
        }
        div.top{
            top: 100px;
            left: 0;
            -webkit-transform:rotateX(90deg);
        }
        div.bottom{
            bottom: 100px;
            left: 0;
            -webkit-transform:rotateX(-90deg);
        }
    }
}