[CSS]コピペで簡単に使える、パネルの表と裏をくるっと水平・垂直にひっくり返すスタイルシート -CSS Flip Boards
Post on:2013年5月17日
sponsorsr
パネルをホバーすると、表と裏がくるっとアニメーションで変わるスタイルシートを紹介します。
くるっとなるのは水平だけでなく、垂直にも対応しています。

CSS Flip Boardsのデモ
デモは全部で、4種類のくるっがあります。
前半2つはテキストを配置したパネルで、上:垂直、下:水平にくるっとします。

パネルの表と裏には自由に要素を配置できます。
後半2つは画像を配置したパネルです。

上:垂直くるっ、下:水平くるっ
CSS Flip Boardsの実装
くるっとなるのはスタイルシートのエフェクトで、スクリプトは使用されていません。
Step 1: HTML
表・裏のパネル2枚をそれぞれdiv要素にし、それらを2つのdivで内包します。
垂直にはtop、水平にはleftを指定します。
垂直にくるっ <div class="flip-boards"> <div class="board top"> <div class="front"><h2>パネル:表</h2></div> <div class="flipped"><h2>パネル:裏</h2></div> </div> </div> 水平にくるっ <div class="flip-boards"> <div class="board left"> <div class="front"><h2>パネル:表</h2></div> <div class="flipped"><h2>パネル:裏</h2></div> </div> </div>
Step 2: CSS
スタイルシートは少し長いです。
preserve-3dでパネルを変形させて回転のエフェクトを作りだし、transformで回転させます。
.flip-boards{ position: relative; }
.flip-boards .board
{
float:left;
margin: 2em 8em;
position: relative;
width: 200px;
height: 200px;
cursor: pointer;
-webkit-transform-style: preserve-3d;
-moz-transform-style: preserve-3d;
-ms-transform-style: preserve-3d;
transform-style: preserve-3d;
-webkit-transition: all 1s ease;
-moz-transition: all 1s ease;
-ms-transition: all 1s ease;
transition: all 1s ease;
}
.flip-boards .board div
{
position: absolute;
width: 100%;
height: 100%;
text-align: center;
border: 1px solid #ccc;
-webkit-backface-visibility: hidden;
-moz-backface-visibility: hidden;
-ms-backface-visibility: hidden;
backface-visibility: hidden;
}
.flip-boards .board .front
{
color:#eee;
background: rgb(207,231,250); /* Old browsers */
background: -moz-linear-gradient(top, rgba(207,231,250,1) 0%, rgba(99,147,193,1) 100%);
background: -webkit-gradient(linear, left top, left bottom, color-stop(0%,rgba(207,231,250,1)), color-stop(100%,rgba(99,147,193,1)));
background: -webkit-linear-gradient(top, rgba(207,231,250,1) 0%,rgba(99,147,193,1) 100%);
background: -o-linear-gradient(top, rgba(207,231,250,1) 0%,rgba(99,147,193,1) 100%);
background: -ms-linear-gradient(top, rgba(207,231,250,1) 0%,rgba(99,147,193,1) 100%);
background: linear-gradient(to bottom, rgba(207,231,250,1) 0%,rgba(99,147,193,1) 100%);
filter: progid:DXImageTransform.Microsoft.gradient( startColorstr='#cfe7fa', endColorstr='#6393c1',GradientType=0 );
}
.flip-boards .board .flipped
{
color:#555;
background: rgb(238,238,238); /* Old browsers */
background: -moz-linear-gradient(top, rgba(238,238,238,1) 0%, rgba(238,238,238,1) 100%);
background: -webkit-gradient(linear, left top, left bottom, color-stop(0%,rgba(238,238,238,1)), color-stop(100%,rgba(238,238,238,1)));
background: -webkit-linear-gradient(top, rgba(238,238,238,1) 0%,rgba(238,238,238,1) 100%);
background: -o-linear-gradient(top, rgba(238,238,238,1) 0%,rgba(238,238,238,1) 100%);
background: -ms-linear-gradient(top, rgba(238,238,238,1) 0%,rgba(238,238,238,1) 100%);
background: linear-gradient(to bottom, rgba(238,238,238,1) 0%,rgba(238,238,238,1) 100%);
filter: progid:DXImageTransform.Microsoft.gradient( startColorstr='#eeeeee', endColorstr='#eeeeee',GradientType=0 );
}
.flip-boards .board h2{
margin-top:80px;
font-size: 1em;
}
.flip-boards .board.top:hover
{
-webkit-transform: rotateX( 180deg );
-moz-transform: rotateX( 180deg );
-ms-transform: rotateX( 180deg );
transform: rotateX( 180deg );
}
.flip-boards .board.top .flipped
{
-webkit-transform: rotateX( 180deg );
-moz-transform: rotateX( 180deg );
-ms-transform: rotateX( 180deg );
transform: rotateX( 180deg );
}
.flip-boards .board.left:hover
{
-webkit-transform: rotateY( 180deg );
-moz-transform: rotateY( 180deg );
-ms-transform: rotateY( 180deg );
transform: rotateY( 180deg );
}
.flip-boards .board.left .flipped
{
-webkit-transform: rotateY( 180deg );
-moz-transform: rotateY( 180deg );
-ms-transform: rotateY( 180deg );
transform: rotateY( 180deg );
}
sponsors











