可以通过CSS3中的transform属性和transition属性来实现HTML卡片的翻转效果。具体步骤如下:
<div class="card">
  <div class="front">
    <h3>正面</h3>
    <p>这是卡片的正面</p>
  </div>
  <div class="back">
    <h3>反面</h3>
    <p>这是卡片的反面</p>
  </div>
</div>
.card {
  width: 200px;
  height: 200px;
  border: 1px solid #ccc;
  background-color: #fff;
  perspective: 1000px; /* 设置3D视角,使翻转效果更加真实 */
}
.front, .back {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  backface-visibility: hidden; /* 隐藏背面,避免翻转时出现闪烁 */
}
.front {
  z-index: 2; /* 设置正面在上层 */
}
.back {
  transform: rotateY(180deg); /* 默认隐藏反面 */
}
.card:hover .front {
  transform: rotateY(180deg); /* 翻转正面 */
}
.card:hover .back {
  transform: rotateY(0deg); /* 翻转反面 */
}
.front, .back {
  transition: transform .6s ease; /* 设置翻转动画效果 */
}
.card {
  box-shadow: 0 2px 10px rgba(0, 0, 0, 0.3);
  border-radius: 5px;
  font-family: Arial, sans-serif;
  font-size: 14px;
  color: #333;
}
h3 {
  margin: 10px 0;
  font-size: 18px;
  color: #ff6600;
}
完整代码如下:
<div class="card">
  <div class="front">
    <h3>正面</h3>
    <p>这是卡片的正面</p>
  </div>
  <div class="back">
    <h3>反面</h3>
    <p>这是卡片的反面</p>
  </div>
</div>
.card {
  width: 200px;
  height: 200px;
  border: 1px solid #ccc;
  background-color: #fff;
  perspective: 1000px;
  box-shadow: 0 2px 10px rgba(0, 0, 0, 0.3);
  border-radius: 5px;
  font-family: Arial, sans-serif;
  font-size: 14px;
  color: #333;
}
.front, .back {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  backface-visibility: hidden;
  transition: transform .6s ease;
}
.front {
  z-index: 2;
}
.back {
  transform: rotateY(180deg);
}
.card:hover .front {
  transform: rotateY(180deg);
}
.card:hover .back {
  transform: rotateY(0deg);
}
h3 {
  margin: 10px 0;
  font-size: 18px;
  color: #ff6600;
}