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

WP主题导航父菜单悬停无法展开子菜单的CSS问题求助

解决WordPress导航子菜单悬停不展开的CSS问题

嘿,我帮你排查了下你的CSS代码,子菜单悬停不展开的问题很明确——你只给子菜单设置了默认隐藏的规则,但没写父菜单项悬停时触发子菜单显示的逻辑,另外还有个小细节可能影响子菜单的定位,一起给你补上:

问题核心缺失点

  1. 没有为父菜单项.menu-item添加悬停时,子菜单.sub-menu的显示规则
  2. 父菜单项未设置position: relative,导致position: absolute的子菜单会相对于页面(而非父菜单)定位,可能出现偏移或显示异常

修改后的完整CSS代码

.f-nav .menu {
  background-color: hotpink;
  list-style: none;
  display: flex;
  margin-right: 1rem;
  color: white;
}

.f-nav .menu > .menu-item {
  margin: 0;
  /* 新增:让子菜单相对于父项定位 */
  position: relative;
}

.f-nav .menu > .menu-item > a {
  padding: 1rem;
  border-bottom: none;
  display: block;
  color: #fff;
  border-left: 1px solid #222;
}

.f-nav .menu > .menu-item:hover a, 
.f-nav .menu > .menu-item.open > a {
  background: #fff;
  color: #000;
}

.f-nav .menu > .menu-item > .sub-menu {
  position: absolute;
  margin: 0;
  list-style: none;
  background: #fff;
  display: none;
  min-width: 200px;
  border: 1px solid #efefef;
  border-top-color: #fff;
  z-index: 10;
}

/* 新增:父项悬停时显示子菜单 */
.f-nav .menu > .menu-item:hover > .sub-menu {
  display: block;
}

nav {
  position: relative;
}

.current-menu-item {
  background-color: red;
}

.menu-item-home {
  background-color: blue;
}

额外优化建议(可选)

如果想要更顺滑的展开效果,可以把display: none/block换成opacity和visibility配合过渡动画,比如:

.f-nav .menu > .menu-item > .sub-menu {
  /* 替换原display属性 */
  opacity: 0;
  visibility: hidden;
  transition: opacity 0.3s ease, visibility 0.3s ease;
}

.f-nav .menu > .menu-item:hover > .sub-menu {
  opacity: 1;
  visibility: visible;
}

这样子菜单会平滑展开,不会显得突兀~

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.14 07:01:30