WP主题导航父菜单悬停无法展开子菜单的CSS问题求助
解决WordPress导航子菜单悬停不展开的CSS问题
嘿,我帮你排查了下你的CSS代码,子菜单悬停不展开的问题很明确——你只给子菜单设置了默认隐藏的规则,但没写父菜单项悬停时触发子菜单显示的逻辑,另外还有个小细节可能影响子菜单的定位,一起给你补上:
问题核心缺失点
- 没有为父菜单项
.menu-item添加悬停时,子菜单.sub-menu的显示规则 - 父菜单项未设置
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
相关产品推荐
相关产品推荐

