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

如何为导航元素实现过渡效果?CSS添加transition不生效如何解决

问题原因

CSS的transition过渡属性不支持display属性,你当前给子菜单设置的默认状态是display: none,hover时切换为display: block,这种属性切换没有过渡效果,所以你加的transition: 2s不会生效。同时你把transition写在hover状态规则里,也会导致鼠标移出菜单时没有渐变消失的效果。

修复方案

替换你CSS中对应子菜单的两段规则即可:

/* 子菜单默认状态 */
nav ul li ul {
  position: relative;
  left: auto;
  right: 35%;
  /* 移除原有display:none,新增以下属性 */
  opacity: 0;
  visibility: hidden;
  height: 0;
  overflow: hidden;
  transition: all 2s ease; /* 这里的2s对应你需要的过渡时长,可自行调整 */
}

/*  hover触发子菜单显示 */
nav ul li:hover ul  {
  opacity: 1;
  visibility: visible;
  height: auto;
}

属性说明

  • opacity:控制元素透明度,从0到1的变化就是你需要的渐显效果
  • visibility:控制元素是否可交互,避免子菜单透明状态下还能被用户误触
  • height + overflow:hidden:可选,添加后子菜单会同步有高度展开的过渡效果,不需要可以删除这两个属性,仅保留透明度的淡入淡出效果

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.28 18:48:02