如何創建: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 變換