HTML/CSS/JS项目中点击fas fa-bars汉堡菜单无法触发展开问题咨询
问题排查结果
核心原因:HTML结构嵌套错误
你代码中的<header class="header">是闭合的空标签,nav、hamburger-menu、nav-list等元素都在header的外部。你的JS逻辑是点击汉堡按钮后给header添加menu-open类,而CSS中.menu-open .nav-list是匹配menu-open类元素内部的.nav-list节点,现在导航相关元素不在header内部,选择器完全匹配不到,所以菜单显示的样式不会生效。
同时你写的<div class="container"></div>也是空标签,没有包裹导航内容,也不符合原本的布局逻辑。
修复方案
将header和container标签按照正确的嵌套关系包裹导航内容,修正后的HTML代码片段如下:
<!-- 替换原有错误的header、container、nav部分代码 --> <header class="header"> <div class="container"> <nav class="nav"> <a href="index.html" class="logo"> <img src="./images/logo.png" alt=""> </a> <div class="hamburger-menu"> <i class="fas fa-bars"></i> <i class="fas fa-times"></i> </div> <ul class="nav-list"> <li class="nav-item"> <a href="index.html" class="nav-link">Home</a> </li> <li class="nav-item"> <a href="#" class="nav-link">About</a> </li> <li class="nav-item"> <a href="#" class="nav-link">Offers</a> </li> <li class="nav-item"> <a href="#" class="nav-link">News</a> </li> <li class="nav-item"> <a href="#" class="nav-link">Contact</a> </li> </ul> </nav> </div> </header>
可选优化
你当前给.nav-list设置的过渡仅对透明度生效,菜单缩放会没有动画效果,可修改CSS的过渡规则:
.nav-list{ /* 其余原有属性保持不变 */ transition: opacity 0.5s, transform 0.5s; }
内容的提问来源于stack exchange,提问作者XxsettingsxX
相关产品推荐
相关产品推荐

