CSS如何制作卡片翻开呈现另一面的翻牌动画

最小可行结构需父容器设 perspective,卡片容器设 transform-style: preserve-3d,前后两面均设 backface-visibility: hidden 且初始 rotateY 分别为 0deg 和 180deg。用 transform: rotateY() 实现卡片翻转的最小可行结构翻牌动画本质是让前后两个面共享同一个容器,通过绕 Y 轴旋转 180°,把背面"转"到前面。关键不是加动画,而是让两面始终在同一个 3D 空间里对齐------否则会错位、闪动或根本看不到背面。常见错误:直接给两个 div 分别加 animation,结果背面飞出屏幕外,或者翻到一半就消失。这是因为没启用 3D 渲染上下文,也没设置正确的 transform-style 和 perspective。父容器必须设 perspective(比如 perspective: 1000px),值越小翻转越"夸张",太小(如 100px)会导致背面严重畸变卡片容器(包裹前后两面的 div)要设 transform-style: preserve-3d,否则子元素会被压平成 2D正面默认 transform: rotateY(0deg),背面初始就要设 transform: rotateY(180deg),而不是靠动画从 0 动到 180 ------ 否则初始态背面就不可见触发翻转:用 :hover 还是 JS 控制 class?纯 CSS :hover 最简单,但只适用于鼠标悬停场景;真实项目里往往需要点击切换、配合数据状态、或防止移动端误触,这时候必须用 JS 切换 class。容易踩的坑:用 display: none 隐藏背面------这会让 3D 变换失效,因为元素被彻底移出渲染流。要用 visibility: hidden 或 opacity: 0 + pointer-events: none 配合 transform 控制显隐。立即学习"前端免费学习笔记(深入)";:hover 方案适合文档示例或纯展示页,写法简洁:.card:hover .card-inner { transform: rotateY(180deg); }JS 方案更可控,推荐监听点击后添加 is-flipped 类:cardElement.classList.toggle('is-flipped'),然后在 CSS 里写 .card.is-flipped .card-inner { transform: rotateY(180deg); }移动端注意:iOS Safari 对 :hover 响应延迟或不触发,必须用 click 或 touchstart 事件backface-visibility: hidden 不是可选项,是必填项不加这句,翻转过程中你会看到背面内容"镜像翻转"地透出来,尤其在 Chrome 和 Safari 下非常明显。这不是 bug,是浏览器默认渲染背面纹理的行为。 RedClaw 百度推出的手机端万能AI Agent助手

相关推荐
特立独行的猫A9 小时前
用仓颉语言 cj-tauri 框架,五分钟给娃做了个鸿蒙形近字游戏
java·后端·python
AllData公司负责人11 小时前
AI大模型数据开发底座系列说明书,AllData集成Chat2DB开源项目建设AI 数据库分析底座,涵盖AI 洞察/对话SQL/智能视图!
数据库·人工智能·sql·开源·ai 洞察·对话sql
xixingzhe212 小时前
数据库备份的分类与特点
数据库
大可不必了14 小时前
03 函数定义和调用
开发语言·python
承渊政道15 小时前
【Python编程—从入门到实践】(记分与闯关:用Python+Pygame,打造越战越精彩的太空大战!)
开发语言·python·pycharm·游戏程序·pygame
爱学习的程序媛15 小时前
Python常用框架梳理
开发语言·后端·python·ai·web·后端框架·python框架
imgsq15 小时前
GESP Python 一到四级:备考路线与真题特点
python·青少年编程
时间的拾荒人15 小时前
Redis 主从复制详解:配置实操 + 原理机制
数据库·redis·面试
隔窗听雨眠16 小时前
MySQL三表JOIN执行内核与优化器决策机制
数据库·mysql·sql优化
Decay__17 小时前
SQLServer 索引与 SQL 优化 —— 聚集索引、非聚集索引、覆盖索引、碎片维护与执行计划
运维·数据库·sql·mysql·架构