CSS Flip
by Jgo Orange
HTML
<div class="flip-container" onclick="this.classList.toggle('hover');">
<div class="flipper">
<div class="side1">
<span class="name">test 1</span>
</div>
<div class="side2">
<span class="name">test 2</span>
</div>
<div class="side3">
<span class="name">test 3</span>
</div>
<div class="side4">
<span class="name">test 4</span>
</div>
<div class="side5">
<span class="name">test 5</span>
</div>
<div class="side6">
<span class="name">test 6</span>
</div>
</div>
</div>
CSS
.flip-container {
-webkit-perspective: 1000;
-moz-perspective: 1000;
-o-perspective: 1000;
perspective: 1000;
border: 1px solid #ccc;
}
.flip-container:hover .flipper,
.flip-container.hover .flipper {
-webkit-transform: rotateY(900deg);
-moz-transform: rotateY(900deg);
-o-transform: rotateY(900deg);
transform: rotateY(900deg);
}
.flip-container, .side1, .side2, .side3, .side4, .side5, .side6 {
width: 320px;
height: 427px;
}
.flipper {
-webkit-transition: 3s;
-webkit-transform-style: preserve-3d;
-moz-transition: 3s;
-moz-transform-style: preserve-3d;
-o-transition: 3s;
-o-transform-style: preserve-3d;
transition: 3s;
transform-style: preserve-3d;
position: relative;
}
.side1, .side3, .side5 {
-webkit-backface-visibility: hidden;
-moz-backface-visibility: hidden;
-o-backface-visibility: hidden;
backface-visibility: hidden;
position: absolute;
top: 0;
left: 0;
}
.side1, .side2, .side3, .side4, .side5, .side6 {
background: url(http://davidwalsh.name/demo/dwflip.jpg) 0 0 no-repeat;
z-index: 2;
}
.side2, .side4, .side6 {
-webkit-transform: rotateY(900deg);
-moz-transform: rotateY(900deg);
-o-transform: rotateY(900deg);
transform: rotateY(900deg);
background: #f8f8f8;
}
.front .name {
font-size: 2em;
display: inline-block;
background: rgba(33, 33, 33, 0.9);
color: #f8f8f8;
font-family: Courier;
padding: 5px 10px;
border-radius: 5px;
bottom: 60px;
left: 25%;
position: absolute;
text-shadow: 0.1em 0.1em 0.05em #333;
-webkit-transform: rotate(-20deg);
-moz-transform: rotate(-20deg);
-o-transform: rotate(-20deg);
transform: rotate(-20deg);
}
.back p {
position: absolute;
bottom: 40px;
left: 0;
right: 0;
text-align: center;
padding: 0 20px;
font-family: arial;
line-height: 2em;
}