响应式导航栏移动端未切换为折叠菜单问题排查求助
问题诊断与修复方案
先给你解释下@media标签的作用
@media是CSS的媒体查询规则,你可以理解为「条件生效样式」:只有括号里的条件满足时,包裹的CSS代码才会执行。你代码里写的
@media (max-width: 858px)意思就是当设备屏幕宽度≤858像素时,自动启用里面的折叠菜单样式,逻辑本身是正确的,不能触发是因为代码里有多处语法错误和遗漏。
具体问题与修复方法
一、HTML部分的错误(这是折叠菜单不生效的核心原因)
- checkbox的id属性缺等号
你写的<input type="checkbox" id"check">缺少等号,导致CSS的#check选择器找不到对应元素,点击事件完全失效,修改为:
<input type="checkbox" id="check">- checkbox的id属性缺等号
- head标签内错误插入了footer元素
footer是页面正文的尾部元素,不能放在head标签里,把head里的<footer> </footer>直接删掉即可。
- head标签内错误插入了footer元素
- 缺少FontAwesome图标库引入
你用了<i class="fas fa-bars" ></i>作为汉堡按钮的图标,但没有引入对应资源,导致按钮看不见。在head标签内加一行引入代码即可:
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.4.0/css/all.min.css">- 缺少FontAwesome图标库引入
二、CSS部分的错误
- 通用选择器内属性拼写错误
text-decloration写错了,改为text-decoration。
- 通用选择器内属性拼写错误
- 858px媒体查询内的section样式存在3处语法错误:
原错误代码:
修复后:section{ background: url(bgl.jpg) no-repeat background-size: coover; height: calc(100vh - 80px): }section{ background: url(bgl.jpg) no-repeat; background-size: cover; height: calc(100vh - 80px); }- 858px媒体查询内的section样式存在3处语法错误:
- 折叠菜单缺少背景色,会和页面内容重叠看不清
在@media (max-width: 858px)的ul样式里加一行背景色即可:
ul{ position: fixed; width: 100%; height: 100vh; top: 80px; left: -100%; background: #2c3e50; /* 新增背景色,颜色可自行调整 */ text-align: center; transition: all .5s; }- 折叠菜单缺少背景色,会和页面内容重叠看不清
修复完以上问题后,缩小屏幕到858px以下就会显示汉堡按钮,点击即可展开折叠菜单。
内容的提问来源于stack exchange,提问作者NOUR
相关产品推荐
相关产品推荐

