是不是做网页时总被导航栏搞得头大?在电脑上好好的菜单,到手机上就挤成一团,文字重叠看不清;想做个点击展开的汉堡按钮,写了半天 JS 还是没反应;好不容易调好看了,换个手机型号又错乱了?其实啊,零基础想做响应式导航栏根本不用愁,Bootstrap 早就把这些功能封装好了,加几个类名就能搞定,连复杂 JS 都不用自己写。今天兔子哥就带大家一步步学,用 Bootstrap 教程里的方法,半小时做出在手机、平板、电脑上都好看的导航栏,新手跟着做,保证少走弯路!
一、先搞懂:啥是响应式导航栏?为啥非要用 Bootstrap?
场景痛点:不用 Bootstrap,手写响应式导航栏有多麻烦?
之前有个新手朋友自己写导航栏,为了让菜单在手机上折叠,写了 200 多行 CSS 和 JS,又是媒体查询又是事件监听,改个颜色得同时改 3 处地方,最后还没适配全机型。后来用了 Bootstrap,同样的效果,几行代码就搞定了,他直呼 “早知道这么简单就不用熬大夜了”。
响应式导航栏的核心:在不同屏幕 “自动变形”
简单说,响应式导航栏就是:在电脑上显示完整的横向菜单,在平板上适当折叠,在手机上变成一个汉堡按钮,点击才展开菜单,这样不管在啥设备上都好看好用。
而 Bootstrap 的厉害之处在于,它把这些复杂的适配逻辑都做成了现成的类名,你不用懂原理,复制粘贴加修改,就能做出专业级导航栏,简直是新手福音,对吧?
Q:“我连 CSS 都不太熟,直接学 Bootstrap 能跟上吗?”
A:完全能!Bootstrap 的导航栏不用你写一行自定义样式,全靠现成的类名控制,就像搭积木一样,拼对零件就成,零基础也能学会。
二、准备工作:3 分钟搭好 Bootstrap 环境,超简单
新手最容易忽略的一步:环境没搭对,后面全白搭
想让 Bootstrap 生效,得先把它 “引进来” 你的网页。不用下载安装,直接用 CDN 链接最方便,复制两行代码就行,连文件夹都不用建。
正确步骤记好啦,一步都不能少:
- 加视口标签:在 HTML 的
里必须加这个标签,不然手机上会缩放异常,导航栏适配全白费:
这步超重要,忘了加的话,后面再怎么调都可能在手机上显示不全,记牢哦! - 引入 Bootstrap 文件:同样在
里加 CSS,结束前加 JS,用最新的 5 版本最稳定:
html<link href="https://cdn.jsdelivr.net/npm/bootstrap@5.3.3/dist/css/bootstrap.min.css" rel="stylesheet"><script src="https://cdn.jsdelivr.net/npm/bootstrap@5.3.3/dist/js/bootstrap.bundle.min.js">script>
别自己瞎改版本号,复制这个链接最保险,不然可能缺功能或者报错。 - 测试环境:随便写个带
btn类的按钮,运行后如果是蓝色圆角的,就说明环境搭对了:
三、核心步骤:手把手教你写响应式导航栏,分 4 步走
场景问题:导航栏到底由哪几部分组成?每个部分该怎么写?
Bootstrap 导航栏看似复杂,其实拆开来就 4 个核心部分:容器、品牌标识、汉堡按钮、菜单内容。跟着下面的代码写,保准一次成。
步骤 1:搭好导航栏容器,定好基本样式
先写最外层的容器,用
navbar类打底,再加颜色和展开控制:html
<nav class="navbar navbar-expand-lg navbar-dark bg-dark">nav>类名解释:
navbar:告诉 Bootstrap 这是导航栏,必加;navbar-dark bg-dark:深色背景配白色文字,换颜色可以改bg-primary(蓝)、bg-success(绿);navbar-expand-lg:关键!表示在大屏(≥992px)展开菜单,小屏幕自动折叠,不加这个类,菜单永远折叠着。
步骤 2:加品牌标识,放网站 logo 或名称
在容器里加个品牌区域,一般放网站名或 logo,点击能跳首页:
html
<div class="container"> <a class="navbar-brand" href="#">我的网站a>div>navbar-brand会自动调整字体大小和间距,不用自己调样式,改文字就能用,是不是很方便?步骤 3:加汉堡按钮,小屏幕才显示
这是响应式的关键!小屏幕上显示这个按钮,点击展开菜单:
html
<button class="navbar-toggler" type="button" data-bs-toggle="collapse" data-bs-target="#navbarMenu"><span class="navbar-toggler-icon">span>button>必看细节:
data-bs-toggle="collapse":点击时折叠 / 展开菜单;data-bs-target="#navbarMenu":关联下面的菜单容器,#后面的名字要和菜单id一致,不然点了没反应;navbar-toggler-icon:自带的汉堡图标,不用自己画。
步骤 4:写菜单内容,放导航链接
最后加菜单列表,用
collapse类让它能折叠,navbar-nav控制菜单样式:html
<div class="collapse navbar-collapse" id="navbarMenu"><ul class="navbar-nav ms-auto"> <li class="nav-item"><a class="nav-link active" href="#">首页a>li><li class="nav-item"><a class="nav-link" href="#">关于我们a>li><li class="nav-item"><a class="nav-link" href="#">联系我们a>li>ul>div>类名作用:
collapse navbar-collapse:让菜单能被折叠,id要和按钮的data-bs-target对应;navbar-nav:把普通列表变成导航菜单样式,自动调整间距;nav-item和nav-link:定义菜单项和链接样式,active给当前页加高亮。
四、完整代码:把各部分拼起来,看效果啦
场景问题:完整的导航栏代码长啥样?运行后该怎么调试?
把上面的部分拼起来,就是一个能直接用的响应式导航栏了,复制到你的 HTML 里试试:
html
DOCTYPE html><html lang="zh-CN"><head><meta charset="UTF-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><title>响应式导航栏title><link href="https://cdn.jsdelivr.net/npm/bootstrap@5.3.3/dist/css/bootstrap.min.css" rel="stylesheet">head><body><nav class="navbar navbar-expand-lg navbar-dark bg-dark"><div class="container"><a class="navbar-brand" href="#">我的网站a><button class="navbar-toggler" type="button" data-bs-toggle="collapse" data-bs-target="#navbarMenu"><span class="navbar-toggler-icon">span>button><div class="collapse navbar-collapse" id="navbarMenu"><ul class="navbar-nav ms-auto"><li class="nav-item"><a class="nav-link active" href="#">首页a>li><li class="nav-item"><a class="nav-link" href="#">关于我们a>li><li class="nav-item"><a class="nav-link" href="#">联系我们a>li>ul>div>div>nav><script src="https://cdn.jsdelivr.net/npm/bootstrap@5.3.3/dist/js/bootstrap.bundle.min.js">script>body>html>运行后试试:在电脑上看是横向菜单,把浏览器窗口缩小(模拟手机),菜单会变成汉堡按钮,点击按钮菜单展开,完美适配不同屏幕,是不是超神奇?
五、常见问题:新手做导航栏最容易踩的坑,快看你中没中
1. 汉堡按钮点不动,菜单没反应?
90% 的原因:要么 JS 文件没引入,要么
data-bs-target和菜单id对不上。解决:检查 JS 链接是否正确;确保按钮的
data-bs-target="#navbarMenu"和菜单的id="navbarMenu"完全一致,连大小写都不能错。2. 菜单在手机上展开后,背景和文字颜色看不清?
原因:
navbar-dark配了浅色背景,或者navbar-light配了深色背景,颜色冲突了。解决:颜色类要配套用 ——
navbar-dark配深色背景(bg-dark bg-primary);navbar-light配浅色背景(bg-light bg-white)。3. 菜单总是靠左,想让它靠右怎么弄?
原因:没加让菜单靠右的类。
解决:给
ul加ms-auto(margin-start-auto),就像代码里的
,菜单会自动靠右对齐。4. 在平板上菜单挤成两行,不好看?
原因:
navbar-expand-lg表示大屏才展开,平板可能属于中屏。解决:把
navbar-expand-lg换成navbar-expand-md,让菜单在平板(≥768px)就展开,避免拥挤。六、自问自答:新手最关心的 2 个问题,兔子哥来解答
Q:“想给导航栏加个搜索框,能直接加吗?”
A:当然能!在菜单前面加个搜索框组件就行:
html
<form class="d-flex me-2"> <input class="form-control me-2" type="search" placeholder="搜索"><button class="btn btn-outline-light" type="submit">搜button>form>放在
div.container里,汉堡按钮前面,小屏幕会和菜单一起折叠,超方便。Q:“导航栏做好后,想固定在顶部不动,怎么弄?”
A:加个
fixed-top类就行:这样滚动页面时导航栏会一直固定在顶部,不过记得给
body加padding-top: 56px,避免内容被挡住哦。兔子哥觉得,用 Bootstrap 做响应式导航栏,关键在记准几个核心类名,理解每个部分的作用。刚开始练的时候,别嫌麻烦,把代码一行行敲一遍,改改颜色、文字,看看效果怎么变,练两次就熟了。
我刚开始学的时候,也总在汉堡按钮的
data-bs-target上出错,要么漏写#,要么拼错名字,后来把这个类名抄在小本本上,用的时候对着写,就再也没错过。其实新手学这些技术,就是多动手、多试错,遇到问题别慌,按步骤排查,很快就能掌握。现在就打开编辑器,把今天的代码敲一遍,你会发现做响应式导航栏真的没那么难,动手试试吧!标签: cdn.jsdelivr.net 控制
版权声明:除非特别标注,否则均为本站原创文章,转载时请以链接形式注明文章出处。
还木有评论哦,快来抢沙发吧~