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

CSS过渡仅生效于进入动画,退出时无效果?求解决方案

解决CSS Transition鼠标离开无过渡效果的问题

你的代码里有两个关键问题导致鼠标离开时没有过渡效果:

  • 选择器错误:.collapsed-content :hover中间的空格会让CSS选中.collapsed-content下的子元素,而不是元素本身的hover状态,应该改成.collapsed-content:hover(去掉空格)。
  • 过渡属性无需在hover状态重复定义,只需要在初始样式中声明一次,这样进入和离开hover状态时都会触发过渡动画。

另外还要补充overflow: hidden属性,否则当max-height小于内容高度时,超出部分会直接显示,过渡效果无法正常呈现。

修正后的完整代码如下:

CSS代码

.collapsed-content {
  max-height: 3rem;
  transition: max-height 1.75s ease-in;
  display: flex;
  flex-direction: column;
  overflow: hidden; /* 必须添加,隐藏超出max-height的内容 */
}

.collapsed-content:hover {
  max-height: 300rem;
}

HTML代码

<div className='collapsed-content'>
  <p> Content </p>
  <div>
    <p> More content to reveal here </p>
  </div>
</div>

原理说明:初始状态下定义了max-height和transition属性,当鼠标悬停时修改max-height触发展开动画;鼠标离开时,元素会自动恢复到初始的max-height值,由于过渡属性已经在初始样式中存在,所以会平滑执行收起动画。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.15 00:35:26