倒影效果必须用 transform: scaleY(-1) 配合 transform-origin: top 和独立容器实现,grid-row 仅用于预留轨道空间且需配合明确行高定义,倒影需独立 DOM、z-index: -1、opacity: 0.25–0.4、pointer-events: none,并启用 GPU 加速。
倒影效果必须用
,不能只靠
很多人误以为
能直接“翻转”内容,其实它只是控制网格项在行轨道上的起止位置,和视觉翻转完全无关。倒影的本质是镜像变换,必须依赖
。但直接对图片应用这个变换会让它上下颠倒、位置错乱——所以得配合
和容器隔离来修正。
常见错误现象:
后图片跑到网格区域外、文字也倒过来、鼠标悬停失效。
倒影容器必须设
(否则默认以中心翻转,位置偏移)
倒影元素需包裹在独立子容器中(避免影响原图交互和文本流)
仅用于为倒影预留下方轨道,例如
,不参与变形逻辑
用
预留倒影空间时,必须显式定义行高
CSS Grid 默认行高由内容撑开,如果倒影容器没内容或高度为 0,
可能塌陷成一条线,导致倒影不可见。必须给网格容器设置明确的行轨道尺寸,比如
(假设倒影高度约 120px)。
使用场景:画廊每张图配一个固定比例倒影(如原图高度的 30%),此时推荐用
或百分比而非
,避免不同图片高度差异导致倒影拉伸失真。
立即学习
“
前端免费学习笔记(深入)
”;
使用HTML,CSS,JavaScript开发Android应用程序 英文文字pdf版附源文件
如果你了解HTML,CSS和JavaScript,您已经拥有所需的工具开发Android应用程序。本动手本书展示了如何使用这些开源web标准设计和建造,可适应任何Android设备的应用程序 - 无需使用Java。您将学习如何创建一个在您选择的平台的Android友好的网络应用程序,然后转换与自由PhoneGap框架到一个原生的Android应用程序。了解为什么设备无关的移动应用是未来的潮流,并开始构建应用程序,提供更
下载
错误写法:
→ 倒影高度随内容浮动,不可控
推荐写法:
(倒影占原图高度的 30%)
若需响应式,可用
防止倒影溢出
倒影层级和透明度要靠
和
单独控制
倒影不是阴影,不能用
模拟;它需要独立 DOM 结构才能精准缩放+透明。常见做法是用伪元素或额外
transform: scaleY(-1)grid-rowgrid-rowtransform: scaleY(-1)transform-originscaleY(-1)transform-origin: topgrid-rowgrid-row: 2 / 3grid-rowgrid-row: 2 / 3grid-template-rows: auto 120pxfrautogrid-template-rows: auto autogrid-template-rows: 1fr 0.3frminmax(0, 1fr)z-indexopacitybox-shadow
,但必须注意层叠上下文:
倒影容器需设
z-index: -1
(确保压在原图下方,又不遮挡其他画廊项)
倒影内容加
opacity: 0.25
~
0.4
,太低看不清,太高失去倒影感
必须关闭倒影容器的 pointer-events:
pointer-events: none
,否则会拦截原图点击/悬停
若用
::after
伪元素实现倒影,需确保父元素有
position: relative
性能关键:倒影元素要启用 GPU 加速并避免重排
scaleY(-1)
本身是合成属性,但若倒影容器宽高未固定、或父级有
overflow: hidden
外扩,可能触发重排(layout thrashing),尤其在滚动画廊时卡顿。
给倒影容器加
will-change: transform
(仅对频繁动画的场景)
避免在倒影上设置
width
/
height
百分比再套
scaleY
,容易因计算顺序出错;优先用
transform: scaleY(-1) translateZ(0)
强制 GPU 渲染
不要在
:hover
中动态插入倒影 DOM,应提前渲染,仅控制
opacity
和
visibility
最易被忽略的是:倒影容器的
transform-origin
必须和原图顶部对齐,否则缩放后边缘错位——哪怕只差 1px,在高清屏上也会明显露白边。
相关文章
- React超详细讲述Fiber的使用
- jquery怎么计算星期几
- display none是什么意思?display none的用法示例
- html5怎么遍历list_html5用JS的forEach或for循环遍历数组列表【遍历】
- JavaScript 中的 return 关键字:它能做些什么?
- Vue 中为 v-for 列表项添加入场动画的完整实现指南
- 彻底弄懂CSS盒子模式(DIV布局快速入门)(转载)_html/css_WEB-ITnose
- 使用 Next.js 13 服务端组件获取 Cookie
- Cloudflare Worker实现智能地域重定向:Bot管理与爬虫豁免策略
- jQuery中animate用法实例分析_jquery
