You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

CSS卡片Hover上移效果过渡属性失效问题求助

解决卡片hover上移无过渡动画的问题

嗨,这个问题我之前踩过坑!你的过渡动画不生效的核心原因是过渡属性放错了位置,咱们一步步来修复:

问题根源

CSS的transition需要定义在元素的初始状态上,而不是:hover伪类里。当你把transition写在.card:hover中时,鼠标悬停的瞬间浏览器才会读取这个过渡规则,但此时top值已经要发生变化了,自然不会有平滑的过渡效果。另外,你在:hover时才添加position: relative,这会让浏览器突然切换元素的定位状态,也会干扰过渡的触发。

修复后的代码

HTML保持不变:

<div class="card"> <p> Title </p> </div>

修改CSS,把过渡和基础定位放在.card的默认样式中:

.card {
  position: relative; /* 始终保持相对定位,避免hover时的状态突变 */
  top: 0; /* 设置初始top值,给过渡一个明确的基准 */
  transition: top 1s ease; /* 提前定义top属性的过渡规则 */
}

.card:hover {
  top: -10px; /* hover时只修改top值即可 */
}

额外小提示

  • 如果你想让多个属性都有过渡效果,可以用transition: all 1s;,但更推荐指定具体属性(比如这里的top),这样性能会更好,也更清晰。
  • 可以调整ease为linear、ease-in-out等,来改变过渡的动画曲线,适配不同的交互体验。

内容的提问来源于stack exchange,提问作者Sundaee

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.04.27 18:52:45