3D 翻转卡片
3D Flip Card
初级通用卡片正面是头像和名字,鼠标移上去(或者点一下),卡片像实物一样翻过来,背面是简介和链接。团队介绍、作品集、单词卡都常用,同一块地方放下两层信息,翻的过程本身也很好玩。
你可能会说:「团队介绍页的成员卡片,能不能鼠标放上去就翻过来,背面显示个人简介?」
效果预览悬停翻到背面看简介
正在加载演示…
怎么做3 步做出来
- 1
结构:外框 → 翻转层 → 正反两面
外框负责透视,中间一层负责翻转,正面和背面叠放在翻转层里。背面里的链接要可以用键盘聚焦,所以下一步会让「聚焦到卡片里面」也触发翻转。
查看代码收起代码html
<div class="flip-card"> <div class="flip-card__inner"> <div class="flip-card__face flip-card__front"> <img src="/team/lin.jpg" alt=""> <h3>小林</h3> <p>产品设计</p> </div> <div class="flip-card__face flip-card__back"> <p>做过 3 款百万用户的 App,相信好产品是删出来的。</p> <a href="/team/lin">看看作品</a> </div> </div> </div> - 2
透视 + 保留 3D + 隐藏背面
三个属性缺一不可:外框的 perspective 让翻转有立体感;翻转层的 preserve-3d 让两面各有朝向;两面的 backface-visibility: hidden 让背对你的那一面不显示。背面预先转 180°。悬停或卡片内有元素获得焦点时翻过去。
查看代码收起代码css
.flip-card { height: 224px; perspective: 1000px; } .flip-card__inner { position: relative; height: 100%; transform-style: preserve-3d; transition: transform 0.7s cubic-bezier(0.3, 0.7, 0.2, 1); } .flip-card:hover .flip-card__inner, .flip-card:focus-within .flip-card__inner, .flip-card.is-flipped .flip-card__inner { transform: rotateY(180deg); } .flip-card__face { position: absolute; inset: 0; border-radius: 18px; backface-visibility: hidden; -webkit-backface-visibility: hidden; } .flip-card__back { transform: rotateY(180deg); } - 3
手机上点击翻转,减少动效时改淡入
手机没有悬停,用一个按钮(或点卡片)切换 is-flipped 类。开启减少动效时不做 3D 翻转,改成背面淡入覆盖在正面上。
查看代码收起代码css
@media (hover: none) { .flip-card:hover .flip-card__inner { transform: none; } } @media (prefers-reduced-motion: reduce) { .flip-card__inner { transition: none; transform: none !important; } .flip-card__back { transform: none; opacity: 0; transition: opacity 0.2s; } .flip-card:hover .flip-card__back, .flip-card:focus-within .flip-card__back, .flip-card.is-flipped .flip-card__back { opacity: 1; } }
适合放在哪
适合用
- 团队介绍、讲师介绍页:正面照片和名字,背面简介。
- 作品集:正面封面图,背面项目说明和链接。
- 背单词、知识卡片:正面问题,背面答案。
不适合用
- 背面的信息和正面同样重要时,别藏起来;直接一起展示。
- 背面内容很长需要滚动时,别塞进卡片;放到详情页。
- 卡片要被频繁对比(比如套餐价格)时,别用悬停翻转;来回翻很累。
让 AI 帮你做复制给 AI Agent 直接用
请把【需要两面展示的卡片,如:团队介绍页的成员卡片】做成 3D 翻转卡片。先阅读卡片组件和样式写法,确认正面、背面要放的内容。要求:外框设 perspective(约 1000px),翻转层 transform-style: preserve-3d,正反两面叠放且都 backface-visibility: hidden(带 -webkit- 前缀),背面预先 rotateY(180deg);鼠标悬停、或卡片内元素获得键盘焦点时翻转;触屏设备用点击切换;翻转约 0.7 秒;开启减少动效时改为背面淡入。卡片高度固定,翻转不能引起布局变化。沿用现有组件,不改无关代码。最后说明怎样验证:用 Tab 键能翻到背面并聚焦链接,手机上点击可以翻转。