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

如何让网站导航菜单在对应页面保持hover样式效果?

解决方案

你已经通过PHP代码给当前页面对应的<li>标签添加了active类,接下来只需要在CSS中让这个active类下的导航链接复用hover时的样式即可,具体操作如下:

1. 把Hover样式同步到Active状态

假设你原本的hover效果CSS代码类似这样:

.nav-efeito:hover {
  color: #2ecc71; /* 替换为你实际使用的绿色值 */
  border-bottom: 2px solid #2ecc71; /* 绿色小条样式 */
}

/* 如果是用伪元素实现的绿色小条,代码大概是这样 */
.nav-efeito:hover::after {
  content: '';
  position: absolute;
  bottom: 0;
  left: 50%;
  transform: translateX(-50%);
  width: 80%;
  height: 2px;
  background-color: #2ecc71;
}

现在只需要将active状态的导航链接也纳入样式选择器范围:

/* 基础样式同步 */
.nav-efeito:hover,
.nav-item.active .nav-efeito {
  color: #2ecc71;
  border-bottom: 2px solid #2ecc71;
}

/* 伪元素样式同步(如果用了伪元素) */
.nav-efeito:hover::after,
.nav-item.active .nav-efeito::after {
  content: '';
  position: absolute;
  bottom: 0;
  left: 50%;
  transform: translateX(-50%);
  width: 80%;
  height: 2px;
  background-color: #2ecc71;
}

2. 可选:优化Active类的位置(更简洁)

你当前是给<li>标签加active类,也可以直接把active类加到<a>标签上,这样CSS选择器更直观:

<li class="nav-item">
  <a class="nav-link nav-efeito <?php echo is_page_active('home') ? 'active' : ''; ?>" href="<?php echo get_template_directory_uri(); ?>/home">Início</a>
</li>

对应的CSS可以简化为:

.nav-efeito:hover,
.nav-efeito.active {
  color: #2ecc71;
  border-bottom: 2px solid #2ecc71;
}

3. 验证PHP判断逻辑

你的is_page_active函数已经覆盖了静态页面和单文章页面的slug匹配,如果导航链接对应自定义文章类型的归档页,可以补充判断逻辑,比如:

function is_page_active($page_slug) {
    global $post;
    return is_page($page_slug) 
        || (is_singular() && get_post_field('post_name', $post) === $page_slug)
        || (is_post_type_archive('你的自定义类型') && $page_slug === '归档页slug');
}

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.05 23:18:11