应始终让覆盖层存在且初始 opacity: 0,用 transition: opacity 实现平滑叠加;父容器需 position: relative,覆盖层 position: absolute 并匹配图片 border-radius;移动端改用 :active 或 JS 切换 class,并设 pointer-events: none 避免干扰。hover时图片上叠加半透明黑色层但不闪动直接加 transition 在 :hover 里没用,因为初始状态没定义覆盖层,浏览器没法插值动画。必须让覆盖层始终存在,只是初始透明度为 0。用 ::after 或 <div> 做覆盖层,定位在图片上方,<code>opacity: 0 + transition: opacity 0.3s父容器设 position: relative,覆盖层设 position: absolute; top: 0; left: 0; width: 100%; height: 100%别用 rgba(0,0,0,0) 初始值------某些旧版 Safari 对 rgba 动画支持差,统一用 opacity 控制更稳用rgba控制深色强度但保持过渡平滑rgba() 本身不能被 transition 直接驱动(比如从 rgba(0,0,0,0.2) 到 rgba(0,0,0,0.8)),浏览器不识别颜色通道的渐变插值,容易卡顿或跳变。只用 opacity 过渡,深色层背景固定为 rgba(0, 0, 0, 0.8),靠透明度变化"显隐"它如果真要调深浅,改两套 class:.overlay-light 和 .overlay-dark,用 transition: background-color 0.3s ------但仅限纯黑/灰,且需预设好色值避免在 :hover 里写 background: rgba(...) 同时又设 transition,多数情况会失效图片带圆角时覆盖层边缘溢出图片设了 border-radius,但覆盖层是矩形绝对定位,会盖住圆角外的空白,视觉上像"切掉一块"。给覆盖层也加相同 border-radius,和图片一致(如 border-radius: 8px)更稳妥:把图片和覆盖层都包进一个 div,给这个容器设 overflow: hidden 和 border-radius,覆盖层在里面自由定位别依赖 clip-path 模拟圆角------IE 不支持,且和 transition 组合易触发重绘异常移动端 hover 失效或响应延迟手机没有真正 hover,tap 后会触发一次 pseudo-class,但不会持续,导致覆盖层一闪就消失。 Julius AI Julius AI是一款功能强大的AI数据分析工具,可以快速分析和可视化复杂数据。
相关推荐
妙码生花5 分钟前
从 PHP 到 AI + Golang,程序员自救转型手记(三十二):增加 admin_rule 模型及数据表迁移三川6981 小时前
Tkinter库的学习记录06-变量类别wenying_443237441 小时前
Python脚本—1.提取压缩包中的pdf文件_Jimmy_1 小时前
SQLAlchemy 复杂 SQL 执行指南与模板库六个九十度1 小时前
用python脚本访问被网关隔离的嵌入式设备千维百策6661 小时前
SRE 中如何消除琐务:提升工程效率与服务可靠性的实践方法卓怡学长1 小时前
w266基于spring boot + vue 圣地延安美食乐享系统GEO_ai_zhijian1 小时前
饮料生产线质量检测系统供应商哪家强名不经传的养虾人2 小时前
从0到1:企业级AI项目迭代日记 Vol.65|最危险的故障不是崩溃,是悄悄换掉了正确答案程序员佳佳2 小时前
模型网关灰度不是调百分比:把放量、观测和回滚做成账本