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

CSS hover时实现::before伪类与文本同时变红的问题求助

问题解决:Hover时伪类图标与嵌套文本同步变色

问题场景

尝试通过CSS实现:当鼠标悬停在列表项上时,带图标的::before伪类和“Permits Required”文本同时变为红色,但当前仅图标变红,文本无变化。

原代码

CSS

.knHeader__menu-list-item:hover::before {
  color: #aa0003 !important;
}

.knHeader__menu-list-item:hover {
  color: #aa0003 !important;
}

HTML

<li class="knHeader__menu-list-item">
  ::before
  <a href="#permits-required" class="knHeader__menu-link knHeader__menu-link--text">
    <!---->

    Permits Required

    <!---->
  </a>
</li>

解决方案

问题核心是文本嵌套在<a>标签内,该标签自身的颜色样式优先级高于父元素的设置。需要在hover状态下明确指定<a>标签的颜色:

.knHeader__menu-list-item:hover::before,
.knHeader__menu-list-item:hover .knHeader__menu-link {
  color: #aa0003 !important;
}

说明

  • 原代码仅给父列表项设置hover颜色,但<a>标签的默认样式或自定义样式会覆盖这个继承的颜色值,因此必须单独为hover状态下的<a>标签指定颜色。
  • 修改后,鼠标悬停在列表项的任意区域(图标或文本)时,伪类图标和链接文本会同步变为目标红色。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.12 23:14:53