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

CSS实现元素初始不可见且保留hover淡入淡出过渡的问题

解决CSS鼠标悬停淡入淡出的初始显示问题

问题的核心原因是你没给元素设置初始透明状态,或者过渡属性仅在hover时生效,导致页面加载时浏览器先渲染默认的不透明元素,再应用透明样式,出现闪显情况。

直接用下面的代码就能解决问题,完美匹配你的需求:

HTML结构

<div class="project">
  <h3>你的项目标题</h3>
</div>

CSS代码

/* 给目标元素设置初始状态和过渡规则 */
.project h3 {
  opacity: 0; /* 页面加载时直接不可见 */
  transition: opacity 0.3s ease; /* 对opacity的所有变化应用过渡动画 */
}

/* hover时触发淡入 */
.project:hover h3 {
  opacity: 1;
}

关键说明

  • 必须把transition属性写在元素的默认样式里,而非hover伪类中:这样不管是从透明到不透明(hover),还是从不透明到透明(移出),都会触发过渡动画。
  • 初始就设置opacity: 0:浏览器加载时直接渲染透明状态,不会出现先显示再消失的闪屏问题。
  • 不要用display: none实现初始隐藏:display属性不支持过渡动画,会导致移出时没有淡出效果,opacity是实现这种淡入淡出的最佳选择。

内容的提问来源于stack exchange,提问作者Anonymous Nyan Cat

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.07 05:40:20