如何创建: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>ด้านหลัง</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 变换