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

导航栏li a元素hover时ease-in-out过渡动画失效求助

问题分析与修复

你的过渡效果不生效核心原因是CSS选择器语法错误:li a :hover::after中a和:hover之间多了一个空格,这会让选择器匹配a标签内部子元素的hover状态,而非a标签本身的hover状态,导致过渡触发逻辑失效。

修正后的完整代码

CSS代码

body {
  margin: 0;
}

.nav-bar {
  width: 100vw;
  background-color: black;
}

.nav-bar-ul {
  list-style: none;
  display: flex;
  justify-content: flex-end;
  align-items: center;
  padding: 1em 0;
}

li a {
  text-decoration: none;
  color: white;
  padding-right: 3em;
  position: relative;
}

li a::after {
  content: '';
  position: absolute;
  display: block;
  height: 0.4em;
  width: 0%;
  background-color: white;
  bottom: -1em;
  transition: all ease-in-out 250ms;
}

/* 修正选择器:去掉a与:hover之间的空格 */
li a:hover::after {
  width: 60%;
}

li a:hover {
  color: white;
}

HTML代码(补充修正:普通HTML需用class而非React的className)

<div>
  <div class="nav-bar">
    <ul class="nav-bar-ul">
      <li><a href="#">Logo</a></li>
      <li><a href="#">Logo</a></li>
      <li><a href="#">Logo</a></li>
      <li><a href="#">Logo</a></li>
    </ul>
  </div>
</div>

修改后,鼠标悬停在导航链接上时,底部白色下划线会正常触发ease-in-out的过渡动画。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.11 02:35:35