如何创建:3D 翻转盒子
学习如何使用 CSS 创建一个翻转盒子。
翻转盒子
请将鼠标移到下面的盒子上,查看效果:
如何创建一个翻转盒子
第一步 - 添加 HTML:
<div class="flip-box">
<div class="flip-box-inner">
<div class="flip-box-front">
<h2>Front Side</h2>
</div>
<div class="flip-box-back">
<h2>Back Side</h2>
</div>
</div>
</div>
第二步 - 添加 CSS:
/* 翻盖盒容器 - 设置你想要的宽度和高度。我们添加了 border 属性来演示,当鼠标悬停时,翻转本身会超出盒子(如果您不想要 3D 效果,请删除 perspective) */
.flip-box {
background-color: transparent;
width: 300px;
height: 200px;
border: 1px solid #f1f1f1;
perspective: 1000px; /* 如果不需要3D效果,请移除此行 */
}
/* 这个容器用于定位正面和背面 */
.flip-box-inner {
position: relative;
width: 100%;
height: 100%;
text-align: center;
transition: transform 0.8s;
transform-style: preserve-3d;
}
/* 当鼠标移动到翻转盒子容器上时,进行水平翻转 */
.flip-box:hover .flip-box-inner {
transform: rotateY(180deg);
}
/* 定位正面和背面 */
.flip-box-front, .flip-box-back {
position: absolute;
width: 100%;
height: 100%;
-webkit-backface-visibility: hidden; /* Safari */
backface-visibility: hidden;
}
/* 设置正面的样式 */
.flip-box-front {
background-color: #bbb;
color: black;
}
/* 设置背面的样式 */
.flip-box-back {
background-color: dodgerblue;
color: white;
transform: rotateY(180deg);
}
垂直翻转
要进行垂直翻转而不是水平翻转,请使用 rotateX 方法而不是 rotateY:
实例
.flip-box:hover .flip-box-inner {
transform: rotateX(180deg);
}
.flip-box-back {
transform: rotateX(180deg);
}
注意:这些例子在平板电脑和/或手机上可能无法正常工作。
相关页面
教程:CSS 2D 变换
教程:CSS 3D 变换