如何创建: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 变换