サンプル

See the Pen Codepen by Tora (@webtoranomaki) on CodePen.

コード


<a class="btn btn01" href=""><div>Button</div><div>ボタン</div></a>

.btn {
	display: inline-block;
	width: 200px;
	height: 50px;
	line-height: 50px;
	text-align: center;
}
.btn01 {
	position: relative;
	-webkit-perspective: 500px;
	perspective: 500px;
	-webkit-transform-style: preserve-3d;
	-moz-transform-style: preserve-3d;
	transform-style: preserve-3d;
}
.btn01 div {
	position: absolute;
	box-sizing: border-box;
	width: 100%;
	height: 50px;
	text-align: center;
	border: 1px solid #333;
}
.btn01 div:nth-child(1) {
	color: #333;
	background-color: #fff;
	-webkit-transform: rotateX(0deg) translateZ(0px);
	-moz-transform: rotateX(0deg) translateZ(0px);
	transform: rotateX(0deg) translateZ(0px);
	-webkit-transform-origin: 50% 50%;
	transform-origin: 50% 50%;
	-webkit-transition: .3s;
	transition: .3s;
}
.btn01 div:nth-child(2) {
	color: #fff;
	background-color: #333;
	-webkit-transform: rotateX(-179.5deg) translateZ(1px);
	-moz-transform: rotateX(-179.5deg) translateZ(1px);
	transform: rotateX(-179.5deg) translateZ(1px);
	-webkit-transform-origin: 50% 50%;
	-moz-transform-origin: 50% 50%;
	transform-origin: 50% 50%;
	-webkit-transition: .3s;
	transition: .3s;
}
.btn01:hover div:nth-child(1) {
	-webkit-transform: rotateX(179.5deg);
	-moz-transform: rotateX(179.5deg);
	transform: rotateX(179.5deg);
	-webkit-transition: .3s;
	transition: .3s;
}
.btn01:hover div:nth-child(2) {
	-webkit-transform: rotateX(0deg) rotateY(0deg) translateZ(1px);
	-moz-transform: rotateX(0deg) rotateY(0deg) translateZ(1px);
	transform: rotateX(0deg) rotateY(0deg) translateZ(1px);
	-webkit-transition: .3s;
	transition: .3s;
}