必须设为 hidden 才能真正隐藏背面;仅靠 transform 旋转不会自动触发隐藏,不加这个属性,翻转时大概率看到镜像文字或空白色块。backface-visibility 只在 3d 变换中生效,对纯 2d 操作(如 rotate(45deg))完全无效,必须用到 z 轴方向的变换,比如 rotatex、rotatey、rotate3d 或带 perspective 的 translatez。

必须设为 hidden 才能真正隐藏背面;仅靠 transform 旋转不会自动触发隐藏,不加这个属性,翻转时大概率看到镜像文字或空白色块。
backface-visibility 只在 3D 变换中生效
它对纯 2D 操作(如 rotate(45deg))完全无效。必须用到 z 轴方向的变换,比如 rotateX、rotateY、rotate3d 或带 perspective 的 translateZ。浏览器只在检测到真正的 3D 渲染上下文时才启用背面裁剪逻辑。
- 常见误用:给一个只写
transform: rotateY(180deg)的元素单独设backface-visibility: hidden,但父容器没设transform-style: preserve-3d→ 属性被忽略 - 正确前提:父级需有
transform-style: preserve-3d,且自身有 3D transform(哪怕只是translateZ(0)) - 小技巧:若只是想强制启用 3D 上下文又不想动视觉,可加
transform: translateZ(0)作为“触发器”
visible 和 hidden 的实际表现差异
visible 是默认值,但它的“可见”不是指你能看清内容,而是浏览器仍会绘制背面 —— 这会导致翻转中途出现镜像文字、颜色错乱或半透明重叠;hidden 则让 GPU 直接跳过背面绘制,视觉上就是“突然消失”,再出现就是另一面。
将调研报告、方案对比、数据分析、需求梳理、会议纪要、设计说明、代码评审、学习笔记等任务产物输出为可在浏览器直接打开的单文件 HTML,替代 Markdown 作为最终交付物。Markdown 在信息密度、视觉清晰度和可分享性上已跟不上 AI 产物的丰富度,HTML 能同时承载排版、表格、SVG 等。
- 翻转角度为 90° 时:
visible下可能看到一条细线或模糊边缘;hidden下该角度完全不可见(渲染为空) - 性能上差别极小,但
hidden能避免意外的背面纹理采样错误,尤其在高 DPR 屏幕或 WebGL 混合场景中 - 不要依赖
initial或inherit:该属性不继承,initial等价于visible,起不到隐藏作用
浏览器兼容与前缀问题现在基本不用操心
Chrome 36+、Firefox 16+、Safari 15.4+、Edge 79+ 均原生支持 backface-visibility,无需 -webkit- 前缀。IE11 已退出主流,Firefox 之前的 -moz- 也早成历史。
- 唯一要注意的是:某些旧版 WebView(如 Android 4.4 System WebView)可能只认
-webkit-backface-visibility - 如果你还在维护需要兼容 Android 4.x 的项目,建议同时写两行:
backface-visibility: hidden;和-webkit-backface-visibility: hidden; - 现代框架(React/Vue)中通过内联样式设置时,用
style.backfaceVisibility = 'hidden'即可,JS 层面不涉及前缀
最容易被忽略的一点:这个属性必须直接写在要翻转的那个元素上,而不是它的父容器或伪元素里;而且一旦用了 hidden,就别指望用 opacity 或 z-index 把背面“捞回来”——它已经被 GPU 裁掉了。
前端入门到VUE实战笔记:立即使用
在学习笔记中,你将探索 前端 的入门与实战技巧!










