广东鲸弘科技有限公司
  • 网站首页
  • 服务产品
      {pboot:nav parent=12}
    • 服务产品
    • 实战:多级菜单输出与高亮样式控制-技术干货-鲸弘科技-广东鲸弘科技有限公司
      广东鲸弘科技有限公司
      • 网站首页
      • 服务产品
          {pboot:nav parent=12}
        • 客户案例
        • 实战:多级菜单输出与高亮样式控制-技术干货-鲸弘科技-广东鲸弘科技有限公司
          广东鲸弘科技有限公司
          • 网站首页
          • 服务产品
              {pboot:nav parent=12}
            • 解决方案
            • 实战:多级菜单输出与高亮样式控制-技术干货-鲸弘科技-广东鲸弘科技有限公司
              广东鲸弘科技有限公司
              • 网站首页
              • 服务产品
                  {pboot:nav parent=12}
                • 服务支持
                • 实战:多级菜单输出与高亮样式控制-技术干货-鲸弘科技-广东鲸弘科技有限公司
                  广东鲸弘科技有限公司
                  • 网站首页
                  • 服务产品
                      {pboot:nav parent=12}
                    • 商学院
                    • 实战:多级菜单输出与高亮样式控制-技术干货-鲸弘科技-广东鲸弘科技有限公司
                      广东鲸弘科技有限公司
                      • 网站首页
                      • 服务产品
                          {pboot:nav parent=12}
                        • 关于鲸弘
                        • 实战:多级菜单输出与高亮样式控制-技术干货-鲸弘科技-广东鲸弘科技有限公司
                          广东鲸弘科技有限公司
                          • 网站首页
                          • 服务产品
                              {pboot:nav parent=12}
                            • 在线留言
                            • 企业邮箱
                              以企业域名为邮箱后缀,所有员工邮箱均带有企业域名,统一所有员工的邮箱格式,体现企业形象。
                            • 百度云加速
                              网站无需重新备案、无需搬家,配置简单的不像话,网站收录加速、新站还有额外扶持。
                            • 短信服务
                              快速触达手机用户的通信能力。
                            • 备案服务
                              为您提供专业的新增/变更/海外备案服务,专家免费1对1咨询。
                            • SSL证书
                              安装SSL证书的网站,浏览器地址栏会显示安全锁标记,让访客立刻产生安全感,有效提升网站业务量。
                            • Logo设计
                              结合消费者的心理需求,使品牌达到统一稳定的视觉形象,简洁、易记的特点,良好的情结联想的效果。
                            • 地图标注
                              百度、搜狗、微信、高德地图等全有,提高商户的在线曝光率,为商户开辟网络和导航“地盘"
                            • 400电话
                              400号码全国唯一、简单易记为用户分摊付费,更是企业诚意和实力的体现,公司产品或服务会赢得客户更多的信任。
                            • SEO外包
                              适用于中小型网站,每年节约seo运营费用。
                            • 网站降权恢复
                              快速定位站点降权原因,并恢复排名,无效退款。
                            • SEO诊断
                              找出影响SEO优化的细节问题,定位网站长期优化的发展方向。
                            • 百度优化排名
                              10年百度优化经验,助力增长中国企业业务能力。
                            • 谷歌优化排名
                              8年谷歌优化经验,助力增长国际贸易业务能力。
                            • 网站收录
                              纯白帽正规手法,首页、内页均可快速收录。
                            • 外链发布
                              提供外链发布策略与seo优化指导,让外链更具有价值。
                            • 品牌词排名
                              快速精准定位与解决企业网站搜索排名与品牌词展现各种问题。
                            • 域名注册
                              品牌建设从一个域名开始
                            • 网站建设
                              有效传递品牌价值
                            • 广告落地页设计
                              结合消费者心理、文案埋点挖掘
                            • banner设计服务
                              满意为止、不限制修改次数
                            • 网站维护/托管
                              网站安全、内容更新
                            • 网站改版
                              以结果导向,重新定义新官网
                            • 营销型建站
                              让网站获得更大的流量
                            • 前端切图外包
                              还原设计细节,质量好、交工快
                            • 网站UI设计
                              整站UI设计,含svg图标绘制
                            • 网站程序开发
                              适用有设计,无程序员的企业
                            • 微信小程序开发
                              源生定制开发、利于用户体验
                            • 微信公众号开发
                              再小的个体也有自己的品牌
                            • 企业微信开发
                              助力企业高效办公和管理
                            • 支付宝小程序开发
                              服务于支付宝生态平台
                            • 抖音/头条小程序
                              收割字节系亿级流量
                            • 百度小程序
                              依托百度APP为代表的全域 流量
                            • 物联网开发
                              充电桩/软硬件/蓝牙
                            • APP开发
                              Android/iOS原生/混合App开发
                            • 百科创建
                              百科创建-快速打造企业与个人百科!高效提供百科创建解决方案,快速建立百科词条。
                            • 新闻/软文发稿
                              通过新闻媒体的报道,企业可以将自己的品牌、产品和服务推向更广泛的受众群体。
                            • 官网认证
                              官网认证可以辅助网民快速识别官方网站,防止山寨、钓鱼虚假网站对网民和网站主体造成侵害。
                            • 短视频推广
                              原创脚本为您量身打造创始人IP、剧情、口播IP等,让您的视频内容从同行中脱颖而出。
                            • 整合营销
                              通过网络达到全面、精准、高效地宣传品牌、销售产品、建立客户关系和提高用户体验等目标。
                            • 企业专访
                              主要是围绕跟企业相关的问题进行采访,如:公司产品、质量、营销、战略等方面。
                            • 媒体邀约
                              媒体的参与可以帮助企业增加曝光度、塑造品牌形象,并将重要信息传达给更广泛的受众。
                            • 网络信息填充
                              无论是企业的网络营销还是个人的社交媒体运营,良好的网络信息填充可以实现更好的宣传和推广效果。
                          • 客户案例
                          • 解决方案
                            • 网站建设方案
                            • 小程序开发方案
                            • 外贸/独立站网站建设方案
                              谷歌收录,用户体验,多语言版本
                            • 营销型网站建设方案
                              转化率高,适合优化,多维度沟通
                            • 展示型网站建设方案
                              用户调研,产品展示,UI设计
                            • 集团网站建设方案
                              集团公告,媒体关注,集团愿景
                            • 上市公司网站建设方案
                              新三板,主板上市,IPO
                            • 跨国公司网站建设方案
                              贸易公司,子公司,办事处
                            • 新能源行业网站建设方案
                              技术介绍,市场前景,政策解读
                            • 芯片半导体网站建设方案
                              芯片研发,二极管,磁传感器
                            • 制造业网站建设方案
                              视觉体验,用户体验,后台维护
                            • 快递、物流网站建设方案
                              货运代理,大件物流,海外物流
                            • 服务业网站建设方案
                              工商服务,资质代办,技术咨询
                            • 律师事务所网站建设方案
                              个人律师,律师事务所,法律顾问服务
                            • 生物医疗网站建设方案
                              医疗设备,药物研发,安全性评价
                            • 电气/电子/仪器网站方案
                              检测仪器,电子元器件,电气系统
                            • 学校/教育培训网站方案
                              培训机构,公立院校,考证培训
                            • 工业品网站建设方案
                              装备制造,机械设备,资源加工
                            • 商城解决方案
                              分销返佣,DIY装修,余额储值
                          • 服务支持
                            • 公司公告
                            • 建站流程
                            • 优化流程
                            • 服务保障
                            • 帮助中心
                            • 文档下载
                            • 投诉与举报
                            公司公告
                            了解最新公司动态及行业资讯 了解详情
                            建站流程
                            网站制作交工的质量好坏很多时候取决于是否拥有严谨、合理的建站流程,各种的项目都具有科学的建站流程,为此我们在选择一家建站外包公司时,还需要了解供应商详细的网站建设流程。 了解详情
                            优化流程
                            我们具有众多行业网站优化经验,每个行业都精细耕耘。不仅优化做得好、网站转化率高、获取精准流量,还会给客户提供一些具有建设性的意见。星云在线网站优化流程及执行流程,快速、稳定这是我们对客户的郑重承诺! 了解详情
                            服务保障
                            每一个服务中的细节,都是对客户体验的执着追求。8年来,我们打磨出了独特且高效的服务流程。我们深知很多新用户选供应商时的纠结心态与痛点,为此我们针对每类业务为客户做出了不同的服务保障。 了解详情
                            帮助中心
                            这里可能有您的疑问与答案,这里聚集了众多用户常见的问题汇总,您可以通过本栏目查找您不懂的问题并知晓答案。如果没有找到您想要查找的问题,可以与我们客服再取得联系。 了解详情
                            文档下载
                            这里有合同、项目确认单、备案申请表、技术相关文档等,如果您有什么需要,可以本栏目随时下载。本栏目没有的可以与我们客服取得联系,我们会进行补充。 了解详情
                            投诉与举报
                            鲸弘科技坚信产品与服务打动客户,建立长期合作关系。只接受正规订单、不搞恶意竞争、与各大同行也希望和平相处。星云在线的工作人员哪些让您不满意,您可以在这里留下联系方式并提交证据,我们的售后顾问会尽快与您取得联系。 了解详情
                          • 商学院
                            • 建站教程
                            • AI资讯
                            • 技术干货
                            • 外贸/跨境电商
                            惠东县海鲜商城小程序开发,同城配送功能的设计难点。
                            2026/04/21
                            本文深入探讨了惠东县海鲜商城小程序开发中同城配送功能的设计难点与解决方案。重点分析了配送范围与时效的精准配置、订单智能分发与骑手调度逻辑、温控与货品状态追踪的透明化,以及异常订单处理流程。旨在帮助海鲜商家构建一个高效、可靠且能应对订单高峰的本地化配送体系,确保海鲜产品的新鲜送达与客户体验。 了解详情
                            2026年4.14-4.20 AI大事件汇总:模型迭代+产业落地+政策扶持,AI行业迎爆发期
                            2026/04/20
                            一、核心模型迭代:垂直场景深耕,国产与海外齐头并进上周,全球主流AI企业聚焦模型垂直化与性能升级,推出多款针对性产品,竞争从通用领域转向细分赛道,局部领域实现国产超越,智能体与具身智能相关模型成为迭代核心方向。OpenAI双线发力,一方面悄然上线首个专攻网络安全的商业模型GPT-5.4-Cyber,该模型在漏洞发现、渗透 了解详情
                            导航栏目标签{pboot:nav}实战:多级菜单输出与高亮样式控制
                            2026/04/21
                            在PbootCMS开发中,导航栏是网站的核心组件,而{pboot:nav}标签是实现导航菜单最核心、最高效的标签——无需手动编写循环代码,即可快速输出一级、二级甚至多级导航菜单,同时支持当前页面菜单高亮、hover样式控制,适配各类网站的导航需求。本文全程实战,从基础用法到高级样式控制,手把手教你玩转{pboot:nav}标签,新手也 了解详情
                            惠州跨境电商独立站建设,如何让你的产品标题更符合谷歌收录?
                            2026/04/21
                            本文针对惠州跨境电商独立站卖家,详细解析如何优化产品标题以提升谷歌收录和自然流量。核心方法是利用谷歌搜索的“相关搜索”和“People also ask”免费工具,挖掘用户真实搜索意图和长尾关键词,并遵循“核心产品词+关键属性+应用场景”的结构公式,手把手教你组装出符合SEO要求的高效产品标题。 了解详情
                          • 关于鲸弘
                          方案获取
                          宣传片
                          搜索

                          搜索发现

                          • 域名注册
                          • 网站建设
                          • 广告落地页设计
                          • banner设计服务
                          • 网站维护/托管
                          • 网站改版
                          • 营销型建站
                          • 前端切图外包
                          • 网站UI设计
                          • 网站程序开发
                          服务内容
                          解决方案
                          客户支持
                          商学院
                          网站案例
                          关于鲸弘
                          咨询热线 188-2547-1709
                          企业基础服务
                          • 企业邮箱
                          • 百度云加速
                          • 短信服务
                          • 备案服务
                          • SSL证书
                          • Logo设计
                          • 地图标注
                          • 400电话
                          SEO优化
                          • SEO外包
                          • 网站降权恢复
                          • SEO诊断
                          • 百度优化排名
                          • 谷歌优化排名
                          • 网站收录
                          • 外链发布
                          • 品牌词排名
                          网站服务
                          • 域名注册
                          • 网站建设
                          • 广告落地页设计
                          • banner设计服务
                          • 网站维护/托管
                          • 网站改版
                          • 营销型建站
                          • 前端切图外包
                          • 网站UI设计
                          • 网站程序开发
                          APP/小程序
                          • 微信小程序开发
                          • 微信公众号开发
                          • 企业微信开发
                          • 支付宝小程序开发
                          • 抖音/头条小程序
                          • 百度小程序
                          • 物联网开发
                          • APP开发
                          品牌营销
                          • 百科创建
                          • 新闻/软文发稿
                          • 官网认证
                          • 短视频推广
                          • 整合营销
                          • 企业专访
                          • 媒体邀约
                          • 网络信息填充
                          网站建设方案
                          • 外贸/独立站网站建设方案
                          • 营销型网站建设方案
                          • 展示型网站建设方案
                          • 集团网站建设方案
                          • 上市公司网站建设方案
                          • 跨国公司网站建设方案
                          • 新能源行业网站建设方案
                          • 芯片半导体网站建设方案
                          • 制造业网站建设方案
                          • 快递、物流网站建设方案
                          • 服务业网站建设方案
                          • 律师事务所网站建设方案
                          • 生物医疗网站建设方案
                          • 电气/电子/仪器网站方案
                          • 学校/教育培训网站方案
                          • 工业品网站建设方案
                          小程序开发方案
                          • 商城解决方案
                          公司公告
                          建站流程
                          优化流程
                          服务保障
                          帮助中心
                          文档下载
                          投诉与举报
                          建站教程
                          AI资讯
                          技术干货
                          外贸/跨境电商
                          全部行业
                          鲸奇世界,弘创无限
                          与我们取得联系
                          请拨打电话或者扫描下方微信二维码联系我们。
                          24小时电话
                          188-2547-1709
                          微信 王经理
                          建站、SEO业务
                          微信 王经理
                          小程序、系统定制业务

                          鲸奇世界,弘创无限

                          位置图标 首页-商学院-技术干货

                          导航栏目标签{pboot:nav}实战:多级菜单输出与高亮样式控制

                          发布人:鲸弘科技
                          发布时间:2026-04-21
                          浏览量:0 次

                          本文由广东鲸弘科技有限公司提供惠州小程序开发 / 网站建设专业分享。

                          在PbootCMS开发中,导航栏是网站的核心组件,而{pboot:nav}标签是实现导航菜单最核心、最高效的标签——无需手动编写循环代码,即可快速输出一级、二级甚至多级导航菜单,同时支持当前页面菜单高亮、hover样式控制,适配各类网站的导航需求。本文全程实战,从基础用法到高级样式控制,手把手教你玩转{pboot:nav}标签,新手也能快速上手,所有代码可直接复制到模板中使用。

                          适用场景:PbootCMS网站导航栏开发(PC端/移动端通用)、多级菜单(一级导航+二级子菜单)开发、导航高亮样式定制;适配PbootCMS所有稳定版本,兼容官方默认模板及自定义模板,无需二次开发核心代码,仅需修改标签参数和CSS样式。

                          一、{pboot:nav}标签基础认知(必学)

                          {pboot:nav}是PbootCMS内置的导航专用标签,核心作用是“自动读取后台栏目数据,生成导航菜单”,支持多级菜单输出、样式自定义、高亮控制,无需手动拼接HTML代码,大幅提升开发效率。

                          1.1 标签核心特性

                          • 自动关联后台栏目:导航菜单数据直接来自【栏目管理】,添加、修改、删除栏目后,导航会自动同步更新,无需手动修改模板。

                          • 支持多级菜单:默认支持一级、二级菜单,通过参数配置可实现三级菜单输出,适配企业站、门户站等多栏目场景。

                          • 自带高亮逻辑:无需额外编写JS,标签可自动识别当前访问栏目,为当前栏目菜单添加高亮类,实现“当前页导航高亮”效果。

                          • 样式完全可控:可通过标签参数自定义HTML结构,配合CSS样式,实现任意风格的导航(如横向导航、纵向导航、下拉导航)。

                          1.2 标签基础语法

                          {pboot:nav}标签为闭合标签,核心语法格式如下,所有参数均为可选,新手可先使用默认参数,再逐步自定义:

                          {pboot:nav 
                              type=1<!-- 菜单类型:1=横向导航,2=纵向导航,默认1 -->
                              level=2<!-- 显示级数:1=仅一级,2=一级+二级,3=三级,默认2 -->
                              cid=0    <!-- 起始栏目ID:0=所有顶级栏目,指定cid则从该栏目开始输出,默认0 -->
                              class=nav  <!-- 导航外层容器class,用于CSS样式控制,默认nav -->
                              current=current  <!-- 当前页高亮class,默认current -->
                              subClass=subnav  <!-- 二级菜单外层容器class,默认subnav -->
                          }
                          <!-- 菜单内容模板(可自定义HTML结构) -->
                          <a href="[nav:url]" class="[nav:current]"&gt;[nav:name]&lt;/a&gt;
                          <!-- 二级菜单模板(若level≥2,需添加该模板) -->
                          {if [nav:haschild]}  <!-- 判断当前栏目是否有子栏目 -->
                          &lt;div class="[nav:subClass]"&gt;
                              {nav:child}  <!-- 循环输出二级子栏目 -->
                              <a href="[nav:child:url]" class="[nav:child:current]">[nav:child:name]</a>
                              {/nav:child}
                          </div>
                          {/if}
                          {/pboot:nav}

                          注意1:标签内的参数需用空格分隔,参数值无需加引号(如level=2,而非level="2"),否则会导致标签失效。

                          注意2:菜单内容模板中的【[nav:url]】【[nav:name]】是内置变量,分别对应栏目路径和栏目名称,不可拼写错误,否则无法正常输出数据。

                          注意3:[nav:current]变量会自动判断当前栏目,若为当前访问栏目,输出标签参数中“current”的值(默认current),否则为空,用于高亮样式控制。

                          二、实战1:多级菜单输出(一级+二级,最常用)

                          最常见的导航场景是“一级导航+二级下拉菜单”,比如企业站的“首页、关于我们、产品中心、新闻动态、联系我们”,其中“产品中心”“新闻动态”包含二级子栏目。下面通过实战案例,实现该场景的菜单输出,步骤清晰可直接复用。

                          2.1 步骤1:后台栏目准备(必做)

                          导航菜单数据来自后台栏目,需先在后台创建对应栏目及子栏目,确保数据正确,步骤如下:

                          1. 登录PbootCMS后台,进入【栏目管理】→【添加栏目】,创建顶级栏目(一级导航),如“首页、关于我们、产品中心、新闻动态、联系我们”,栏目类型选择“栏目”,状态设置为“启用”。

                          2. 为需要二级子栏目的顶级栏目(如“产品中心”“新闻动态”)添加子栏目:选中“产品中心”,点击【添加子栏目】,创建“产品1、产品2、产品3”等二级栏目,状态同样设置为“启用”。

                          3. 排序:通过栏目列表的“排序”字段,调整一级、二级栏目的显示顺序(数字越小,显示越靠前),保存后,导航菜单会按排序顺序输出。

                          注意:若二级菜单无法显示,先检查二级栏目是否“启用”,且父栏目ID是否正确(子栏目父ID需对应顶级栏目ID),同时确保标签中level参数设置为2(默认即为2)。

                          2.2 步骤2:编写{pboot:nav}标签代码

                          打开PbootCMS模板文件(通常是header.html,导航栏一般在头部),找到导航栏对应的位置,删除原有默认导航代码,粘贴以下代码(已优化HTML结构,适配下拉菜单):

                          <!-- 导航栏外层容器 -->
                          <nav class="header-nav">
                              {pboot:nav 
                                  type=1 
                                  level=2 
                                  class="nav-list" 
                                  current="active" 
                                  subClass="subnav-list"
                              }
                              <li class="nav-item">
                                  <a href="[nav:url]" class="[nav:current] nav-link"&gt;[nav:name]&lt;/a&gt;
                                  <!-- 二级菜单 -->
                                  {if [nav:haschild]}
                                  <ul class="[nav:subClass]">
                                      {nav:child}
                                      <li class="subnav-item">
                                          <a href="[nav:child:url]" class="[nav:child:current] subnav-link">[nav:child:name]</a>
                                      </li>
                                      {/nav:child}
                                  </ul>
                                  {/if}
                              </li>
                              {/pboot:nav}
                          </nav>

                          2.3 代码说明(新手必看)

                          • 外层<nav class="header-nav">:导航栏整体容器,用于控制导航的整体位置、宽度等样式。

                          • type=1:设置为横向导航,适合PC端顶部导航;若需要纵向导航(如侧边栏),改为type=2。

                          • level=2:显示一级+二级菜单,若仅需一级菜单,改为level=1。

                          • current="active":当前页高亮class设置为active,后续通过CSS控制高亮样式(可自定义class名称,如current、on等)。

                          • {if [nav:haschild]}:判断当前一级栏目是否有子栏目,有则显示二级菜单,无则不显示,避免空菜单。

                          • [nav:child:url]、[nav:child:name]:二级子栏目的路径和名称变量,与一级菜单的变量对应。

                          三、实战2:高亮样式控制(当前页+hover效果)

                          导航菜单的核心体验的是“当前页高亮”和“hover下拉”,通过CSS样式配合{pboot:nav}标签的高亮变量,即可实现,无需编写JS代码,下面是实战样式代码,可直接复制到模板的CSS文件中(如css/style.css)。

                          3.1 基础样式(横向导航,适配PC端)

                          /* 导航整体样式 */
                          .header-nav {
                              width: 100%;
                              background: #fff;
                              box-shadow: 0 2px 8px rgba(0,0,0,0.1);
                          }
                          /* 一级菜单列表 */
                          .nav-list {
                              display: flex; /* 横向排列 */
                              justify-content: center; /* 水平居中 */
                              margin: 0;
                              padding: 0;
                              list-style: none;
                          }
                          /* 一级菜单项 */
                          .nav-item {
                              position: relative; /* 为二级菜单定位做准备 */
                              margin: 0 20px;
                          }
                          /* 一级菜单链接 */
                          .nav-link {
                              display: block;
                              height: 60px;
                              line-height: 60px;
                              color: #333;
                              text-decoration: none;
                              font-size: 16px;
                              padding: 0 10px;
                              transition: all 0.3s;
                          }
                          /* 当前页高亮样式(对应标签中current="active") */
                          .nav-link.active {
                              color: #2f80ed; /* 高亮颜色,可自定义 */
                              border-bottom: 2px solid #2f80ed; /* 底部高亮线 */
                          }
                          /* 一级菜单hover效果 */
                          .nav-item:hover .nav-link {
                              color: #2f80ed;
                          }
                          /* 二级菜单样式(下拉效果) */
                          .subnav-list {
                              position: absolute;
                              top: 60px; /* 与一级菜单高度一致,避免间隙 */
                              left: 0;
                              width: 180px;
                              background: #fff;
                              box-shadow: 0 2px 8px rgba(0,0,0,0.1);
                              margin: 0;
                              padding: 10px 0;
                              list-style: none;
                              display: none; /* 默认隐藏 */
                              z-index: 999; /* 确保下拉菜单在最上层,不被其他元素遮挡 */
                          }
                          /* 一级菜单hover时,显示二级菜单 */
                          .nav-item:hover .subnav-list {
                              display: block;
                          }
                          /* 二级菜单项 */
                          .subnav-item {
                              padding: 0 15px;
                          }
                          /* 二级菜单链接 */
                          .subnav-link {
                              display: block;
                              height: 40px;
                              line-height: 40px;
                              color: #333;
                              text-decoration: none;
                              font-size: 14px;
                              transition: all 0.3s;
                          }
                          /* 二级菜单hover效果 */
                          .subnav-item:hover .subnav-link {
                              color: #2f80ed;
                              padding-left: 5px; /* 轻微偏移,提升交互体验 */
                          }
                          /* 二级菜单当前页高亮 */
                          .subnav-link.active {
                              color: #2f80ed;
                              font-weight: 600;
                          }

                          3.2 样式说明与自定义

                          • 当前页高亮:通过.nav-link.active和.subnav-link.active控制,可修改color(文字颜色)、border-bottom(底部线条)、background(背景色)等,适配自己的网站风格。

                          • 下拉效果:通过position: absolute定位二级菜单,默认隐藏(display: none),一级菜单hover时显示(display: block),z-index: 999确保下拉菜单不被其他元素遮挡。

                          • 响应式适配:若需要适配移动端,可添加媒体查询(@media),将横向导航改为纵向导航,二级菜单改为展开式,后续可补充移动端适配代码。

                          注意1:CSS样式中的class名称,需与{pboot:nav}标签中的class、subClass参数一致(如标签中subClass="subnav-list",CSS中对应.subnav-list),否则样式无法生效。

                          注意2:若当前页高亮不生效,检查标签中current参数是否正确,且页面是否为栏目页(首页需单独设置,下文会讲解)。

                          四、进阶技巧(解决新手常见问题)

                          4.1 首页导航高亮设置

                          默认情况下,{pboot:nav}标签的高亮逻辑仅对“栏目页”生效,首页(index.html)的“首页”菜单不会自动高亮,需通过以下方法解决:

                          <!-- 首页导航单独处理,添加判断 -->
                          <nav class="header-nav">
                              {pboot:nav 
                                  type=1 
                                  level=2 
                                  class="nav-list" 
                                  current="active" 
                                  subClass="subnav-list"
                              }
                              <li class="nav-item"&gt;
                                  <!-- 首页判断:若为首页,手动添加active类 -->
                                  {if $page == 'index'}
                                  <a href="[nav:url]" class="nav-link active">[nav:name]</a>
                                  {else}
                                  <a href="[nav:url]" class="[nav:current] nav-link">[nav:name]</a>
                                  {/if}
                                  <!-- 二级菜单(不变) -->
                                  {if [nav:haschild]}
                                  <ul class="[nav:subClass]">
                                      {nav:child}
                                      <li class="subnav-item">
                                          <a href="[nav:child:url]" class="[nav:child:current] subnav-link">[nav:child:name]</a>
                                      </li>
                                      {/nav:child}
                                  </ul>
                                  {/if}
                              </li>
                              {/pboot:nav}
                          </nav>

                          说明:{$page == 'index'}是PbootCMS内置判断,用于识别当前页面是否为首页,若是,则手动为“首页”菜单添加active类,实现首页高亮。

                          4.2 三级菜单输出(进阶需求)

                          若网站需要三级菜单(如“产品中心→产品分类→具体产品”),只需修改标签level参数为3,并添加三级菜单模板,代码示例如下:

                          {pboot:nav 
                              type=1 
                              level=3  <!-- 改为3,显示三级菜单 -->
                              class="nav-list" 
                              current="active" 
                              subClass="subnav-list"
                              subSubClass="subsubnav-list"  <!-- 三级菜单class,新增参数 -->
                          }
                          <li class="nav-item">
                              <a href="[nav:url]" class="[nav:current] nav-link"&gt;[nav:name]&lt;/a&gt;
                              <!-- 二级菜单 -->
                              {if [nav:haschild]}
                              <ul class="[nav:subClass]">
                                  {nav:child}
                                  <li class="subnav-item">
                                      <a href="[nav:child:url]" class="[nav:child:current] subnav-link">[nav:child:name]</a>
                                      <!-- 三级菜单 -->
                                      {if [nav:child:haschild]}  <!-- 判断二级栏目是否有子栏目 -->
                                      <ul class="[nav:subSubClass]">
                                          {nav:child:child}  <!-- 循环输出三级子栏目 -->
                                          <li class="subsubnav-item">
                                              <a href="[nav:child:child:url]" class="[nav:child:child:current] subsubnav-link">[nav:child:child:name]</a>
                                          </li>
                                          {/nav:child:child}
                                      </ul>
                                      {/if}
                                  </li>
                                  {/nav:child}
                              </ul>
                              {/if}
                          </li>
                          {/pboot:nav}

                          说明:新增subSubClass参数,用于定义三级菜单的class,同时通过{nav:child:haschild}判断二级栏目是否有子栏目,{nav:child:child}循环输出三级菜单,配合对应的CSS样式即可实现三级下拉效果。

                          4.3 隐藏指定栏目(无需删除后台栏目)

                          若后台某些栏目不需要在导航中显示(如“测试栏目”),无需删除栏目,可通过标签参数cid排除,或在模板中添加判断隐藏,示例如下:

                          // 方法1:通过cid参数排除(推荐,直接不输出该栏目)
                          {pboot:nav cid="1,2,3" level=2}  // 仅输出cid为1、2、3的栏目,其他栏目不显示
                          // 方法2:模板中添加判断,隐藏指定cid的栏目
                          {pboot:nav level=2}
                          <li class="nav-item">
                              {if [nav:cid] != 5}  // 隐藏cid为5的栏目
                              <a href="[nav:url]" class="[nav:current] nav-link"&gt;[nav:name]&lt;/a&gt;
                              {/if}
                              <!-- 二级菜单 -->
                              {if [nav:haschild] && [nav:cid] != 5}
                              <ul class="[nav:subClass]">
                                  {nav:child}
                                  <li class="subnav-item">
                                      <a href="[nav:child:url]" class="[nav:child:current] subnav-link">[nav:child:name]</a>
                                  </li>
                                  {/nav:child}
                              </ul>
                              {/if}
                          </li>
                          {/pboot:nav}

                          五、常见问题汇总(避坑指南)

                          问题1:{pboot:nav}标签不输出菜单,页面显示空白?

                          解决方法:1. 检查后台栏目是否“启用”,且父栏目ID设置正确;2. 检查标签语法,确保参数无引号、变量拼写正确(如[nav:url]不可写成[nav:Url],区分大小写);3. 检查标签是否闭合({pboot:nav}和{/pboot:nav}必须成对出现);4. 清除网站缓存(后台【系统设置】→【清除缓存】)后重试。

                          问题2:二级菜单无法显示,仅显示一级菜单?

                          解决方法:1. 检查标签level参数是否为2(默认2,若改为1则不显示二级菜单);2. 检查二级栏目是否“启用”,且父栏目ID对应正确;3. 检查{if [nav:haschild]}判断是否存在,且模板结构正确(二级菜单模板需放在该判断内)。

                          问题3:当前页导航不高亮,active类未添加?

                          解决方法:1. 检查标签current参数是否正确(如current="active"),且CSS中对应class样式存在;2. 首页需添加{$page == 'index'}判断,手动添加active类;3. 检查当前页面是否为栏目页(若为自定义页面,需手动设置高亮,可通过URL参数判断)。

                          问题4:二级菜单被其他元素遮挡,显示不全?

                          解决方法:为二级菜单添加z-index: 999(确保在最上层),同时检查父元素(.nav-item)是否设置position: relative(二级菜单position: absolute需要依赖父元素定位)。

                          问题5:导航菜单横向排列错乱,换行显示?

                          解决方法:检查.nav-list的display: flex是否生效,若不生效,可能是浏览器兼容问题,可添加兼容代码(如display: -webkit-box; display: -ms-flexbox;),同时调整.nav-item的margin(减少间距),确保所有一级菜单能在一行显示。

                          六、总结

                          {pboot:nav}标签是PbootCMS导航开发的核心工具,核心优势是“自动同步后台栏目、无需手动循环、自带高亮逻辑”,实战中只需掌握3个关键点:一是正确配置标签参数(type、level、current等),二是编写合理的HTML模板结构,三是配合CSS样式实现高亮和下拉效果。

                          本文的代码可直接复制复用,新手可先按教程完成一级+二级菜单的输出和高亮控制,再根据自身需求,调整样式、添加三级菜单或隐藏指定栏目。后续开发中,无论栏目如何修改,只需在后台调整,导航菜单会自动同步,大幅提升开发和维护效率。

                          若需要适配移动端导航(如汉堡菜单),可在本文代码基础上添加媒体查询和简单JS,实现移动端下拉展开效果,后续可补充相关实操。

                          推荐专题
                          导航栏目标签{pboot:nav}实战:多级菜单输出与高亮样式控制
                          PbootCMS开发环境配置:Docker一键搭建PHP 7.4 + Nginx + MySQL开发栈
                          PbootCMS API接口开启配置教程,新手也能快速上手
                          PbootCMS API接口功能开发实操教程
                          pbootcms开源系统如何做好防护和配置宝塔服务器最安全
                          用PbootCms API接口实现Ajax无刷新分页 实现 点击加载更多 功能
                          Swiper轮播图视频加图片混合,完美解决方法,
                          pbootcms pboot:nav 判断没有子类得时候显示同级栏目
                          PbootCMS后台增加自定义字段搜索解决办法
                          pbootcms 上传的图片自动转换webp格式 附源码教程
                          pbootcms后台自定义字段多图上传 不能多图拖动解决办法
                          小程序分包加载开发:突破 2M 限制 + 首屏加载提速 50% 方案
                          响应式网站开发避坑:viewport 设置 + 媒体查询 + 适配测试方法
                          网站安全开发指南:XSS/CSRF 防护 + SQL 注入拦截实战
                          用PbootCms扩展定制一个简单天气预报小插件
                          有帮助赞一下(0)
                          没帮助联系客服
                          没帮助联系客服
                          上一篇:PbootCMS开发环境配置:Docker一键搭建PHP 7.4 + Nginx + MySQL开发栈 下一篇:没有了!
                          返回列表
                          最新阅读
                          • 分享一条宝塔PBOOTCMS自动清理rumtime缓存目录的SHELL脚本
                            2025-08-29
                            332
                          • pbootcms模板文章列表序号怎么调用标签?
                            2025-08-29
                            71
                          • PbootCms支持阿里云OSS插件和七牛云存储插件
                            2025-09-02
                            128
                          • pbootcms网站上线后如何做好防护才能不被黑或者被注入
                            2025-09-08
                            441
                          • pbootcms模板栏目页如何调用当前栏目的文章
                            2025-08-20
                            84
                          • Pbootcms留言“提交成功”的默认提示语修改
                            2025-08-20
                            117
                          • pbootcms模板调用导航的3种方法
                            2025-08-20
                            130
                          • pbootcms标签分页中url会无限重复叠加的解决方案
                            2025-09-01
                            65
                          • 用PbootCms API接口实现Ajax无刷新分页 实现 点击加载更多 功能
                            2026-01-29
                            59
                          • 小程序分包加载开发:突破 2M 限制 + 首屏加载提速 50% 方案
                            2025-12-19
                            114
                          AI 智能助理
                          您好!有什么可以帮助您的吗?
                          • 稳定
                            多年经验,服务稳定
                          • 贴心
                            全国7*24小时客服热线
                          • 专业
                            产品经理在线技术支持
                          • 快速
                            快速评估,快速执行
                          • 承诺
                            有目共睹,我们选声誉
                          咨询热线:
                          电话:188-2547-1709建站、小程序业务
                          Q Q: 609503512 邮箱:frank@vi23.com
                          地址:广东省惠州市惠城区鹅岭南路5号联通大酒店大厦2楼
                          王飞微信 王经理
                          建站、小程序业务
                          王飞微信 王经理
                          商标、版权注册业务
                          热门服务
                            {pboot:nav parent=46}
                          • 服务产品
                          • 实战:多级菜单输出与高亮样式控制');} else {$('.dq_section .content').append('-正文');}

                            导航栏目标签{pboot:nav}实战:多级菜单输出与高亮样式控制

                            发布人:鲸弘科技
                            发布时间:2026-04-21
                            浏览量:0 次

                            本文由广东鲸弘科技有限公司提供惠州小程序开发 / 网站建设专业分享。

                            在PbootCMS开发中,导航栏是网站的核心组件,而{pboot:nav}标签是实现导航菜单最核心、最高效的标签——无需手动编写循环代码,即可快速输出一级、二级甚至多级导航菜单,同时支持当前页面菜单高亮、hover样式控制,适配各类网站的导航需求。本文全程实战,从基础用法到高级样式控制,手把手教你玩转{pboot:nav}标签,新手也能快速上手,所有代码可直接复制到模板中使用。

                            适用场景:PbootCMS网站导航栏开发(PC端/移动端通用)、多级菜单(一级导航+二级子菜单)开发、导航高亮样式定制;适配PbootCMS所有稳定版本,兼容官方默认模板及自定义模板,无需二次开发核心代码,仅需修改标签参数和CSS样式。

                            一、{pboot:nav}标签基础认知(必学)

                            {pboot:nav}是PbootCMS内置的导航专用标签,核心作用是“自动读取后台栏目数据,生成导航菜单”,支持多级菜单输出、样式自定义、高亮控制,无需手动拼接HTML代码,大幅提升开发效率。

                            1.1 标签核心特性

                            • 自动关联后台栏目:导航菜单数据直接来自【栏目管理】,添加、修改、删除栏目后,导航会自动同步更新,无需手动修改模板。

                            • 支持多级菜单:默认支持一级、二级菜单,通过参数配置可实现三级菜单输出,适配企业站、门户站等多栏目场景。

                            • 自带高亮逻辑:无需额外编写JS,标签可自动识别当前访问栏目,为当前栏目菜单添加高亮类,实现“当前页导航高亮”效果。

                            • 样式完全可控:可通过标签参数自定义HTML结构,配合CSS样式,实现任意风格的导航(如横向导航、纵向导航、下拉导航)。

                            1.2 标签基础语法

                            {pboot:nav}标签为闭合标签,核心语法格式如下,所有参数均为可选,新手可先使用默认参数,再逐步自定义:

                            {pboot:nav 
                                type=1<!-- 菜单类型:1=横向导航,2=纵向导航,默认1 -->
                                level=2<!-- 显示级数:1=仅一级,2=一级+二级,3=三级,默认2 -->
                                cid=0    <!-- 起始栏目ID:0=所有顶级栏目,指定cid则从该栏目开始输出,默认0 -->
                                class=nav  <!-- 导航外层容器class,用于CSS样式控制,默认nav -->
                                current=current  <!-- 当前页高亮class,默认current -->
                                subClass=subnav  <!-- 二级菜单外层容器class,默认subnav -->
                            }
                            <!-- 菜单内容模板(可自定义HTML结构) -->
                            <a href="[nav:url]" class="[nav:current]"&gt;[nav:name]&lt;/a&gt;
                            <!-- 二级菜单模板(若level≥2,需添加该模板) -->
                            {if [nav:haschild]}  <!-- 判断当前栏目是否有子栏目 -->
                            &lt;div class="[nav:subClass]"&gt;
                                {nav:child}  <!-- 循环输出二级子栏目 -->
                                <a href="[nav:child:url]" class="[nav:child:current]">[nav:child:name]</a>
                                {/nav:child}
                            </div>
                            {/if}
                            {/pboot:nav}

                            注意1:标签内的参数需用空格分隔,参数值无需加引号(如level=2,而非level="2"),否则会导致标签失效。

                            注意2:菜单内容模板中的【[nav:url]】【[nav:name]】是内置变量,分别对应栏目路径和栏目名称,不可拼写错误,否则无法正常输出数据。

                            注意3:[nav:current]变量会自动判断当前栏目,若为当前访问栏目,输出标签参数中“current”的值(默认current),否则为空,用于高亮样式控制。

                            二、实战1:多级菜单输出(一级+二级,最常用)

                            最常见的导航场景是“一级导航+二级下拉菜单”,比如企业站的“首页、关于我们、产品中心、新闻动态、联系我们”,其中“产品中心”“新闻动态”包含二级子栏目。下面通过实战案例,实现该场景的菜单输出,步骤清晰可直接复用。

                            2.1 步骤1:后台栏目准备(必做)

                            导航菜单数据来自后台栏目,需先在后台创建对应栏目及子栏目,确保数据正确,步骤如下:

                            1. 登录PbootCMS后台,进入【栏目管理】→【添加栏目】,创建顶级栏目(一级导航),如“首页、关于我们、产品中心、新闻动态、联系我们”,栏目类型选择“栏目”,状态设置为“启用”。

                            2. 为需要二级子栏目的顶级栏目(如“产品中心”“新闻动态”)添加子栏目:选中“产品中心”,点击【添加子栏目】,创建“产品1、产品2、产品3”等二级栏目,状态同样设置为“启用”。

                            3. 排序:通过栏目列表的“排序”字段,调整一级、二级栏目的显示顺序(数字越小,显示越靠前),保存后,导航菜单会按排序顺序输出。

                            注意:若二级菜单无法显示,先检查二级栏目是否“启用”,且父栏目ID是否正确(子栏目父ID需对应顶级栏目ID),同时确保标签中level参数设置为2(默认即为2)。

                            2.2 步骤2:编写{pboot:nav}标签代码

                            打开PbootCMS模板文件(通常是header.html,导航栏一般在头部),找到导航栏对应的位置,删除原有默认导航代码,粘贴以下代码(已优化HTML结构,适配下拉菜单):

                            <!-- 导航栏外层容器 -->
                            <nav class="header-nav">
                                {pboot:nav 
                                    type=1 
                                    level=2 
                                    class="nav-list" 
                                    current="active" 
                                    subClass="subnav-list"
                                }
                                <li class="nav-item">
                                    <a href="[nav:url]" class="[nav:current] nav-link"&gt;[nav:name]&lt;/a&gt;
                                    <!-- 二级菜单 -->
                                    {if [nav:haschild]}
                                    <ul class="[nav:subClass]">
                                        {nav:child}
                                        <li class="subnav-item">
                                            <a href="[nav:child:url]" class="[nav:child:current] subnav-link">[nav:child:name]</a>
                                        </li>
                                        {/nav:child}
                                    </ul>
                                    {/if}
                                </li>
                                {/pboot:nav}
                            </nav>

                            2.3 代码说明(新手必看)

                            • 外层<nav class="header-nav">:导航栏整体容器,用于控制导航的整体位置、宽度等样式。

                            • type=1:设置为横向导航,适合PC端顶部导航;若需要纵向导航(如侧边栏),改为type=2。

                            • level=2:显示一级+二级菜单,若仅需一级菜单,改为level=1。

                            • current="active":当前页高亮class设置为active,后续通过CSS控制高亮样式(可自定义class名称,如current、on等)。

                            • {if [nav:haschild]}:判断当前一级栏目是否有子栏目,有则显示二级菜单,无则不显示,避免空菜单。

                            • [nav:child:url]、[nav:child:name]:二级子栏目的路径和名称变量,与一级菜单的变量对应。

                            三、实战2:高亮样式控制(当前页+hover效果)

                            导航菜单的核心体验的是“当前页高亮”和“hover下拉”,通过CSS样式配合{pboot:nav}标签的高亮变量,即可实现,无需编写JS代码,下面是实战样式代码,可直接复制到模板的CSS文件中(如css/style.css)。

                            3.1 基础样式(横向导航,适配PC端)

                            /* 导航整体样式 */
                            .header-nav {
                                width: 100%;
                                background: #fff;
                                box-shadow: 0 2px 8px rgba(0,0,0,0.1);
                            }
                            /* 一级菜单列表 */
                            .nav-list {
                                display: flex; /* 横向排列 */
                                justify-content: center; /* 水平居中 */
                                margin: 0;
                                padding: 0;
                                list-style: none;
                            }
                            /* 一级菜单项 */
                            .nav-item {
                                position: relative; /* 为二级菜单定位做准备 */
                                margin: 0 20px;
                            }
                            /* 一级菜单链接 */
                            .nav-link {
                                display: block;
                                height: 60px;
                                line-height: 60px;
                                color: #333;
                                text-decoration: none;
                                font-size: 16px;
                                padding: 0 10px;
                                transition: all 0.3s;
                            }
                            /* 当前页高亮样式(对应标签中current="active") */
                            .nav-link.active {
                                color: #2f80ed; /* 高亮颜色,可自定义 */
                                border-bottom: 2px solid #2f80ed; /* 底部高亮线 */
                            }
                            /* 一级菜单hover效果 */
                            .nav-item:hover .nav-link {
                                color: #2f80ed;
                            }
                            /* 二级菜单样式(下拉效果) */
                            .subnav-list {
                                position: absolute;
                                top: 60px; /* 与一级菜单高度一致,避免间隙 */
                                left: 0;
                                width: 180px;
                                background: #fff;
                                box-shadow: 0 2px 8px rgba(0,0,0,0.1);
                                margin: 0;
                                padding: 10px 0;
                                list-style: none;
                                display: none; /* 默认隐藏 */
                                z-index: 999; /* 确保下拉菜单在最上层,不被其他元素遮挡 */
                            }
                            /* 一级菜单hover时,显示二级菜单 */
                            .nav-item:hover .subnav-list {
                                display: block;
                            }
                            /* 二级菜单项 */
                            .subnav-item {
                                padding: 0 15px;
                            }
                            /* 二级菜单链接 */
                            .subnav-link {
                                display: block;
                                height: 40px;
                                line-height: 40px;
                                color: #333;
                                text-decoration: none;
                                font-size: 14px;
                                transition: all 0.3s;
                            }
                            /* 二级菜单hover效果 */
                            .subnav-item:hover .subnav-link {
                                color: #2f80ed;
                                padding-left: 5px; /* 轻微偏移,提升交互体验 */
                            }
                            /* 二级菜单当前页高亮 */
                            .subnav-link.active {
                                color: #2f80ed;
                                font-weight: 600;
                            }

                            3.2 样式说明与自定义

                            • 当前页高亮:通过.nav-link.active和.subnav-link.active控制,可修改color(文字颜色)、border-bottom(底部线条)、background(背景色)等,适配自己的网站风格。

                            • 下拉效果:通过position: absolute定位二级菜单,默认隐藏(display: none),一级菜单hover时显示(display: block),z-index: 999确保下拉菜单不被其他元素遮挡。

                            • 响应式适配:若需要适配移动端,可添加媒体查询(@media),将横向导航改为纵向导航,二级菜单改为展开式,后续可补充移动端适配代码。

                            注意1:CSS样式中的class名称,需与{pboot:nav}标签中的class、subClass参数一致(如标签中subClass="subnav-list",CSS中对应.subnav-list),否则样式无法生效。

                            注意2:若当前页高亮不生效,检查标签中current参数是否正确,且页面是否为栏目页(首页需单独设置,下文会讲解)。

                            四、进阶技巧(解决新手常见问题)

                            4.1 首页导航高亮设置

                            默认情况下,{pboot:nav}标签的高亮逻辑仅对“栏目页”生效,首页(index.html)的“首页”菜单不会自动高亮,需通过以下方法解决:

                            <!-- 首页导航单独处理,添加判断 -->
                            <nav class="header-nav">
                                {pboot:nav 
                                    type=1 
                                    level=2 
                                    class="nav-list" 
                                    current="active" 
                                    subClass="subnav-list"
                                }
                                <li class="nav-item"&gt;
                                    <!-- 首页判断:若为首页,手动添加active类 -->
                                    {if $page == 'index'}
                                    <a href="[nav:url]" class="nav-link active">[nav:name]</a>
                                    {else}
                                    <a href="[nav:url]" class="[nav:current] nav-link">[nav:name]</a>
                                    {/if}
                                    <!-- 二级菜单(不变) -->
                                    {if [nav:haschild]}
                                    <ul class="[nav:subClass]">
                                        {nav:child}
                                        <li class="subnav-item">
                                            <a href="[nav:child:url]" class="[nav:child:current] subnav-link">[nav:child:name]</a>
                                        </li>
                                        {/nav:child}
                                    </ul>
                                    {/if}
                                </li>
                                {/pboot:nav}
                            </nav>

                            说明:{$page == 'index'}是PbootCMS内置判断,用于识别当前页面是否为首页,若是,则手动为“首页”菜单添加active类,实现首页高亮。

                            4.2 三级菜单输出(进阶需求)

                            若网站需要三级菜单(如“产品中心→产品分类→具体产品”),只需修改标签level参数为3,并添加三级菜单模板,代码示例如下:

                            {pboot:nav 
                                type=1 
                                level=3  <!-- 改为3,显示三级菜单 -->
                                class="nav-list" 
                                current="active" 
                                subClass="subnav-list"
                                subSubClass="subsubnav-list"  <!-- 三级菜单class,新增参数 -->
                            }
                            <li class="nav-item">
                                <a href="[nav:url]" class="[nav:current] nav-link"&gt;[nav:name]&lt;/a&gt;
                                <!-- 二级菜单 -->
                                {if [nav:haschild]}
                                <ul class="[nav:subClass]">
                                    {nav:child}
                                    <li class="subnav-item">
                                        <a href="[nav:child:url]" class="[nav:child:current] subnav-link">[nav:child:name]</a>
                                        <!-- 三级菜单 -->
                                        {if [nav:child:haschild]}  <!-- 判断二级栏目是否有子栏目 -->
                                        <ul class="[nav:subSubClass]">
                                            {nav:child:child}  <!-- 循环输出三级子栏目 -->
                                            <li class="subsubnav-item">
                                                <a href="[nav:child:child:url]" class="[nav:child:child:current] subsubnav-link">[nav:child:child:name]</a>
                                            </li>
                                            {/nav:child:child}
                                        </ul>
                                        {/if}
                                    </li>
                                    {/nav:child}
                                </ul>
                                {/if}
                            </li>
                            {/pboot:nav}

                            说明:新增subSubClass参数,用于定义三级菜单的class,同时通过{nav:child:haschild}判断二级栏目是否有子栏目,{nav:child:child}循环输出三级菜单,配合对应的CSS样式即可实现三级下拉效果。

                            4.3 隐藏指定栏目(无需删除后台栏目)

                            若后台某些栏目不需要在导航中显示(如“测试栏目”),无需删除栏目,可通过标签参数cid排除,或在模板中添加判断隐藏,示例如下:

                            // 方法1:通过cid参数排除(推荐,直接不输出该栏目)
                            {pboot:nav cid="1,2,3" level=2}  // 仅输出cid为1、2、3的栏目,其他栏目不显示
                            // 方法2:模板中添加判断,隐藏指定cid的栏目
                            {pboot:nav level=2}
                            <li class="nav-item">
                                {if [nav:cid] != 5}  // 隐藏cid为5的栏目
                                <a href="[nav:url]" class="[nav:current] nav-link"&gt;[nav:name]&lt;/a&gt;
                                {/if}
                                <!-- 二级菜单 -->
                                {if [nav:haschild] && [nav:cid] != 5}
                                <ul class="[nav:subClass]">
                                    {nav:child}
                                    <li class="subnav-item">
                                        <a href="[nav:child:url]" class="[nav:child:current] subnav-link">[nav:child:name]</a>
                                    </li>
                                    {/nav:child}
                                </ul>
                                {/if}
                            </li>
                            {/pboot:nav}

                            五、常见问题汇总(避坑指南)

                            问题1:{pboot:nav}标签不输出菜单,页面显示空白?

                            解决方法:1. 检查后台栏目是否“启用”,且父栏目ID设置正确;2. 检查标签语法,确保参数无引号、变量拼写正确(如[nav:url]不可写成[nav:Url],区分大小写);3. 检查标签是否闭合({pboot:nav}和{/pboot:nav}必须成对出现);4. 清除网站缓存(后台【系统设置】→【清除缓存】)后重试。

                            问题2:二级菜单无法显示,仅显示一级菜单?

                            解决方法:1. 检查标签level参数是否为2(默认2,若改为1则不显示二级菜单);2. 检查二级栏目是否“启用”,且父栏目ID对应正确;3. 检查{if [nav:haschild]}判断是否存在,且模板结构正确(二级菜单模板需放在该判断内)。

                            问题3:当前页导航不高亮,active类未添加?

                            解决方法:1. 检查标签current参数是否正确(如current="active"),且CSS中对应class样式存在;2. 首页需添加{$page == 'index'}判断,手动添加active类;3. 检查当前页面是否为栏目页(若为自定义页面,需手动设置高亮,可通过URL参数判断)。

                            问题4:二级菜单被其他元素遮挡,显示不全?

                            解决方法:为二级菜单添加z-index: 999(确保在最上层),同时检查父元素(.nav-item)是否设置position: relative(二级菜单position: absolute需要依赖父元素定位)。

                            问题5:导航菜单横向排列错乱,换行显示?

                            解决方法:检查.nav-list的display: flex是否生效,若不生效,可能是浏览器兼容问题,可添加兼容代码(如display: -webkit-box; display: -ms-flexbox;),同时调整.nav-item的margin(减少间距),确保所有一级菜单能在一行显示。

                            六、总结

                            {pboot:nav}标签是PbootCMS导航开发的核心工具,核心优势是“自动同步后台栏目、无需手动循环、自带高亮逻辑”,实战中只需掌握3个关键点:一是正确配置标签参数(type、level、current等),二是编写合理的HTML模板结构,三是配合CSS样式实现高亮和下拉效果。

                            本文的代码可直接复制复用,新手可先按教程完成一级+二级菜单的输出和高亮控制,再根据自身需求,调整样式、添加三级菜单或隐藏指定栏目。后续开发中,无论栏目如何修改,只需在后台调整,导航菜单会自动同步,大幅提升开发和维护效率。

                            若需要适配移动端导航(如汉堡菜单),可在本文代码基础上添加媒体查询和简单JS,实现移动端下拉展开效果,后续可补充相关实操。

                            推荐专题
                            导航栏目标签{pboot:nav}实战:多级菜单输出与高亮样式控制
                            PbootCMS开发环境配置:Docker一键搭建PHP 7.4 + Nginx + MySQL开发栈
                            PbootCMS API接口开启配置教程,新手也能快速上手
                            PbootCMS API接口功能开发实操教程
                            pbootcms开源系统如何做好防护和配置宝塔服务器最安全
                            用PbootCms API接口实现Ajax无刷新分页 实现 点击加载更多 功能
                            Swiper轮播图视频加图片混合,完美解决方法,
                            pbootcms pboot:nav 判断没有子类得时候显示同级栏目
                            PbootCMS后台增加自定义字段搜索解决办法
                            pbootcms 上传的图片自动转换webp格式 附源码教程
                            pbootcms后台自定义字段多图上传 不能多图拖动解决办法
                            小程序分包加载开发:突破 2M 限制 + 首屏加载提速 50% 方案
                            响应式网站开发避坑:viewport 设置 + 媒体查询 + 适配测试方法
                            网站安全开发指南:XSS/CSRF 防护 + SQL 注入拦截实战
                            用PbootCms扩展定制一个简单天气预报小插件
                            有帮助赞一下(0)
                            没帮助联系客服
                            没帮助联系客服
                            上一篇:PbootCMS开发环境配置:Docker一键搭建PHP 7.4 + Nginx + MySQL开发栈 下一篇:没有了!
                            返回列表
                            最新阅读
                            • 分享一条宝塔PBOOTCMS自动清理rumtime缓存目录的SHELL脚本
                              2025-08-29
                              332
                            • pbootcms模板文章列表序号怎么调用标签?
                              2025-08-29
                              71
                            • PbootCms支持阿里云OSS插件和七牛云存储插件
                              2025-09-02
                              128
                            • pbootcms网站上线后如何做好防护才能不被黑或者被注入
                              2025-09-08
                              441
                            • pbootcms模板栏目页如何调用当前栏目的文章
                              2025-08-20
                              84
                            • Pbootcms留言“提交成功”的默认提示语修改
                              2025-08-20
                              117
                            • pbootcms模板调用导航的3种方法
                              2025-08-20
                              130
                            • pbootcms标签分页中url会无限重复叠加的解决方案
                              2025-09-01
                              65
                            • 用PbootCms API接口实现Ajax无刷新分页 实现 点击加载更多 功能
                              2026-01-29
                              59
                            • 小程序分包加载开发:突破 2M 限制 + 首屏加载提速 50% 方案
                              2025-12-19
                              114
                            AI 智能助理
                            您好!有什么可以帮助您的吗?
                            • 稳定
                              多年经验,服务稳定
                            • 贴心
                              全国7*24小时客服热线
                            • 专业
                              产品经理在线技术支持
                            • 快速
                              快速评估,快速执行
                            • 承诺
                              有目共睹,我们选声誉
                            咨询热线:
                            电话:188-2547-1709建站、小程序业务
                            Q Q: 609503512 邮箱:frank@vi23.com
                            地址:广东省惠州市惠城区鹅岭南路5号联通大酒店大厦2楼
                            王飞微信 王经理
                            建站、小程序业务
                            王飞微信 王经理
                            商标、版权注册业务
                            热门服务
                              {pboot:nav parent=46}
                            • 客户案例
                            • 实战:多级菜单输出与高亮样式控制');} else {$('.dq_section .content').append('-正文');}

                              导航栏目标签{pboot:nav}实战:多级菜单输出与高亮样式控制

                              发布人:鲸弘科技
                              发布时间:2026-04-21
                              浏览量:0 次

                              本文由广东鲸弘科技有限公司提供惠州小程序开发 / 网站建设专业分享。

                              在PbootCMS开发中,导航栏是网站的核心组件,而{pboot:nav}标签是实现导航菜单最核心、最高效的标签——无需手动编写循环代码,即可快速输出一级、二级甚至多级导航菜单,同时支持当前页面菜单高亮、hover样式控制,适配各类网站的导航需求。本文全程实战,从基础用法到高级样式控制,手把手教你玩转{pboot:nav}标签,新手也能快速上手,所有代码可直接复制到模板中使用。

                              适用场景:PbootCMS网站导航栏开发(PC端/移动端通用)、多级菜单(一级导航+二级子菜单)开发、导航高亮样式定制;适配PbootCMS所有稳定版本,兼容官方默认模板及自定义模板,无需二次开发核心代码,仅需修改标签参数和CSS样式。

                              一、{pboot:nav}标签基础认知(必学)

                              {pboot:nav}是PbootCMS内置的导航专用标签,核心作用是“自动读取后台栏目数据,生成导航菜单”,支持多级菜单输出、样式自定义、高亮控制,无需手动拼接HTML代码,大幅提升开发效率。

                              1.1 标签核心特性

                              • 自动关联后台栏目:导航菜单数据直接来自【栏目管理】,添加、修改、删除栏目后,导航会自动同步更新,无需手动修改模板。

                              • 支持多级菜单:默认支持一级、二级菜单,通过参数配置可实现三级菜单输出,适配企业站、门户站等多栏目场景。

                              • 自带高亮逻辑:无需额外编写JS,标签可自动识别当前访问栏目,为当前栏目菜单添加高亮类,实现“当前页导航高亮”效果。

                              • 样式完全可控:可通过标签参数自定义HTML结构,配合CSS样式,实现任意风格的导航(如横向导航、纵向导航、下拉导航)。

                              1.2 标签基础语法

                              {pboot:nav}标签为闭合标签,核心语法格式如下,所有参数均为可选,新手可先使用默认参数,再逐步自定义:

                              {pboot:nav 
                                  type=1<!-- 菜单类型:1=横向导航,2=纵向导航,默认1 -->
                                  level=2<!-- 显示级数:1=仅一级,2=一级+二级,3=三级,默认2 -->
                                  cid=0    <!-- 起始栏目ID:0=所有顶级栏目,指定cid则从该栏目开始输出,默认0 -->
                                  class=nav  <!-- 导航外层容器class,用于CSS样式控制,默认nav -->
                                  current=current  <!-- 当前页高亮class,默认current -->
                                  subClass=subnav  <!-- 二级菜单外层容器class,默认subnav -->
                              }
                              <!-- 菜单内容模板(可自定义HTML结构) -->
                              <a href="[nav:url]" class="[nav:current]"&gt;[nav:name]&lt;/a&gt;
                              <!-- 二级菜单模板(若level≥2,需添加该模板) -->
                              {if [nav:haschild]}  <!-- 判断当前栏目是否有子栏目 -->
                              &lt;div class="[nav:subClass]"&gt;
                                  {nav:child}  <!-- 循环输出二级子栏目 -->
                                  <a href="[nav:child:url]" class="[nav:child:current]">[nav:child:name]</a>
                                  {/nav:child}
                              </div>
                              {/if}
                              {/pboot:nav}

                              注意1:标签内的参数需用空格分隔,参数值无需加引号(如level=2,而非level="2"),否则会导致标签失效。

                              注意2:菜单内容模板中的【[nav:url]】【[nav:name]】是内置变量,分别对应栏目路径和栏目名称,不可拼写错误,否则无法正常输出数据。

                              注意3:[nav:current]变量会自动判断当前栏目,若为当前访问栏目,输出标签参数中“current”的值(默认current),否则为空,用于高亮样式控制。

                              二、实战1:多级菜单输出(一级+二级,最常用)

                              最常见的导航场景是“一级导航+二级下拉菜单”,比如企业站的“首页、关于我们、产品中心、新闻动态、联系我们”,其中“产品中心”“新闻动态”包含二级子栏目。下面通过实战案例,实现该场景的菜单输出,步骤清晰可直接复用。

                              2.1 步骤1:后台栏目准备(必做)

                              导航菜单数据来自后台栏目,需先在后台创建对应栏目及子栏目,确保数据正确,步骤如下:

                              1. 登录PbootCMS后台,进入【栏目管理】→【添加栏目】,创建顶级栏目(一级导航),如“首页、关于我们、产品中心、新闻动态、联系我们”,栏目类型选择“栏目”,状态设置为“启用”。

                              2. 为需要二级子栏目的顶级栏目(如“产品中心”“新闻动态”)添加子栏目:选中“产品中心”,点击【添加子栏目】,创建“产品1、产品2、产品3”等二级栏目,状态同样设置为“启用”。

                              3. 排序:通过栏目列表的“排序”字段,调整一级、二级栏目的显示顺序(数字越小,显示越靠前),保存后,导航菜单会按排序顺序输出。

                              注意:若二级菜单无法显示,先检查二级栏目是否“启用”,且父栏目ID是否正确(子栏目父ID需对应顶级栏目ID),同时确保标签中level参数设置为2(默认即为2)。

                              2.2 步骤2:编写{pboot:nav}标签代码

                              打开PbootCMS模板文件(通常是header.html,导航栏一般在头部),找到导航栏对应的位置,删除原有默认导航代码,粘贴以下代码(已优化HTML结构,适配下拉菜单):

                              <!-- 导航栏外层容器 -->
                              <nav class="header-nav">
                                  {pboot:nav 
                                      type=1 
                                      level=2 
                                      class="nav-list" 
                                      current="active" 
                                      subClass="subnav-list"
                                  }
                                  <li class="nav-item">
                                      <a href="[nav:url]" class="[nav:current] nav-link"&gt;[nav:name]&lt;/a&gt;
                                      <!-- 二级菜单 -->
                                      {if [nav:haschild]}
                                      <ul class="[nav:subClass]">
                                          {nav:child}
                                          <li class="subnav-item">
                                              <a href="[nav:child:url]" class="[nav:child:current] subnav-link">[nav:child:name]</a>
                                          </li>
                                          {/nav:child}
                                      </ul>
                                      {/if}
                                  </li>
                                  {/pboot:nav}
                              </nav>

                              2.3 代码说明(新手必看)

                              • 外层<nav class="header-nav">:导航栏整体容器,用于控制导航的整体位置、宽度等样式。

                              • type=1:设置为横向导航,适合PC端顶部导航;若需要纵向导航(如侧边栏),改为type=2。

                              • level=2:显示一级+二级菜单,若仅需一级菜单,改为level=1。

                              • current="active":当前页高亮class设置为active,后续通过CSS控制高亮样式(可自定义class名称,如current、on等)。

                              • {if [nav:haschild]}:判断当前一级栏目是否有子栏目,有则显示二级菜单,无则不显示,避免空菜单。

                              • [nav:child:url]、[nav:child:name]:二级子栏目的路径和名称变量,与一级菜单的变量对应。

                              三、实战2:高亮样式控制(当前页+hover效果)

                              导航菜单的核心体验的是“当前页高亮”和“hover下拉”,通过CSS样式配合{pboot:nav}标签的高亮变量,即可实现,无需编写JS代码,下面是实战样式代码,可直接复制到模板的CSS文件中(如css/style.css)。

                              3.1 基础样式(横向导航,适配PC端)

                              /* 导航整体样式 */
                              .header-nav {
                                  width: 100%;
                                  background: #fff;
                                  box-shadow: 0 2px 8px rgba(0,0,0,0.1);
                              }
                              /* 一级菜单列表 */
                              .nav-list {
                                  display: flex; /* 横向排列 */
                                  justify-content: center; /* 水平居中 */
                                  margin: 0;
                                  padding: 0;
                                  list-style: none;
                              }
                              /* 一级菜单项 */
                              .nav-item {
                                  position: relative; /* 为二级菜单定位做准备 */
                                  margin: 0 20px;
                              }
                              /* 一级菜单链接 */
                              .nav-link {
                                  display: block;
                                  height: 60px;
                                  line-height: 60px;
                                  color: #333;
                                  text-decoration: none;
                                  font-size: 16px;
                                  padding: 0 10px;
                                  transition: all 0.3s;
                              }
                              /* 当前页高亮样式(对应标签中current="active") */
                              .nav-link.active {
                                  color: #2f80ed; /* 高亮颜色,可自定义 */
                                  border-bottom: 2px solid #2f80ed; /* 底部高亮线 */
                              }
                              /* 一级菜单hover效果 */
                              .nav-item:hover .nav-link {
                                  color: #2f80ed;
                              }
                              /* 二级菜单样式(下拉效果) */
                              .subnav-list {
                                  position: absolute;
                                  top: 60px; /* 与一级菜单高度一致,避免间隙 */
                                  left: 0;
                                  width: 180px;
                                  background: #fff;
                                  box-shadow: 0 2px 8px rgba(0,0,0,0.1);
                                  margin: 0;
                                  padding: 10px 0;
                                  list-style: none;
                                  display: none; /* 默认隐藏 */
                                  z-index: 999; /* 确保下拉菜单在最上层,不被其他元素遮挡 */
                              }
                              /* 一级菜单hover时,显示二级菜单 */
                              .nav-item:hover .subnav-list {
                                  display: block;
                              }
                              /* 二级菜单项 */
                              .subnav-item {
                                  padding: 0 15px;
                              }
                              /* 二级菜单链接 */
                              .subnav-link {
                                  display: block;
                                  height: 40px;
                                  line-height: 40px;
                                  color: #333;
                                  text-decoration: none;
                                  font-size: 14px;
                                  transition: all 0.3s;
                              }
                              /* 二级菜单hover效果 */
                              .subnav-item:hover .subnav-link {
                                  color: #2f80ed;
                                  padding-left: 5px; /* 轻微偏移,提升交互体验 */
                              }
                              /* 二级菜单当前页高亮 */
                              .subnav-link.active {
                                  color: #2f80ed;
                                  font-weight: 600;
                              }

                              3.2 样式说明与自定义

                              • 当前页高亮:通过.nav-link.active和.subnav-link.active控制,可修改color(文字颜色)、border-bottom(底部线条)、background(背景色)等,适配自己的网站风格。

                              • 下拉效果:通过position: absolute定位二级菜单,默认隐藏(display: none),一级菜单hover时显示(display: block),z-index: 999确保下拉菜单不被其他元素遮挡。

                              • 响应式适配:若需要适配移动端,可添加媒体查询(@media),将横向导航改为纵向导航,二级菜单改为展开式,后续可补充移动端适配代码。

                              注意1:CSS样式中的class名称,需与{pboot:nav}标签中的class、subClass参数一致(如标签中subClass="subnav-list",CSS中对应.subnav-list),否则样式无法生效。

                              注意2:若当前页高亮不生效,检查标签中current参数是否正确,且页面是否为栏目页(首页需单独设置,下文会讲解)。

                              四、进阶技巧(解决新手常见问题)

                              4.1 首页导航高亮设置

                              默认情况下,{pboot:nav}标签的高亮逻辑仅对“栏目页”生效,首页(index.html)的“首页”菜单不会自动高亮,需通过以下方法解决:

                              <!-- 首页导航单独处理,添加判断 -->
                              <nav class="header-nav">
                                  {pboot:nav 
                                      type=1 
                                      level=2 
                                      class="nav-list" 
                                      current="active" 
                                      subClass="subnav-list"
                                  }
                                  <li class="nav-item"&gt;
                                      <!-- 首页判断:若为首页,手动添加active类 -->
                                      {if $page == 'index'}
                                      <a href="[nav:url]" class="nav-link active">[nav:name]</a>
                                      {else}
                                      <a href="[nav:url]" class="[nav:current] nav-link">[nav:name]</a>
                                      {/if}
                                      <!-- 二级菜单(不变) -->
                                      {if [nav:haschild]}
                                      <ul class="[nav:subClass]">
                                          {nav:child}
                                          <li class="subnav-item">
                                              <a href="[nav:child:url]" class="[nav:child:current] subnav-link">[nav:child:name]</a>
                                          </li>
                                          {/nav:child}
                                      </ul>
                                      {/if}
                                  </li>
                                  {/pboot:nav}
                              </nav>

                              说明:{$page == 'index'}是PbootCMS内置判断,用于识别当前页面是否为首页,若是,则手动为“首页”菜单添加active类,实现首页高亮。

                              4.2 三级菜单输出(进阶需求)

                              若网站需要三级菜单(如“产品中心→产品分类→具体产品”),只需修改标签level参数为3,并添加三级菜单模板,代码示例如下:

                              {pboot:nav 
                                  type=1 
                                  level=3  <!-- 改为3,显示三级菜单 -->
                                  class="nav-list" 
                                  current="active" 
                                  subClass="subnav-list"
                                  subSubClass="subsubnav-list"  <!-- 三级菜单class,新增参数 -->
                              }
                              <li class="nav-item">
                                  <a href="[nav:url]" class="[nav:current] nav-link"&gt;[nav:name]&lt;/a&gt;
                                  <!-- 二级菜单 -->
                                  {if [nav:haschild]}
                                  <ul class="[nav:subClass]">
                                      {nav:child}
                                      <li class="subnav-item">
                                          <a href="[nav:child:url]" class="[nav:child:current] subnav-link">[nav:child:name]</a>
                                          <!-- 三级菜单 -->
                                          {if [nav:child:haschild]}  <!-- 判断二级栏目是否有子栏目 -->
                                          <ul class="[nav:subSubClass]">
                                              {nav:child:child}  <!-- 循环输出三级子栏目 -->
                                              <li class="subsubnav-item">
                                                  <a href="[nav:child:child:url]" class="[nav:child:child:current] subsubnav-link">[nav:child:child:name]</a>
                                              </li>
                                              {/nav:child:child}
                                          </ul>
                                          {/if}
                                      </li>
                                      {/nav:child}
                                  </ul>
                                  {/if}
                              </li>
                              {/pboot:nav}

                              说明:新增subSubClass参数,用于定义三级菜单的class,同时通过{nav:child:haschild}判断二级栏目是否有子栏目,{nav:child:child}循环输出三级菜单,配合对应的CSS样式即可实现三级下拉效果。

                              4.3 隐藏指定栏目(无需删除后台栏目)

                              若后台某些栏目不需要在导航中显示(如“测试栏目”),无需删除栏目,可通过标签参数cid排除,或在模板中添加判断隐藏,示例如下:

                              // 方法1:通过cid参数排除(推荐,直接不输出该栏目)
                              {pboot:nav cid="1,2,3" level=2}  // 仅输出cid为1、2、3的栏目,其他栏目不显示
                              // 方法2:模板中添加判断,隐藏指定cid的栏目
                              {pboot:nav level=2}
                              <li class="nav-item">
                                  {if [nav:cid] != 5}  // 隐藏cid为5的栏目
                                  <a href="[nav:url]" class="[nav:current] nav-link"&gt;[nav:name]&lt;/a&gt;
                                  {/if}
                                  <!-- 二级菜单 -->
                                  {if [nav:haschild] && [nav:cid] != 5}
                                  <ul class="[nav:subClass]">
                                      {nav:child}
                                      <li class="subnav-item">
                                          <a href="[nav:child:url]" class="[nav:child:current] subnav-link">[nav:child:name]</a>
                                      </li>
                                      {/nav:child}
                                  </ul>
                                  {/if}
                              </li>
                              {/pboot:nav}

                              五、常见问题汇总(避坑指南)

                              问题1:{pboot:nav}标签不输出菜单,页面显示空白?

                              解决方法:1. 检查后台栏目是否“启用”,且父栏目ID设置正确;2. 检查标签语法,确保参数无引号、变量拼写正确(如[nav:url]不可写成[nav:Url],区分大小写);3. 检查标签是否闭合({pboot:nav}和{/pboot:nav}必须成对出现);4. 清除网站缓存(后台【系统设置】→【清除缓存】)后重试。

                              问题2:二级菜单无法显示,仅显示一级菜单?

                              解决方法:1. 检查标签level参数是否为2(默认2,若改为1则不显示二级菜单);2. 检查二级栏目是否“启用”,且父栏目ID对应正确;3. 检查{if [nav:haschild]}判断是否存在,且模板结构正确(二级菜单模板需放在该判断内)。

                              问题3:当前页导航不高亮,active类未添加?

                              解决方法:1. 检查标签current参数是否正确(如current="active"),且CSS中对应class样式存在;2. 首页需添加{$page == 'index'}判断,手动添加active类;3. 检查当前页面是否为栏目页(若为自定义页面,需手动设置高亮,可通过URL参数判断)。

                              问题4:二级菜单被其他元素遮挡,显示不全?

                              解决方法:为二级菜单添加z-index: 999(确保在最上层),同时检查父元素(.nav-item)是否设置position: relative(二级菜单position: absolute需要依赖父元素定位)。

                              问题5:导航菜单横向排列错乱,换行显示?

                              解决方法:检查.nav-list的display: flex是否生效,若不生效,可能是浏览器兼容问题,可添加兼容代码(如display: -webkit-box; display: -ms-flexbox;),同时调整.nav-item的margin(减少间距),确保所有一级菜单能在一行显示。

                              六、总结

                              {pboot:nav}标签是PbootCMS导航开发的核心工具,核心优势是“自动同步后台栏目、无需手动循环、自带高亮逻辑”,实战中只需掌握3个关键点:一是正确配置标签参数(type、level、current等),二是编写合理的HTML模板结构,三是配合CSS样式实现高亮和下拉效果。

                              本文的代码可直接复制复用,新手可先按教程完成一级+二级菜单的输出和高亮控制,再根据自身需求,调整样式、添加三级菜单或隐藏指定栏目。后续开发中,无论栏目如何修改,只需在后台调整,导航菜单会自动同步,大幅提升开发和维护效率。

                              若需要适配移动端导航(如汉堡菜单),可在本文代码基础上添加媒体查询和简单JS,实现移动端下拉展开效果,后续可补充相关实操。

                              推荐专题
                              导航栏目标签{pboot:nav}实战:多级菜单输出与高亮样式控制
                              PbootCMS开发环境配置:Docker一键搭建PHP 7.4 + Nginx + MySQL开发栈
                              PbootCMS API接口开启配置教程,新手也能快速上手
                              PbootCMS API接口功能开发实操教程
                              pbootcms开源系统如何做好防护和配置宝塔服务器最安全
                              用PbootCms API接口实现Ajax无刷新分页 实现 点击加载更多 功能
                              Swiper轮播图视频加图片混合,完美解决方法,
                              pbootcms pboot:nav 判断没有子类得时候显示同级栏目
                              PbootCMS后台增加自定义字段搜索解决办法
                              pbootcms 上传的图片自动转换webp格式 附源码教程
                              pbootcms后台自定义字段多图上传 不能多图拖动解决办法
                              小程序分包加载开发:突破 2M 限制 + 首屏加载提速 50% 方案
                              响应式网站开发避坑:viewport 设置 + 媒体查询 + 适配测试方法
                              网站安全开发指南:XSS/CSRF 防护 + SQL 注入拦截实战
                              用PbootCms扩展定制一个简单天气预报小插件
                              有帮助赞一下(0)
                              没帮助联系客服
                              没帮助联系客服
                              上一篇:PbootCMS开发环境配置:Docker一键搭建PHP 7.4 + Nginx + MySQL开发栈 下一篇:没有了!
                              返回列表
                              最新阅读
                              • 分享一条宝塔PBOOTCMS自动清理rumtime缓存目录的SHELL脚本
                                2025-08-29
                                332
                              • pbootcms模板文章列表序号怎么调用标签?
                                2025-08-29
                                71
                              • PbootCms支持阿里云OSS插件和七牛云存储插件
                                2025-09-02
                                128
                              • pbootcms网站上线后如何做好防护才能不被黑或者被注入
                                2025-09-08
                                441
                              • pbootcms模板栏目页如何调用当前栏目的文章
                                2025-08-20
                                84
                              • Pbootcms留言“提交成功”的默认提示语修改
                                2025-08-20
                                117
                              • pbootcms模板调用导航的3种方法
                                2025-08-20
                                130
                              • pbootcms标签分页中url会无限重复叠加的解决方案
                                2025-09-01
                                65
                              • 用PbootCms API接口实现Ajax无刷新分页 实现 点击加载更多 功能
                                2026-01-29
                                59
                              • 小程序分包加载开发:突破 2M 限制 + 首屏加载提速 50% 方案
                                2025-12-19
                                114
                              AI 智能助理
                              您好!有什么可以帮助您的吗?
                              • 稳定
                                多年经验,服务稳定
                              • 贴心
                                全国7*24小时客服热线
                              • 专业
                                产品经理在线技术支持
                              • 快速
                                快速评估,快速执行
                              • 承诺
                                有目共睹,我们选声誉
                              咨询热线:
                              电话:188-2547-1709建站、小程序业务
                              Q Q: 609503512 邮箱:frank@vi23.com
                              地址:广东省惠州市惠城区鹅岭南路5号联通大酒店大厦2楼
                              王飞微信 王经理
                              建站、小程序业务
                              王飞微信 王经理
                              商标、版权注册业务
                              热门服务
                                {pboot:nav parent=46}
                              • 解决方案
                              • 实战:多级菜单输出与高亮样式控制');} else {$('.dq_section .content').append('-正文');}

                                导航栏目标签{pboot:nav}实战:多级菜单输出与高亮样式控制

                                发布人:鲸弘科技
                                发布时间:2026-04-21
                                浏览量:0 次

                                本文由广东鲸弘科技有限公司提供惠州小程序开发 / 网站建设专业分享。

                                在PbootCMS开发中,导航栏是网站的核心组件,而{pboot:nav}标签是实现导航菜单最核心、最高效的标签——无需手动编写循环代码,即可快速输出一级、二级甚至多级导航菜单,同时支持当前页面菜单高亮、hover样式控制,适配各类网站的导航需求。本文全程实战,从基础用法到高级样式控制,手把手教你玩转{pboot:nav}标签,新手也能快速上手,所有代码可直接复制到模板中使用。

                                适用场景:PbootCMS网站导航栏开发(PC端/移动端通用)、多级菜单(一级导航+二级子菜单)开发、导航高亮样式定制;适配PbootCMS所有稳定版本,兼容官方默认模板及自定义模板,无需二次开发核心代码,仅需修改标签参数和CSS样式。

                                一、{pboot:nav}标签基础认知(必学)

                                {pboot:nav}是PbootCMS内置的导航专用标签,核心作用是“自动读取后台栏目数据,生成导航菜单”,支持多级菜单输出、样式自定义、高亮控制,无需手动拼接HTML代码,大幅提升开发效率。

                                1.1 标签核心特性

                                • 自动关联后台栏目:导航菜单数据直接来自【栏目管理】,添加、修改、删除栏目后,导航会自动同步更新,无需手动修改模板。

                                • 支持多级菜单:默认支持一级、二级菜单,通过参数配置可实现三级菜单输出,适配企业站、门户站等多栏目场景。

                                • 自带高亮逻辑:无需额外编写JS,标签可自动识别当前访问栏目,为当前栏目菜单添加高亮类,实现“当前页导航高亮”效果。

                                • 样式完全可控:可通过标签参数自定义HTML结构,配合CSS样式,实现任意风格的导航(如横向导航、纵向导航、下拉导航)。

                                1.2 标签基础语法

                                {pboot:nav}标签为闭合标签,核心语法格式如下,所有参数均为可选,新手可先使用默认参数,再逐步自定义:

                                {pboot:nav 
                                    type=1<!-- 菜单类型:1=横向导航,2=纵向导航,默认1 -->
                                    level=2<!-- 显示级数:1=仅一级,2=一级+二级,3=三级,默认2 -->
                                    cid=0    <!-- 起始栏目ID:0=所有顶级栏目,指定cid则从该栏目开始输出,默认0 -->
                                    class=nav  <!-- 导航外层容器class,用于CSS样式控制,默认nav -->
                                    current=current  <!-- 当前页高亮class,默认current -->
                                    subClass=subnav  <!-- 二级菜单外层容器class,默认subnav -->
                                }
                                <!-- 菜单内容模板(可自定义HTML结构) -->
                                <a href="[nav:url]" class="[nav:current]"&gt;[nav:name]&lt;/a&gt;
                                <!-- 二级菜单模板(若level≥2,需添加该模板) -->
                                {if [nav:haschild]}  <!-- 判断当前栏目是否有子栏目 -->
                                &lt;div class="[nav:subClass]"&gt;
                                    {nav:child}  <!-- 循环输出二级子栏目 -->
                                    <a href="[nav:child:url]" class="[nav:child:current]">[nav:child:name]</a>
                                    {/nav:child}
                                </div>
                                {/if}
                                {/pboot:nav}

                                注意1:标签内的参数需用空格分隔,参数值无需加引号(如level=2,而非level="2"),否则会导致标签失效。

                                注意2:菜单内容模板中的【[nav:url]】【[nav:name]】是内置变量,分别对应栏目路径和栏目名称,不可拼写错误,否则无法正常输出数据。

                                注意3:[nav:current]变量会自动判断当前栏目,若为当前访问栏目,输出标签参数中“current”的值(默认current),否则为空,用于高亮样式控制。

                                二、实战1:多级菜单输出(一级+二级,最常用)

                                最常见的导航场景是“一级导航+二级下拉菜单”,比如企业站的“首页、关于我们、产品中心、新闻动态、联系我们”,其中“产品中心”“新闻动态”包含二级子栏目。下面通过实战案例,实现该场景的菜单输出,步骤清晰可直接复用。

                                2.1 步骤1:后台栏目准备(必做)

                                导航菜单数据来自后台栏目,需先在后台创建对应栏目及子栏目,确保数据正确,步骤如下:

                                1. 登录PbootCMS后台,进入【栏目管理】→【添加栏目】,创建顶级栏目(一级导航),如“首页、关于我们、产品中心、新闻动态、联系我们”,栏目类型选择“栏目”,状态设置为“启用”。

                                2. 为需要二级子栏目的顶级栏目(如“产品中心”“新闻动态”)添加子栏目:选中“产品中心”,点击【添加子栏目】,创建“产品1、产品2、产品3”等二级栏目,状态同样设置为“启用”。

                                3. 排序:通过栏目列表的“排序”字段,调整一级、二级栏目的显示顺序(数字越小,显示越靠前),保存后,导航菜单会按排序顺序输出。

                                注意:若二级菜单无法显示,先检查二级栏目是否“启用”,且父栏目ID是否正确(子栏目父ID需对应顶级栏目ID),同时确保标签中level参数设置为2(默认即为2)。

                                2.2 步骤2:编写{pboot:nav}标签代码

                                打开PbootCMS模板文件(通常是header.html,导航栏一般在头部),找到导航栏对应的位置,删除原有默认导航代码,粘贴以下代码(已优化HTML结构,适配下拉菜单):

                                <!-- 导航栏外层容器 -->
                                <nav class="header-nav">
                                    {pboot:nav 
                                        type=1 
                                        level=2 
                                        class="nav-list" 
                                        current="active" 
                                        subClass="subnav-list"
                                    }
                                    <li class="nav-item">
                                        <a href="[nav:url]" class="[nav:current] nav-link"&gt;[nav:name]&lt;/a&gt;
                                        <!-- 二级菜单 -->
                                        {if [nav:haschild]}
                                        <ul class="[nav:subClass]">
                                            {nav:child}
                                            <li class="subnav-item">
                                                <a href="[nav:child:url]" class="[nav:child:current] subnav-link">[nav:child:name]</a>
                                            </li>
                                            {/nav:child}
                                        </ul>
                                        {/if}
                                    </li>
                                    {/pboot:nav}
                                </nav>

                                2.3 代码说明(新手必看)

                                • 外层<nav class="header-nav">:导航栏整体容器,用于控制导航的整体位置、宽度等样式。

                                • type=1:设置为横向导航,适合PC端顶部导航;若需要纵向导航(如侧边栏),改为type=2。

                                • level=2:显示一级+二级菜单,若仅需一级菜单,改为level=1。

                                • current="active":当前页高亮class设置为active,后续通过CSS控制高亮样式(可自定义class名称,如current、on等)。

                                • {if [nav:haschild]}:判断当前一级栏目是否有子栏目,有则显示二级菜单,无则不显示,避免空菜单。

                                • [nav:child:url]、[nav:child:name]:二级子栏目的路径和名称变量,与一级菜单的变量对应。

                                三、实战2:高亮样式控制(当前页+hover效果)

                                导航菜单的核心体验的是“当前页高亮”和“hover下拉”,通过CSS样式配合{pboot:nav}标签的高亮变量,即可实现,无需编写JS代码,下面是实战样式代码,可直接复制到模板的CSS文件中(如css/style.css)。

                                3.1 基础样式(横向导航,适配PC端)

                                /* 导航整体样式 */
                                .header-nav {
                                    width: 100%;
                                    background: #fff;
                                    box-shadow: 0 2px 8px rgba(0,0,0,0.1);
                                }
                                /* 一级菜单列表 */
                                .nav-list {
                                    display: flex; /* 横向排列 */
                                    justify-content: center; /* 水平居中 */
                                    margin: 0;
                                    padding: 0;
                                    list-style: none;
                                }
                                /* 一级菜单项 */
                                .nav-item {
                                    position: relative; /* 为二级菜单定位做准备 */
                                    margin: 0 20px;
                                }
                                /* 一级菜单链接 */
                                .nav-link {
                                    display: block;
                                    height: 60px;
                                    line-height: 60px;
                                    color: #333;
                                    text-decoration: none;
                                    font-size: 16px;
                                    padding: 0 10px;
                                    transition: all 0.3s;
                                }
                                /* 当前页高亮样式(对应标签中current="active") */
                                .nav-link.active {
                                    color: #2f80ed; /* 高亮颜色,可自定义 */
                                    border-bottom: 2px solid #2f80ed; /* 底部高亮线 */
                                }
                                /* 一级菜单hover效果 */
                                .nav-item:hover .nav-link {
                                    color: #2f80ed;
                                }
                                /* 二级菜单样式(下拉效果) */
                                .subnav-list {
                                    position: absolute;
                                    top: 60px; /* 与一级菜单高度一致,避免间隙 */
                                    left: 0;
                                    width: 180px;
                                    background: #fff;
                                    box-shadow: 0 2px 8px rgba(0,0,0,0.1);
                                    margin: 0;
                                    padding: 10px 0;
                                    list-style: none;
                                    display: none; /* 默认隐藏 */
                                    z-index: 999; /* 确保下拉菜单在最上层,不被其他元素遮挡 */
                                }
                                /* 一级菜单hover时,显示二级菜单 */
                                .nav-item:hover .subnav-list {
                                    display: block;
                                }
                                /* 二级菜单项 */
                                .subnav-item {
                                    padding: 0 15px;
                                }
                                /* 二级菜单链接 */
                                .subnav-link {
                                    display: block;
                                    height: 40px;
                                    line-height: 40px;
                                    color: #333;
                                    text-decoration: none;
                                    font-size: 14px;
                                    transition: all 0.3s;
                                }
                                /* 二级菜单hover效果 */
                                .subnav-item:hover .subnav-link {
                                    color: #2f80ed;
                                    padding-left: 5px; /* 轻微偏移,提升交互体验 */
                                }
                                /* 二级菜单当前页高亮 */
                                .subnav-link.active {
                                    color: #2f80ed;
                                    font-weight: 600;
                                }

                                3.2 样式说明与自定义

                                • 当前页高亮:通过.nav-link.active和.subnav-link.active控制,可修改color(文字颜色)、border-bottom(底部线条)、background(背景色)等,适配自己的网站风格。

                                • 下拉效果:通过position: absolute定位二级菜单,默认隐藏(display: none),一级菜单hover时显示(display: block),z-index: 999确保下拉菜单不被其他元素遮挡。

                                • 响应式适配:若需要适配移动端,可添加媒体查询(@media),将横向导航改为纵向导航,二级菜单改为展开式,后续可补充移动端适配代码。

                                注意1:CSS样式中的class名称,需与{pboot:nav}标签中的class、subClass参数一致(如标签中subClass="subnav-list",CSS中对应.subnav-list),否则样式无法生效。

                                注意2:若当前页高亮不生效,检查标签中current参数是否正确,且页面是否为栏目页(首页需单独设置,下文会讲解)。

                                四、进阶技巧(解决新手常见问题)

                                4.1 首页导航高亮设置

                                默认情况下,{pboot:nav}标签的高亮逻辑仅对“栏目页”生效,首页(index.html)的“首页”菜单不会自动高亮,需通过以下方法解决:

                                <!-- 首页导航单独处理,添加判断 -->
                                <nav class="header-nav">
                                    {pboot:nav 
                                        type=1 
                                        level=2 
                                        class="nav-list" 
                                        current="active" 
                                        subClass="subnav-list"
                                    }
                                    <li class="nav-item"&gt;
                                        <!-- 首页判断:若为首页,手动添加active类 -->
                                        {if $page == 'index'}
                                        <a href="[nav:url]" class="nav-link active">[nav:name]</a>
                                        {else}
                                        <a href="[nav:url]" class="[nav:current] nav-link">[nav:name]</a>
                                        {/if}
                                        <!-- 二级菜单(不变) -->
                                        {if [nav:haschild]}
                                        <ul class="[nav:subClass]">
                                            {nav:child}
                                            <li class="subnav-item">
                                                <a href="[nav:child:url]" class="[nav:child:current] subnav-link">[nav:child:name]</a>
                                            </li>
                                            {/nav:child}
                                        </ul>
                                        {/if}
                                    </li>
                                    {/pboot:nav}
                                </nav>

                                说明:{$page == 'index'}是PbootCMS内置判断,用于识别当前页面是否为首页,若是,则手动为“首页”菜单添加active类,实现首页高亮。

                                4.2 三级菜单输出(进阶需求)

                                若网站需要三级菜单(如“产品中心→产品分类→具体产品”),只需修改标签level参数为3,并添加三级菜单模板,代码示例如下:

                                {pboot:nav 
                                    type=1 
                                    level=3  <!-- 改为3,显示三级菜单 -->
                                    class="nav-list" 
                                    current="active" 
                                    subClass="subnav-list"
                                    subSubClass="subsubnav-list"  <!-- 三级菜单class,新增参数 -->
                                }
                                <li class="nav-item">
                                    <a href="[nav:url]" class="[nav:current] nav-link"&gt;[nav:name]&lt;/a&gt;
                                    <!-- 二级菜单 -->
                                    {if [nav:haschild]}
                                    <ul class="[nav:subClass]">
                                        {nav:child}
                                        <li class="subnav-item">
                                            <a href="[nav:child:url]" class="[nav:child:current] subnav-link">[nav:child:name]</a>
                                            <!-- 三级菜单 -->
                                            {if [nav:child:haschild]}  <!-- 判断二级栏目是否有子栏目 -->
                                            <ul class="[nav:subSubClass]">
                                                {nav:child:child}  <!-- 循环输出三级子栏目 -->
                                                <li class="subsubnav-item">
                                                    <a href="[nav:child:child:url]" class="[nav:child:child:current] subsubnav-link">[nav:child:child:name]</a>
                                                </li>
                                                {/nav:child:child}
                                            </ul>
                                            {/if}
                                        </li>
                                        {/nav:child}
                                    </ul>
                                    {/if}
                                </li>
                                {/pboot:nav}

                                说明:新增subSubClass参数,用于定义三级菜单的class,同时通过{nav:child:haschild}判断二级栏目是否有子栏目,{nav:child:child}循环输出三级菜单,配合对应的CSS样式即可实现三级下拉效果。

                                4.3 隐藏指定栏目(无需删除后台栏目)

                                若后台某些栏目不需要在导航中显示(如“测试栏目”),无需删除栏目,可通过标签参数cid排除,或在模板中添加判断隐藏,示例如下:

                                // 方法1:通过cid参数排除(推荐,直接不输出该栏目)
                                {pboot:nav cid="1,2,3" level=2}  // 仅输出cid为1、2、3的栏目,其他栏目不显示
                                // 方法2:模板中添加判断,隐藏指定cid的栏目
                                {pboot:nav level=2}
                                <li class="nav-item">
                                    {if [nav:cid] != 5}  // 隐藏cid为5的栏目
                                    <a href="[nav:url]" class="[nav:current] nav-link"&gt;[nav:name]&lt;/a&gt;
                                    {/if}
                                    <!-- 二级菜单 -->
                                    {if [nav:haschild] && [nav:cid] != 5}
                                    <ul class="[nav:subClass]">
                                        {nav:child}
                                        <li class="subnav-item">
                                            <a href="[nav:child:url]" class="[nav:child:current] subnav-link">[nav:child:name]</a>
                                        </li>
                                        {/nav:child}
                                    </ul>
                                    {/if}
                                </li>
                                {/pboot:nav}

                                五、常见问题汇总(避坑指南)

                                问题1:{pboot:nav}标签不输出菜单,页面显示空白?

                                解决方法:1. 检查后台栏目是否“启用”,且父栏目ID设置正确;2. 检查标签语法,确保参数无引号、变量拼写正确(如[nav:url]不可写成[nav:Url],区分大小写);3. 检查标签是否闭合({pboot:nav}和{/pboot:nav}必须成对出现);4. 清除网站缓存(后台【系统设置】→【清除缓存】)后重试。

                                问题2:二级菜单无法显示,仅显示一级菜单?

                                解决方法:1. 检查标签level参数是否为2(默认2,若改为1则不显示二级菜单);2. 检查二级栏目是否“启用”,且父栏目ID对应正确;3. 检查{if [nav:haschild]}判断是否存在,且模板结构正确(二级菜单模板需放在该判断内)。

                                问题3:当前页导航不高亮,active类未添加?

                                解决方法:1. 检查标签current参数是否正确(如current="active"),且CSS中对应class样式存在;2. 首页需添加{$page == 'index'}判断,手动添加active类;3. 检查当前页面是否为栏目页(若为自定义页面,需手动设置高亮,可通过URL参数判断)。

                                问题4:二级菜单被其他元素遮挡,显示不全?

                                解决方法:为二级菜单添加z-index: 999(确保在最上层),同时检查父元素(.nav-item)是否设置position: relative(二级菜单position: absolute需要依赖父元素定位)。

                                问题5:导航菜单横向排列错乱,换行显示?

                                解决方法:检查.nav-list的display: flex是否生效,若不生效,可能是浏览器兼容问题,可添加兼容代码(如display: -webkit-box; display: -ms-flexbox;),同时调整.nav-item的margin(减少间距),确保所有一级菜单能在一行显示。

                                六、总结

                                {pboot:nav}标签是PbootCMS导航开发的核心工具,核心优势是“自动同步后台栏目、无需手动循环、自带高亮逻辑”,实战中只需掌握3个关键点:一是正确配置标签参数(type、level、current等),二是编写合理的HTML模板结构,三是配合CSS样式实现高亮和下拉效果。

                                本文的代码可直接复制复用,新手可先按教程完成一级+二级菜单的输出和高亮控制,再根据自身需求,调整样式、添加三级菜单或隐藏指定栏目。后续开发中,无论栏目如何修改,只需在后台调整,导航菜单会自动同步,大幅提升开发和维护效率。

                                若需要适配移动端导航(如汉堡菜单),可在本文代码基础上添加媒体查询和简单JS,实现移动端下拉展开效果,后续可补充相关实操。

                                推荐专题
                                导航栏目标签{pboot:nav}实战:多级菜单输出与高亮样式控制
                                PbootCMS开发环境配置:Docker一键搭建PHP 7.4 + Nginx + MySQL开发栈
                                PbootCMS API接口开启配置教程,新手也能快速上手
                                PbootCMS API接口功能开发实操教程
                                pbootcms开源系统如何做好防护和配置宝塔服务器最安全
                                用PbootCms API接口实现Ajax无刷新分页 实现 点击加载更多 功能
                                Swiper轮播图视频加图片混合,完美解决方法,
                                pbootcms pboot:nav 判断没有子类得时候显示同级栏目
                                PbootCMS后台增加自定义字段搜索解决办法
                                pbootcms 上传的图片自动转换webp格式 附源码教程
                                pbootcms后台自定义字段多图上传 不能多图拖动解决办法
                                小程序分包加载开发:突破 2M 限制 + 首屏加载提速 50% 方案
                                响应式网站开发避坑:viewport 设置 + 媒体查询 + 适配测试方法
                                网站安全开发指南:XSS/CSRF 防护 + SQL 注入拦截实战
                                用PbootCms扩展定制一个简单天气预报小插件
                                有帮助赞一下(0)
                                没帮助联系客服
                                没帮助联系客服
                                上一篇:PbootCMS开发环境配置:Docker一键搭建PHP 7.4 + Nginx + MySQL开发栈 下一篇:没有了!
                                返回列表
                                最新阅读
                                • 分享一条宝塔PBOOTCMS自动清理rumtime缓存目录的SHELL脚本
                                  2025-08-29
                                  332
                                • pbootcms模板文章列表序号怎么调用标签?
                                  2025-08-29
                                  71
                                • PbootCms支持阿里云OSS插件和七牛云存储插件
                                  2025-09-02
                                  128
                                • pbootcms网站上线后如何做好防护才能不被黑或者被注入
                                  2025-09-08
                                  441
                                • pbootcms模板栏目页如何调用当前栏目的文章
                                  2025-08-20
                                  84
                                • Pbootcms留言“提交成功”的默认提示语修改
                                  2025-08-20
                                  117
                                • pbootcms模板调用导航的3种方法
                                  2025-08-20
                                  130
                                • pbootcms标签分页中url会无限重复叠加的解决方案
                                  2025-09-01
                                  65
                                • 用PbootCms API接口实现Ajax无刷新分页 实现 点击加载更多 功能
                                  2026-01-29
                                  59
                                • 小程序分包加载开发:突破 2M 限制 + 首屏加载提速 50% 方案
                                  2025-12-19
                                  114
                                AI 智能助理
                                您好!有什么可以帮助您的吗?
                                • 稳定
                                  多年经验,服务稳定
                                • 贴心
                                  全国7*24小时客服热线
                                • 专业
                                  产品经理在线技术支持
                                • 快速
                                  快速评估,快速执行
                                • 承诺
                                  有目共睹,我们选声誉
                                咨询热线:
                                电话:188-2547-1709建站、小程序业务
                                Q Q: 609503512 邮箱:frank@vi23.com
                                地址:广东省惠州市惠城区鹅岭南路5号联通大酒店大厦2楼
                                王飞微信 王经理
                                建站、小程序业务
                                王飞微信 王经理
                                商标、版权注册业务
                                热门服务
                                  {pboot:nav parent=46}
                                • 服务支持
                                • 实战:多级菜单输出与高亮样式控制');} else {$('.dq_section .content').append('-正文');}

                                  导航栏目标签{pboot:nav}实战:多级菜单输出与高亮样式控制

                                  发布人:鲸弘科技
                                  发布时间:2026-04-21
                                  浏览量:0 次

                                  本文由广东鲸弘科技有限公司提供惠州小程序开发 / 网站建设专业分享。

                                  在PbootCMS开发中,导航栏是网站的核心组件,而{pboot:nav}标签是实现导航菜单最核心、最高效的标签——无需手动编写循环代码,即可快速输出一级、二级甚至多级导航菜单,同时支持当前页面菜单高亮、hover样式控制,适配各类网站的导航需求。本文全程实战,从基础用法到高级样式控制,手把手教你玩转{pboot:nav}标签,新手也能快速上手,所有代码可直接复制到模板中使用。

                                  适用场景:PbootCMS网站导航栏开发(PC端/移动端通用)、多级菜单(一级导航+二级子菜单)开发、导航高亮样式定制;适配PbootCMS所有稳定版本,兼容官方默认模板及自定义模板,无需二次开发核心代码,仅需修改标签参数和CSS样式。

                                  一、{pboot:nav}标签基础认知(必学)

                                  {pboot:nav}是PbootCMS内置的导航专用标签,核心作用是“自动读取后台栏目数据,生成导航菜单”,支持多级菜单输出、样式自定义、高亮控制,无需手动拼接HTML代码,大幅提升开发效率。

                                  1.1 标签核心特性

                                  • 自动关联后台栏目:导航菜单数据直接来自【栏目管理】,添加、修改、删除栏目后,导航会自动同步更新,无需手动修改模板。

                                  • 支持多级菜单:默认支持一级、二级菜单,通过参数配置可实现三级菜单输出,适配企业站、门户站等多栏目场景。

                                  • 自带高亮逻辑:无需额外编写JS,标签可自动识别当前访问栏目,为当前栏目菜单添加高亮类,实现“当前页导航高亮”效果。

                                  • 样式完全可控:可通过标签参数自定义HTML结构,配合CSS样式,实现任意风格的导航(如横向导航、纵向导航、下拉导航)。

                                  1.2 标签基础语法

                                  {pboot:nav}标签为闭合标签,核心语法格式如下,所有参数均为可选,新手可先使用默认参数,再逐步自定义:

                                  {pboot:nav 
                                      type=1<!-- 菜单类型:1=横向导航,2=纵向导航,默认1 -->
                                      level=2<!-- 显示级数:1=仅一级,2=一级+二级,3=三级,默认2 -->
                                      cid=0    <!-- 起始栏目ID:0=所有顶级栏目,指定cid则从该栏目开始输出,默认0 -->
                                      class=nav  <!-- 导航外层容器class,用于CSS样式控制,默认nav -->
                                      current=current  <!-- 当前页高亮class,默认current -->
                                      subClass=subnav  <!-- 二级菜单外层容器class,默认subnav -->
                                  }
                                  <!-- 菜单内容模板(可自定义HTML结构) -->
                                  <a href="[nav:url]" class="[nav:current]"&gt;[nav:name]&lt;/a&gt;
                                  <!-- 二级菜单模板(若level≥2,需添加该模板) -->
                                  {if [nav:haschild]}  <!-- 判断当前栏目是否有子栏目 -->
                                  &lt;div class="[nav:subClass]"&gt;
                                      {nav:child}  <!-- 循环输出二级子栏目 -->
                                      <a href="[nav:child:url]" class="[nav:child:current]">[nav:child:name]</a>
                                      {/nav:child}
                                  </div>
                                  {/if}
                                  {/pboot:nav}

                                  注意1:标签内的参数需用空格分隔,参数值无需加引号(如level=2,而非level="2"),否则会导致标签失效。

                                  注意2:菜单内容模板中的【[nav:url]】【[nav:name]】是内置变量,分别对应栏目路径和栏目名称,不可拼写错误,否则无法正常输出数据。

                                  注意3:[nav:current]变量会自动判断当前栏目,若为当前访问栏目,输出标签参数中“current”的值(默认current),否则为空,用于高亮样式控制。

                                  二、实战1:多级菜单输出(一级+二级,最常用)

                                  最常见的导航场景是“一级导航+二级下拉菜单”,比如企业站的“首页、关于我们、产品中心、新闻动态、联系我们”,其中“产品中心”“新闻动态”包含二级子栏目。下面通过实战案例,实现该场景的菜单输出,步骤清晰可直接复用。

                                  2.1 步骤1:后台栏目准备(必做)

                                  导航菜单数据来自后台栏目,需先在后台创建对应栏目及子栏目,确保数据正确,步骤如下:

                                  1. 登录PbootCMS后台,进入【栏目管理】→【添加栏目】,创建顶级栏目(一级导航),如“首页、关于我们、产品中心、新闻动态、联系我们”,栏目类型选择“栏目”,状态设置为“启用”。

                                  2. 为需要二级子栏目的顶级栏目(如“产品中心”“新闻动态”)添加子栏目:选中“产品中心”,点击【添加子栏目】,创建“产品1、产品2、产品3”等二级栏目,状态同样设置为“启用”。

                                  3. 排序:通过栏目列表的“排序”字段,调整一级、二级栏目的显示顺序(数字越小,显示越靠前),保存后,导航菜单会按排序顺序输出。

                                  注意:若二级菜单无法显示,先检查二级栏目是否“启用”,且父栏目ID是否正确(子栏目父ID需对应顶级栏目ID),同时确保标签中level参数设置为2(默认即为2)。

                                  2.2 步骤2:编写{pboot:nav}标签代码

                                  打开PbootCMS模板文件(通常是header.html,导航栏一般在头部),找到导航栏对应的位置,删除原有默认导航代码,粘贴以下代码(已优化HTML结构,适配下拉菜单):

                                  <!-- 导航栏外层容器 -->
                                  <nav class="header-nav">
                                      {pboot:nav 
                                          type=1 
                                          level=2 
                                          class="nav-list" 
                                          current="active" 
                                          subClass="subnav-list"
                                      }
                                      <li class="nav-item">
                                          <a href="[nav:url]" class="[nav:current] nav-link"&gt;[nav:name]&lt;/a&gt;
                                          <!-- 二级菜单 -->
                                          {if [nav:haschild]}
                                          <ul class="[nav:subClass]">
                                              {nav:child}
                                              <li class="subnav-item">
                                                  <a href="[nav:child:url]" class="[nav:child:current] subnav-link">[nav:child:name]</a>
                                              </li>
                                              {/nav:child}
                                          </ul>
                                          {/if}
                                      </li>
                                      {/pboot:nav}
                                  </nav>

                                  2.3 代码说明(新手必看)

                                  • 外层<nav class="header-nav">:导航栏整体容器,用于控制导航的整体位置、宽度等样式。

                                  • type=1:设置为横向导航,适合PC端顶部导航;若需要纵向导航(如侧边栏),改为type=2。

                                  • level=2:显示一级+二级菜单,若仅需一级菜单,改为level=1。

                                  • current="active":当前页高亮class设置为active,后续通过CSS控制高亮样式(可自定义class名称,如current、on等)。

                                  • {if [nav:haschild]}:判断当前一级栏目是否有子栏目,有则显示二级菜单,无则不显示,避免空菜单。

                                  • [nav:child:url]、[nav:child:name]:二级子栏目的路径和名称变量,与一级菜单的变量对应。

                                  三、实战2:高亮样式控制(当前页+hover效果)

                                  导航菜单的核心体验的是“当前页高亮”和“hover下拉”,通过CSS样式配合{pboot:nav}标签的高亮变量,即可实现,无需编写JS代码,下面是实战样式代码,可直接复制到模板的CSS文件中(如css/style.css)。

                                  3.1 基础样式(横向导航,适配PC端)

                                  /* 导航整体样式 */
                                  .header-nav {
                                      width: 100%;
                                      background: #fff;
                                      box-shadow: 0 2px 8px rgba(0,0,0,0.1);
                                  }
                                  /* 一级菜单列表 */
                                  .nav-list {
                                      display: flex; /* 横向排列 */
                                      justify-content: center; /* 水平居中 */
                                      margin: 0;
                                      padding: 0;
                                      list-style: none;
                                  }
                                  /* 一级菜单项 */
                                  .nav-item {
                                      position: relative; /* 为二级菜单定位做准备 */
                                      margin: 0 20px;
                                  }
                                  /* 一级菜单链接 */
                                  .nav-link {
                                      display: block;
                                      height: 60px;
                                      line-height: 60px;
                                      color: #333;
                                      text-decoration: none;
                                      font-size: 16px;
                                      padding: 0 10px;
                                      transition: all 0.3s;
                                  }
                                  /* 当前页高亮样式(对应标签中current="active") */
                                  .nav-link.active {
                                      color: #2f80ed; /* 高亮颜色,可自定义 */
                                      border-bottom: 2px solid #2f80ed; /* 底部高亮线 */
                                  }
                                  /* 一级菜单hover效果 */
                                  .nav-item:hover .nav-link {
                                      color: #2f80ed;
                                  }
                                  /* 二级菜单样式(下拉效果) */
                                  .subnav-list {
                                      position: absolute;
                                      top: 60px; /* 与一级菜单高度一致,避免间隙 */
                                      left: 0;
                                      width: 180px;
                                      background: #fff;
                                      box-shadow: 0 2px 8px rgba(0,0,0,0.1);
                                      margin: 0;
                                      padding: 10px 0;
                                      list-style: none;
                                      display: none; /* 默认隐藏 */
                                      z-index: 999; /* 确保下拉菜单在最上层,不被其他元素遮挡 */
                                  }
                                  /* 一级菜单hover时,显示二级菜单 */
                                  .nav-item:hover .subnav-list {
                                      display: block;
                                  }
                                  /* 二级菜单项 */
                                  .subnav-item {
                                      padding: 0 15px;
                                  }
                                  /* 二级菜单链接 */
                                  .subnav-link {
                                      display: block;
                                      height: 40px;
                                      line-height: 40px;
                                      color: #333;
                                      text-decoration: none;
                                      font-size: 14px;
                                      transition: all 0.3s;
                                  }
                                  /* 二级菜单hover效果 */
                                  .subnav-item:hover .subnav-link {
                                      color: #2f80ed;
                                      padding-left: 5px; /* 轻微偏移,提升交互体验 */
                                  }
                                  /* 二级菜单当前页高亮 */
                                  .subnav-link.active {
                                      color: #2f80ed;
                                      font-weight: 600;
                                  }

                                  3.2 样式说明与自定义

                                  • 当前页高亮:通过.nav-link.active和.subnav-link.active控制,可修改color(文字颜色)、border-bottom(底部线条)、background(背景色)等,适配自己的网站风格。

                                  • 下拉效果:通过position: absolute定位二级菜单,默认隐藏(display: none),一级菜单hover时显示(display: block),z-index: 999确保下拉菜单不被其他元素遮挡。

                                  • 响应式适配:若需要适配移动端,可添加媒体查询(@media),将横向导航改为纵向导航,二级菜单改为展开式,后续可补充移动端适配代码。

                                  注意1:CSS样式中的class名称,需与{pboot:nav}标签中的class、subClass参数一致(如标签中subClass="subnav-list",CSS中对应.subnav-list),否则样式无法生效。

                                  注意2:若当前页高亮不生效,检查标签中current参数是否正确,且页面是否为栏目页(首页需单独设置,下文会讲解)。

                                  四、进阶技巧(解决新手常见问题)

                                  4.1 首页导航高亮设置

                                  默认情况下,{pboot:nav}标签的高亮逻辑仅对“栏目页”生效,首页(index.html)的“首页”菜单不会自动高亮,需通过以下方法解决:

                                  <!-- 首页导航单独处理,添加判断 -->
                                  <nav class="header-nav">
                                      {pboot:nav 
                                          type=1 
                                          level=2 
                                          class="nav-list" 
                                          current="active" 
                                          subClass="subnav-list"
                                      }
                                      <li class="nav-item"&gt;
                                          <!-- 首页判断:若为首页,手动添加active类 -->
                                          {if $page == 'index'}
                                          <a href="[nav:url]" class="nav-link active">[nav:name]</a>
                                          {else}
                                          <a href="[nav:url]" class="[nav:current] nav-link">[nav:name]</a>
                                          {/if}
                                          <!-- 二级菜单(不变) -->
                                          {if [nav:haschild]}
                                          <ul class="[nav:subClass]">
                                              {nav:child}
                                              <li class="subnav-item">
                                                  <a href="[nav:child:url]" class="[nav:child:current] subnav-link">[nav:child:name]</a>
                                              </li>
                                              {/nav:child}
                                          </ul>
                                          {/if}
                                      </li>
                                      {/pboot:nav}
                                  </nav>

                                  说明:{$page == 'index'}是PbootCMS内置判断,用于识别当前页面是否为首页,若是,则手动为“首页”菜单添加active类,实现首页高亮。

                                  4.2 三级菜单输出(进阶需求)

                                  若网站需要三级菜单(如“产品中心→产品分类→具体产品”),只需修改标签level参数为3,并添加三级菜单模板,代码示例如下:

                                  {pboot:nav 
                                      type=1 
                                      level=3  <!-- 改为3,显示三级菜单 -->
                                      class="nav-list" 
                                      current="active" 
                                      subClass="subnav-list"
                                      subSubClass="subsubnav-list"  <!-- 三级菜单class,新增参数 -->
                                  }
                                  <li class="nav-item">
                                      <a href="[nav:url]" class="[nav:current] nav-link"&gt;[nav:name]&lt;/a&gt;
                                      <!-- 二级菜单 -->
                                      {if [nav:haschild]}
                                      <ul class="[nav:subClass]">
                                          {nav:child}
                                          <li class="subnav-item">
                                              <a href="[nav:child:url]" class="[nav:child:current] subnav-link">[nav:child:name]</a>
                                              <!-- 三级菜单 -->
                                              {if [nav:child:haschild]}  <!-- 判断二级栏目是否有子栏目 -->
                                              <ul class="[nav:subSubClass]">
                                                  {nav:child:child}  <!-- 循环输出三级子栏目 -->
                                                  <li class="subsubnav-item">
                                                      <a href="[nav:child:child:url]" class="[nav:child:child:current] subsubnav-link">[nav:child:child:name]</a>
                                                  </li>
                                                  {/nav:child:child}
                                              </ul>
                                              {/if}
                                          </li>
                                          {/nav:child}
                                      </ul>
                                      {/if}
                                  </li>
                                  {/pboot:nav}

                                  说明:新增subSubClass参数,用于定义三级菜单的class,同时通过{nav:child:haschild}判断二级栏目是否有子栏目,{nav:child:child}循环输出三级菜单,配合对应的CSS样式即可实现三级下拉效果。

                                  4.3 隐藏指定栏目(无需删除后台栏目)

                                  若后台某些栏目不需要在导航中显示(如“测试栏目”),无需删除栏目,可通过标签参数cid排除,或在模板中添加判断隐藏,示例如下:

                                  // 方法1:通过cid参数排除(推荐,直接不输出该栏目)
                                  {pboot:nav cid="1,2,3" level=2}  // 仅输出cid为1、2、3的栏目,其他栏目不显示
                                  // 方法2:模板中添加判断,隐藏指定cid的栏目
                                  {pboot:nav level=2}
                                  <li class="nav-item">
                                      {if [nav:cid] != 5}  // 隐藏cid为5的栏目
                                      <a href="[nav:url]" class="[nav:current] nav-link"&gt;[nav:name]&lt;/a&gt;
                                      {/if}
                                      <!-- 二级菜单 -->
                                      {if [nav:haschild] && [nav:cid] != 5}
                                      <ul class="[nav:subClass]">
                                          {nav:child}
                                          <li class="subnav-item">
                                              <a href="[nav:child:url]" class="[nav:child:current] subnav-link">[nav:child:name]</a>
                                          </li>
                                          {/nav:child}
                                      </ul>
                                      {/if}
                                  </li>
                                  {/pboot:nav}

                                  五、常见问题汇总(避坑指南)

                                  问题1:{pboot:nav}标签不输出菜单,页面显示空白?

                                  解决方法:1. 检查后台栏目是否“启用”,且父栏目ID设置正确;2. 检查标签语法,确保参数无引号、变量拼写正确(如[nav:url]不可写成[nav:Url],区分大小写);3. 检查标签是否闭合({pboot:nav}和{/pboot:nav}必须成对出现);4. 清除网站缓存(后台【系统设置】→【清除缓存】)后重试。

                                  问题2:二级菜单无法显示,仅显示一级菜单?

                                  解决方法:1. 检查标签level参数是否为2(默认2,若改为1则不显示二级菜单);2. 检查二级栏目是否“启用”,且父栏目ID对应正确;3. 检查{if [nav:haschild]}判断是否存在,且模板结构正确(二级菜单模板需放在该判断内)。

                                  问题3:当前页导航不高亮,active类未添加?

                                  解决方法:1. 检查标签current参数是否正确(如current="active"),且CSS中对应class样式存在;2. 首页需添加{$page == 'index'}判断,手动添加active类;3. 检查当前页面是否为栏目页(若为自定义页面,需手动设置高亮,可通过URL参数判断)。

                                  问题4:二级菜单被其他元素遮挡,显示不全?

                                  解决方法:为二级菜单添加z-index: 999(确保在最上层),同时检查父元素(.nav-item)是否设置position: relative(二级菜单position: absolute需要依赖父元素定位)。

                                  问题5:导航菜单横向排列错乱,换行显示?

                                  解决方法:检查.nav-list的display: flex是否生效,若不生效,可能是浏览器兼容问题,可添加兼容代码(如display: -webkit-box; display: -ms-flexbox;),同时调整.nav-item的margin(减少间距),确保所有一级菜单能在一行显示。

                                  六、总结

                                  {pboot:nav}标签是PbootCMS导航开发的核心工具,核心优势是“自动同步后台栏目、无需手动循环、自带高亮逻辑”,实战中只需掌握3个关键点:一是正确配置标签参数(type、level、current等),二是编写合理的HTML模板结构,三是配合CSS样式实现高亮和下拉效果。

                                  本文的代码可直接复制复用,新手可先按教程完成一级+二级菜单的输出和高亮控制,再根据自身需求,调整样式、添加三级菜单或隐藏指定栏目。后续开发中,无论栏目如何修改,只需在后台调整,导航菜单会自动同步,大幅提升开发和维护效率。

                                  若需要适配移动端导航(如汉堡菜单),可在本文代码基础上添加媒体查询和简单JS,实现移动端下拉展开效果,后续可补充相关实操。

                                  推荐专题
                                  导航栏目标签{pboot:nav}实战:多级菜单输出与高亮样式控制
                                  PbootCMS开发环境配置:Docker一键搭建PHP 7.4 + Nginx + MySQL开发栈
                                  PbootCMS API接口开启配置教程,新手也能快速上手
                                  PbootCMS API接口功能开发实操教程
                                  pbootcms开源系统如何做好防护和配置宝塔服务器最安全
                                  用PbootCms API接口实现Ajax无刷新分页 实现 点击加载更多 功能
                                  Swiper轮播图视频加图片混合,完美解决方法,
                                  pbootcms pboot:nav 判断没有子类得时候显示同级栏目
                                  PbootCMS后台增加自定义字段搜索解决办法
                                  pbootcms 上传的图片自动转换webp格式 附源码教程
                                  pbootcms后台自定义字段多图上传 不能多图拖动解决办法
                                  小程序分包加载开发:突破 2M 限制 + 首屏加载提速 50% 方案
                                  响应式网站开发避坑:viewport 设置 + 媒体查询 + 适配测试方法
                                  网站安全开发指南:XSS/CSRF 防护 + SQL 注入拦截实战
                                  用PbootCms扩展定制一个简单天气预报小插件
                                  有帮助赞一下(0)
                                  没帮助联系客服
                                  没帮助联系客服
                                  上一篇:PbootCMS开发环境配置:Docker一键搭建PHP 7.4 + Nginx + MySQL开发栈 下一篇:没有了!
                                  返回列表
                                  最新阅读
                                  • 分享一条宝塔PBOOTCMS自动清理rumtime缓存目录的SHELL脚本
                                    2025-08-29
                                    332
                                  • pbootcms模板文章列表序号怎么调用标签?
                                    2025-08-29
                                    71
                                  • PbootCms支持阿里云OSS插件和七牛云存储插件
                                    2025-09-02
                                    128
                                  • pbootcms网站上线后如何做好防护才能不被黑或者被注入
                                    2025-09-08
                                    441
                                  • pbootcms模板栏目页如何调用当前栏目的文章
                                    2025-08-20
                                    84
                                  • Pbootcms留言“提交成功”的默认提示语修改
                                    2025-08-20
                                    117
                                  • pbootcms模板调用导航的3种方法
                                    2025-08-20
                                    130
                                  • pbootcms标签分页中url会无限重复叠加的解决方案
                                    2025-09-01
                                    65
                                  • 用PbootCms API接口实现Ajax无刷新分页 实现 点击加载更多 功能
                                    2026-01-29
                                    59
                                  • 小程序分包加载开发:突破 2M 限制 + 首屏加载提速 50% 方案
                                    2025-12-19
                                    114
                                  AI 智能助理
                                  您好!有什么可以帮助您的吗?
                                  • 稳定
                                    多年经验,服务稳定
                                  • 贴心
                                    全国7*24小时客服热线
                                  • 专业
                                    产品经理在线技术支持
                                  • 快速
                                    快速评估,快速执行
                                  • 承诺
                                    有目共睹,我们选声誉
                                  咨询热线:
                                  电话:188-2547-1709建站、小程序业务
                                  Q Q: 609503512 邮箱:frank@vi23.com
                                  地址:广东省惠州市惠城区鹅岭南路5号联通大酒店大厦2楼
                                  王飞微信 王经理
                                  建站、小程序业务
                                  王飞微信 王经理
                                  商标、版权注册业务
                                  热门服务
                                    {pboot:nav parent=46}
                                  • 商学院
                                  • 实战:多级菜单输出与高亮样式控制');} else {$('.dq_section .content').append('-正文');}

                                    导航栏目标签{pboot:nav}实战:多级菜单输出与高亮样式控制

                                    发布人:鲸弘科技
                                    发布时间:2026-04-21
                                    浏览量:0 次

                                    本文由广东鲸弘科技有限公司提供惠州小程序开发 / 网站建设专业分享。

                                    在PbootCMS开发中,导航栏是网站的核心组件,而{pboot:nav}标签是实现导航菜单最核心、最高效的标签——无需手动编写循环代码,即可快速输出一级、二级甚至多级导航菜单,同时支持当前页面菜单高亮、hover样式控制,适配各类网站的导航需求。本文全程实战,从基础用法到高级样式控制,手把手教你玩转{pboot:nav}标签,新手也能快速上手,所有代码可直接复制到模板中使用。

                                    适用场景:PbootCMS网站导航栏开发(PC端/移动端通用)、多级菜单(一级导航+二级子菜单)开发、导航高亮样式定制;适配PbootCMS所有稳定版本,兼容官方默认模板及自定义模板,无需二次开发核心代码,仅需修改标签参数和CSS样式。

                                    一、{pboot:nav}标签基础认知(必学)

                                    {pboot:nav}是PbootCMS内置的导航专用标签,核心作用是“自动读取后台栏目数据,生成导航菜单”,支持多级菜单输出、样式自定义、高亮控制,无需手动拼接HTML代码,大幅提升开发效率。

                                    1.1 标签核心特性

                                    • 自动关联后台栏目:导航菜单数据直接来自【栏目管理】,添加、修改、删除栏目后,导航会自动同步更新,无需手动修改模板。

                                    • 支持多级菜单:默认支持一级、二级菜单,通过参数配置可实现三级菜单输出,适配企业站、门户站等多栏目场景。

                                    • 自带高亮逻辑:无需额外编写JS,标签可自动识别当前访问栏目,为当前栏目菜单添加高亮类,实现“当前页导航高亮”效果。

                                    • 样式完全可控:可通过标签参数自定义HTML结构,配合CSS样式,实现任意风格的导航(如横向导航、纵向导航、下拉导航)。

                                    1.2 标签基础语法

                                    {pboot:nav}标签为闭合标签,核心语法格式如下,所有参数均为可选,新手可先使用默认参数,再逐步自定义:

                                    {pboot:nav 
                                        type=1<!-- 菜单类型:1=横向导航,2=纵向导航,默认1 -->
                                        level=2<!-- 显示级数:1=仅一级,2=一级+二级,3=三级,默认2 -->
                                        cid=0    <!-- 起始栏目ID:0=所有顶级栏目,指定cid则从该栏目开始输出,默认0 -->
                                        class=nav  <!-- 导航外层容器class,用于CSS样式控制,默认nav -->
                                        current=current  <!-- 当前页高亮class,默认current -->
                                        subClass=subnav  <!-- 二级菜单外层容器class,默认subnav -->
                                    }
                                    <!-- 菜单内容模板(可自定义HTML结构) -->
                                    <a href="[nav:url]" class="[nav:current]"&gt;[nav:name]&lt;/a&gt;
                                    <!-- 二级菜单模板(若level≥2,需添加该模板) -->
                                    {if [nav:haschild]}  <!-- 判断当前栏目是否有子栏目 -->
                                    &lt;div class="[nav:subClass]"&gt;
                                        {nav:child}  <!-- 循环输出二级子栏目 -->
                                        <a href="[nav:child:url]" class="[nav:child:current]">[nav:child:name]</a>
                                        {/nav:child}
                                    </div>
                                    {/if}
                                    {/pboot:nav}

                                    注意1:标签内的参数需用空格分隔,参数值无需加引号(如level=2,而非level="2"),否则会导致标签失效。

                                    注意2:菜单内容模板中的【[nav:url]】【[nav:name]】是内置变量,分别对应栏目路径和栏目名称,不可拼写错误,否则无法正常输出数据。

                                    注意3:[nav:current]变量会自动判断当前栏目,若为当前访问栏目,输出标签参数中“current”的值(默认current),否则为空,用于高亮样式控制。

                                    二、实战1:多级菜单输出(一级+二级,最常用)

                                    最常见的导航场景是“一级导航+二级下拉菜单”,比如企业站的“首页、关于我们、产品中心、新闻动态、联系我们”,其中“产品中心”“新闻动态”包含二级子栏目。下面通过实战案例,实现该场景的菜单输出,步骤清晰可直接复用。

                                    2.1 步骤1:后台栏目准备(必做)

                                    导航菜单数据来自后台栏目,需先在后台创建对应栏目及子栏目,确保数据正确,步骤如下:

                                    1. 登录PbootCMS后台,进入【栏目管理】→【添加栏目】,创建顶级栏目(一级导航),如“首页、关于我们、产品中心、新闻动态、联系我们”,栏目类型选择“栏目”,状态设置为“启用”。

                                    2. 为需要二级子栏目的顶级栏目(如“产品中心”“新闻动态”)添加子栏目:选中“产品中心”,点击【添加子栏目】,创建“产品1、产品2、产品3”等二级栏目,状态同样设置为“启用”。

                                    3. 排序:通过栏目列表的“排序”字段,调整一级、二级栏目的显示顺序(数字越小,显示越靠前),保存后,导航菜单会按排序顺序输出。

                                    注意:若二级菜单无法显示,先检查二级栏目是否“启用”,且父栏目ID是否正确(子栏目父ID需对应顶级栏目ID),同时确保标签中level参数设置为2(默认即为2)。

                                    2.2 步骤2:编写{pboot:nav}标签代码

                                    打开PbootCMS模板文件(通常是header.html,导航栏一般在头部),找到导航栏对应的位置,删除原有默认导航代码,粘贴以下代码(已优化HTML结构,适配下拉菜单):

                                    <!-- 导航栏外层容器 -->
                                    <nav class="header-nav">
                                        {pboot:nav 
                                            type=1 
                                            level=2 
                                            class="nav-list" 
                                            current="active" 
                                            subClass="subnav-list"
                                        }
                                        <li class="nav-item">
                                            <a href="[nav:url]" class="[nav:current] nav-link"&gt;[nav:name]&lt;/a&gt;
                                            <!-- 二级菜单 -->
                                            {if [nav:haschild]}
                                            <ul class="[nav:subClass]">
                                                {nav:child}
                                                <li class="subnav-item">
                                                    <a href="[nav:child:url]" class="[nav:child:current] subnav-link">[nav:child:name]</a>
                                                </li>
                                                {/nav:child}
                                            </ul>
                                            {/if}
                                        </li>
                                        {/pboot:nav}
                                    </nav>

                                    2.3 代码说明(新手必看)

                                    • 外层<nav class="header-nav">:导航栏整体容器,用于控制导航的整体位置、宽度等样式。

                                    • type=1:设置为横向导航,适合PC端顶部导航;若需要纵向导航(如侧边栏),改为type=2。

                                    • level=2:显示一级+二级菜单,若仅需一级菜单,改为level=1。

                                    • current="active":当前页高亮class设置为active,后续通过CSS控制高亮样式(可自定义class名称,如current、on等)。

                                    • {if [nav:haschild]}:判断当前一级栏目是否有子栏目,有则显示二级菜单,无则不显示,避免空菜单。

                                    • [nav:child:url]、[nav:child:name]:二级子栏目的路径和名称变量,与一级菜单的变量对应。

                                    三、实战2:高亮样式控制(当前页+hover效果)

                                    导航菜单的核心体验的是“当前页高亮”和“hover下拉”,通过CSS样式配合{pboot:nav}标签的高亮变量,即可实现,无需编写JS代码,下面是实战样式代码,可直接复制到模板的CSS文件中(如css/style.css)。

                                    3.1 基础样式(横向导航,适配PC端)

                                    /* 导航整体样式 */
                                    .header-nav {
                                        width: 100%;
                                        background: #fff;
                                        box-shadow: 0 2px 8px rgba(0,0,0,0.1);
                                    }
                                    /* 一级菜单列表 */
                                    .nav-list {
                                        display: flex; /* 横向排列 */
                                        justify-content: center; /* 水平居中 */
                                        margin: 0;
                                        padding: 0;
                                        list-style: none;
                                    }
                                    /* 一级菜单项 */
                                    .nav-item {
                                        position: relative; /* 为二级菜单定位做准备 */
                                        margin: 0 20px;
                                    }
                                    /* 一级菜单链接 */
                                    .nav-link {
                                        display: block;
                                        height: 60px;
                                        line-height: 60px;
                                        color: #333;
                                        text-decoration: none;
                                        font-size: 16px;
                                        padding: 0 10px;
                                        transition: all 0.3s;
                                    }
                                    /* 当前页高亮样式(对应标签中current="active") */
                                    .nav-link.active {
                                        color: #2f80ed; /* 高亮颜色,可自定义 */
                                        border-bottom: 2px solid #2f80ed; /* 底部高亮线 */
                                    }
                                    /* 一级菜单hover效果 */
                                    .nav-item:hover .nav-link {
                                        color: #2f80ed;
                                    }
                                    /* 二级菜单样式(下拉效果) */
                                    .subnav-list {
                                        position: absolute;
                                        top: 60px; /* 与一级菜单高度一致,避免间隙 */
                                        left: 0;
                                        width: 180px;
                                        background: #fff;
                                        box-shadow: 0 2px 8px rgba(0,0,0,0.1);
                                        margin: 0;
                                        padding: 10px 0;
                                        list-style: none;
                                        display: none; /* 默认隐藏 */
                                        z-index: 999; /* 确保下拉菜单在最上层,不被其他元素遮挡 */
                                    }
                                    /* 一级菜单hover时,显示二级菜单 */
                                    .nav-item:hover .subnav-list {
                                        display: block;
                                    }
                                    /* 二级菜单项 */
                                    .subnav-item {
                                        padding: 0 15px;
                                    }
                                    /* 二级菜单链接 */
                                    .subnav-link {
                                        display: block;
                                        height: 40px;
                                        line-height: 40px;
                                        color: #333;
                                        text-decoration: none;
                                        font-size: 14px;
                                        transition: all 0.3s;
                                    }
                                    /* 二级菜单hover效果 */
                                    .subnav-item:hover .subnav-link {
                                        color: #2f80ed;
                                        padding-left: 5px; /* 轻微偏移,提升交互体验 */
                                    }
                                    /* 二级菜单当前页高亮 */
                                    .subnav-link.active {
                                        color: #2f80ed;
                                        font-weight: 600;
                                    }

                                    3.2 样式说明与自定义

                                    • 当前页高亮:通过.nav-link.active和.subnav-link.active控制,可修改color(文字颜色)、border-bottom(底部线条)、background(背景色)等,适配自己的网站风格。

                                    • 下拉效果:通过position: absolute定位二级菜单,默认隐藏(display: none),一级菜单hover时显示(display: block),z-index: 999确保下拉菜单不被其他元素遮挡。

                                    • 响应式适配:若需要适配移动端,可添加媒体查询(@media),将横向导航改为纵向导航,二级菜单改为展开式,后续可补充移动端适配代码。

                                    注意1:CSS样式中的class名称,需与{pboot:nav}标签中的class、subClass参数一致(如标签中subClass="subnav-list",CSS中对应.subnav-list),否则样式无法生效。

                                    注意2:若当前页高亮不生效,检查标签中current参数是否正确,且页面是否为栏目页(首页需单独设置,下文会讲解)。

                                    四、进阶技巧(解决新手常见问题)

                                    4.1 首页导航高亮设置

                                    默认情况下,{pboot:nav}标签的高亮逻辑仅对“栏目页”生效,首页(index.html)的“首页”菜单不会自动高亮,需通过以下方法解决:

                                    <!-- 首页导航单独处理,添加判断 -->
                                    <nav class="header-nav">
                                        {pboot:nav 
                                            type=1 
                                            level=2 
                                            class="nav-list" 
                                            current="active" 
                                            subClass="subnav-list"
                                        }
                                        <li class="nav-item"&gt;
                                            <!-- 首页判断:若为首页,手动添加active类 -->
                                            {if $page == 'index'}
                                            <a href="[nav:url]" class="nav-link active">[nav:name]</a>
                                            {else}
                                            <a href="[nav:url]" class="[nav:current] nav-link">[nav:name]</a>
                                            {/if}
                                            <!-- 二级菜单(不变) -->
                                            {if [nav:haschild]}
                                            <ul class="[nav:subClass]">
                                                {nav:child}
                                                <li class="subnav-item">
                                                    <a href="[nav:child:url]" class="[nav:child:current] subnav-link">[nav:child:name]</a>
                                                </li>
                                                {/nav:child}
                                            </ul>
                                            {/if}
                                        </li>
                                        {/pboot:nav}
                                    </nav>

                                    说明:{$page == 'index'}是PbootCMS内置判断,用于识别当前页面是否为首页,若是,则手动为“首页”菜单添加active类,实现首页高亮。

                                    4.2 三级菜单输出(进阶需求)

                                    若网站需要三级菜单(如“产品中心→产品分类→具体产品”),只需修改标签level参数为3,并添加三级菜单模板,代码示例如下:

                                    {pboot:nav 
                                        type=1 
                                        level=3  <!-- 改为3,显示三级菜单 -->
                                        class="nav-list" 
                                        current="active" 
                                        subClass="subnav-list"
                                        subSubClass="subsubnav-list"  <!-- 三级菜单class,新增参数 -->
                                    }
                                    <li class="nav-item">
                                        <a href="[nav:url]" class="[nav:current] nav-link"&gt;[nav:name]&lt;/a&gt;
                                        <!-- 二级菜单 -->
                                        {if [nav:haschild]}
                                        <ul class="[nav:subClass]">
                                            {nav:child}
                                            <li class="subnav-item">
                                                <a href="[nav:child:url]" class="[nav:child:current] subnav-link">[nav:child:name]</a>
                                                <!-- 三级菜单 -->
                                                {if [nav:child:haschild]}  <!-- 判断二级栏目是否有子栏目 -->
                                                <ul class="[nav:subSubClass]">
                                                    {nav:child:child}  <!-- 循环输出三级子栏目 -->
                                                    <li class="subsubnav-item">
                                                        <a href="[nav:child:child:url]" class="[nav:child:child:current] subsubnav-link">[nav:child:child:name]</a>
                                                    </li>
                                                    {/nav:child:child}
                                                </ul>
                                                {/if}
                                            </li>
                                            {/nav:child}
                                        </ul>
                                        {/if}
                                    </li>
                                    {/pboot:nav}

                                    说明:新增subSubClass参数,用于定义三级菜单的class,同时通过{nav:child:haschild}判断二级栏目是否有子栏目,{nav:child:child}循环输出三级菜单,配合对应的CSS样式即可实现三级下拉效果。

                                    4.3 隐藏指定栏目(无需删除后台栏目)

                                    若后台某些栏目不需要在导航中显示(如“测试栏目”),无需删除栏目,可通过标签参数cid排除,或在模板中添加判断隐藏,示例如下:

                                    // 方法1:通过cid参数排除(推荐,直接不输出该栏目)
                                    {pboot:nav cid="1,2,3" level=2}  // 仅输出cid为1、2、3的栏目,其他栏目不显示
                                    // 方法2:模板中添加判断,隐藏指定cid的栏目
                                    {pboot:nav level=2}
                                    <li class="nav-item">
                                        {if [nav:cid] != 5}  // 隐藏cid为5的栏目
                                        <a href="[nav:url]" class="[nav:current] nav-link"&gt;[nav:name]&lt;/a&gt;
                                        {/if}
                                        <!-- 二级菜单 -->
                                        {if [nav:haschild] && [nav:cid] != 5}
                                        <ul class="[nav:subClass]">
                                            {nav:child}
                                            <li class="subnav-item">
                                                <a href="[nav:child:url]" class="[nav:child:current] subnav-link">[nav:child:name]</a>
                                            </li>
                                            {/nav:child}
                                        </ul>
                                        {/if}
                                    </li>
                                    {/pboot:nav}

                                    五、常见问题汇总(避坑指南)

                                    问题1:{pboot:nav}标签不输出菜单,页面显示空白?

                                    解决方法:1. 检查后台栏目是否“启用”,且父栏目ID设置正确;2. 检查标签语法,确保参数无引号、变量拼写正确(如[nav:url]不可写成[nav:Url],区分大小写);3. 检查标签是否闭合({pboot:nav}和{/pboot:nav}必须成对出现);4. 清除网站缓存(后台【系统设置】→【清除缓存】)后重试。

                                    问题2:二级菜单无法显示,仅显示一级菜单?

                                    解决方法:1. 检查标签level参数是否为2(默认2,若改为1则不显示二级菜单);2. 检查二级栏目是否“启用”,且父栏目ID对应正确;3. 检查{if [nav:haschild]}判断是否存在,且模板结构正确(二级菜单模板需放在该判断内)。

                                    问题3:当前页导航不高亮,active类未添加?

                                    解决方法:1. 检查标签current参数是否正确(如current="active"),且CSS中对应class样式存在;2. 首页需添加{$page == 'index'}判断,手动添加active类;3. 检查当前页面是否为栏目页(若为自定义页面,需手动设置高亮,可通过URL参数判断)。

                                    问题4:二级菜单被其他元素遮挡,显示不全?

                                    解决方法:为二级菜单添加z-index: 999(确保在最上层),同时检查父元素(.nav-item)是否设置position: relative(二级菜单position: absolute需要依赖父元素定位)。

                                    问题5:导航菜单横向排列错乱,换行显示?

                                    解决方法:检查.nav-list的display: flex是否生效,若不生效,可能是浏览器兼容问题,可添加兼容代码(如display: -webkit-box; display: -ms-flexbox;),同时调整.nav-item的margin(减少间距),确保所有一级菜单能在一行显示。

                                    六、总结

                                    {pboot:nav}标签是PbootCMS导航开发的核心工具,核心优势是“自动同步后台栏目、无需手动循环、自带高亮逻辑”,实战中只需掌握3个关键点:一是正确配置标签参数(type、level、current等),二是编写合理的HTML模板结构,三是配合CSS样式实现高亮和下拉效果。

                                    本文的代码可直接复制复用,新手可先按教程完成一级+二级菜单的输出和高亮控制,再根据自身需求,调整样式、添加三级菜单或隐藏指定栏目。后续开发中,无论栏目如何修改,只需在后台调整,导航菜单会自动同步,大幅提升开发和维护效率。

                                    若需要适配移动端导航(如汉堡菜单),可在本文代码基础上添加媒体查询和简单JS,实现移动端下拉展开效果,后续可补充相关实操。

                                    推荐专题
                                    导航栏目标签{pboot:nav}实战:多级菜单输出与高亮样式控制
                                    PbootCMS开发环境配置:Docker一键搭建PHP 7.4 + Nginx + MySQL开发栈
                                    PbootCMS API接口开启配置教程,新手也能快速上手
                                    PbootCMS API接口功能开发实操教程
                                    pbootcms开源系统如何做好防护和配置宝塔服务器最安全
                                    用PbootCms API接口实现Ajax无刷新分页 实现 点击加载更多 功能
                                    Swiper轮播图视频加图片混合,完美解决方法,
                                    pbootcms pboot:nav 判断没有子类得时候显示同级栏目
                                    PbootCMS后台增加自定义字段搜索解决办法
                                    pbootcms 上传的图片自动转换webp格式 附源码教程
                                    pbootcms后台自定义字段多图上传 不能多图拖动解决办法
                                    小程序分包加载开发:突破 2M 限制 + 首屏加载提速 50% 方案
                                    响应式网站开发避坑:viewport 设置 + 媒体查询 + 适配测试方法
                                    网站安全开发指南:XSS/CSRF 防护 + SQL 注入拦截实战
                                    用PbootCms扩展定制一个简单天气预报小插件
                                    有帮助赞一下(0)
                                    没帮助联系客服
                                    没帮助联系客服
                                    上一篇:PbootCMS开发环境配置:Docker一键搭建PHP 7.4 + Nginx + MySQL开发栈 下一篇:没有了!
                                    返回列表
                                    最新阅读
                                    • 分享一条宝塔PBOOTCMS自动清理rumtime缓存目录的SHELL脚本
                                      2025-08-29
                                      332
                                    • pbootcms模板文章列表序号怎么调用标签?
                                      2025-08-29
                                      71
                                    • PbootCms支持阿里云OSS插件和七牛云存储插件
                                      2025-09-02
                                      128
                                    • pbootcms网站上线后如何做好防护才能不被黑或者被注入
                                      2025-09-08
                                      441
                                    • pbootcms模板栏目页如何调用当前栏目的文章
                                      2025-08-20
                                      84
                                    • Pbootcms留言“提交成功”的默认提示语修改
                                      2025-08-20
                                      117
                                    • pbootcms模板调用导航的3种方法
                                      2025-08-20
                                      130
                                    • pbootcms标签分页中url会无限重复叠加的解决方案
                                      2025-09-01
                                      65
                                    • 用PbootCms API接口实现Ajax无刷新分页 实现 点击加载更多 功能
                                      2026-01-29
                                      59
                                    • 小程序分包加载开发:突破 2M 限制 + 首屏加载提速 50% 方案
                                      2025-12-19
                                      114
                                    AI 智能助理
                                    您好!有什么可以帮助您的吗?
                                    • 稳定
                                      多年经验,服务稳定
                                    • 贴心
                                      全国7*24小时客服热线
                                    • 专业
                                      产品经理在线技术支持
                                    • 快速
                                      快速评估,快速执行
                                    • 承诺
                                      有目共睹,我们选声誉
                                    咨询热线:
                                    电话:188-2547-1709建站、小程序业务
                                    Q Q: 609503512 邮箱:frank@vi23.com
                                    地址:广东省惠州市惠城区鹅岭南路5号联通大酒店大厦2楼
                                    王飞微信 王经理
                                    建站、小程序业务
                                    王飞微信 王经理
                                    商标、版权注册业务
                                    热门服务
                                      {pboot:nav parent=46}
                                    • 关于鲸弘
                                    • 实战:多级菜单输出与高亮样式控制');} else {$('.dq_section .content').append('-正文');}

                                      导航栏目标签{pboot:nav}实战:多级菜单输出与高亮样式控制

                                      发布人:鲸弘科技
                                      发布时间:2026-04-21
                                      浏览量:0 次

                                      本文由广东鲸弘科技有限公司提供惠州小程序开发 / 网站建设专业分享。

                                      在PbootCMS开发中,导航栏是网站的核心组件,而{pboot:nav}标签是实现导航菜单最核心、最高效的标签——无需手动编写循环代码,即可快速输出一级、二级甚至多级导航菜单,同时支持当前页面菜单高亮、hover样式控制,适配各类网站的导航需求。本文全程实战,从基础用法到高级样式控制,手把手教你玩转{pboot:nav}标签,新手也能快速上手,所有代码可直接复制到模板中使用。

                                      适用场景:PbootCMS网站导航栏开发(PC端/移动端通用)、多级菜单(一级导航+二级子菜单)开发、导航高亮样式定制;适配PbootCMS所有稳定版本,兼容官方默认模板及自定义模板,无需二次开发核心代码,仅需修改标签参数和CSS样式。

                                      一、{pboot:nav}标签基础认知(必学)

                                      {pboot:nav}是PbootCMS内置的导航专用标签,核心作用是“自动读取后台栏目数据,生成导航菜单”,支持多级菜单输出、样式自定义、高亮控制,无需手动拼接HTML代码,大幅提升开发效率。

                                      1.1 标签核心特性

                                      • 自动关联后台栏目:导航菜单数据直接来自【栏目管理】,添加、修改、删除栏目后,导航会自动同步更新,无需手动修改模板。

                                      • 支持多级菜单:默认支持一级、二级菜单,通过参数配置可实现三级菜单输出,适配企业站、门户站等多栏目场景。

                                      • 自带高亮逻辑:无需额外编写JS,标签可自动识别当前访问栏目,为当前栏目菜单添加高亮类,实现“当前页导航高亮”效果。

                                      • 样式完全可控:可通过标签参数自定义HTML结构,配合CSS样式,实现任意风格的导航(如横向导航、纵向导航、下拉导航)。

                                      1.2 标签基础语法

                                      {pboot:nav}标签为闭合标签,核心语法格式如下,所有参数均为可选,新手可先使用默认参数,再逐步自定义:

                                      {pboot:nav 
                                          type=1<!-- 菜单类型:1=横向导航,2=纵向导航,默认1 -->
                                          level=2<!-- 显示级数:1=仅一级,2=一级+二级,3=三级,默认2 -->
                                          cid=0    <!-- 起始栏目ID:0=所有顶级栏目,指定cid则从该栏目开始输出,默认0 -->
                                          class=nav  <!-- 导航外层容器class,用于CSS样式控制,默认nav -->
                                          current=current  <!-- 当前页高亮class,默认current -->
                                          subClass=subnav  <!-- 二级菜单外层容器class,默认subnav -->
                                      }
                                      <!-- 菜单内容模板(可自定义HTML结构) -->
                                      <a href="[nav:url]" class="[nav:current]"&gt;[nav:name]&lt;/a&gt;
                                      <!-- 二级菜单模板(若level≥2,需添加该模板) -->
                                      {if [nav:haschild]}  <!-- 判断当前栏目是否有子栏目 -->
                                      &lt;div class="[nav:subClass]"&gt;
                                          {nav:child}  <!-- 循环输出二级子栏目 -->
                                          <a href="[nav:child:url]" class="[nav:child:current]">[nav:child:name]</a>
                                          {/nav:child}
                                      </div>
                                      {/if}
                                      {/pboot:nav}

                                      注意1:标签内的参数需用空格分隔,参数值无需加引号(如level=2,而非level="2"),否则会导致标签失效。

                                      注意2:菜单内容模板中的【[nav:url]】【[nav:name]】是内置变量,分别对应栏目路径和栏目名称,不可拼写错误,否则无法正常输出数据。

                                      注意3:[nav:current]变量会自动判断当前栏目,若为当前访问栏目,输出标签参数中“current”的值(默认current),否则为空,用于高亮样式控制。

                                      二、实战1:多级菜单输出(一级+二级,最常用)

                                      最常见的导航场景是“一级导航+二级下拉菜单”,比如企业站的“首页、关于我们、产品中心、新闻动态、联系我们”,其中“产品中心”“新闻动态”包含二级子栏目。下面通过实战案例,实现该场景的菜单输出,步骤清晰可直接复用。

                                      2.1 步骤1:后台栏目准备(必做)

                                      导航菜单数据来自后台栏目,需先在后台创建对应栏目及子栏目,确保数据正确,步骤如下:

                                      1. 登录PbootCMS后台,进入【栏目管理】→【添加栏目】,创建顶级栏目(一级导航),如“首页、关于我们、产品中心、新闻动态、联系我们”,栏目类型选择“栏目”,状态设置为“启用”。

                                      2. 为需要二级子栏目的顶级栏目(如“产品中心”“新闻动态”)添加子栏目:选中“产品中心”,点击【添加子栏目】,创建“产品1、产品2、产品3”等二级栏目,状态同样设置为“启用”。

                                      3. 排序:通过栏目列表的“排序”字段,调整一级、二级栏目的显示顺序(数字越小,显示越靠前),保存后,导航菜单会按排序顺序输出。

                                      注意:若二级菜单无法显示,先检查二级栏目是否“启用”,且父栏目ID是否正确(子栏目父ID需对应顶级栏目ID),同时确保标签中level参数设置为2(默认即为2)。

                                      2.2 步骤2:编写{pboot:nav}标签代码

                                      打开PbootCMS模板文件(通常是header.html,导航栏一般在头部),找到导航栏对应的位置,删除原有默认导航代码,粘贴以下代码(已优化HTML结构,适配下拉菜单):

                                      <!-- 导航栏外层容器 -->
                                      <nav class="header-nav">
                                          {pboot:nav 
                                              type=1 
                                              level=2 
                                              class="nav-list" 
                                              current="active" 
                                              subClass="subnav-list"
                                          }
                                          <li class="nav-item">
                                              <a href="[nav:url]" class="[nav:current] nav-link"&gt;[nav:name]&lt;/a&gt;
                                              <!-- 二级菜单 -->
                                              {if [nav:haschild]}
                                              <ul class="[nav:subClass]">
                                                  {nav:child}
                                                  <li class="subnav-item">
                                                      <a href="[nav:child:url]" class="[nav:child:current] subnav-link">[nav:child:name]</a>
                                                  </li>
                                                  {/nav:child}
                                              </ul>
                                              {/if}
                                          </li>
                                          {/pboot:nav}
                                      </nav>

                                      2.3 代码说明(新手必看)

                                      • 外层<nav class="header-nav">:导航栏整体容器,用于控制导航的整体位置、宽度等样式。

                                      • type=1:设置为横向导航,适合PC端顶部导航;若需要纵向导航(如侧边栏),改为type=2。

                                      • level=2:显示一级+二级菜单,若仅需一级菜单,改为level=1。

                                      • current="active":当前页高亮class设置为active,后续通过CSS控制高亮样式(可自定义class名称,如current、on等)。

                                      • {if [nav:haschild]}:判断当前一级栏目是否有子栏目,有则显示二级菜单,无则不显示,避免空菜单。

                                      • [nav:child:url]、[nav:child:name]:二级子栏目的路径和名称变量,与一级菜单的变量对应。

                                      三、实战2:高亮样式控制(当前页+hover效果)

                                      导航菜单的核心体验的是“当前页高亮”和“hover下拉”,通过CSS样式配合{pboot:nav}标签的高亮变量,即可实现,无需编写JS代码,下面是实战样式代码,可直接复制到模板的CSS文件中(如css/style.css)。

                                      3.1 基础样式(横向导航,适配PC端)

                                      /* 导航整体样式 */
                                      .header-nav {
                                          width: 100%;
                                          background: #fff;
                                          box-shadow: 0 2px 8px rgba(0,0,0,0.1);
                                      }
                                      /* 一级菜单列表 */
                                      .nav-list {
                                          display: flex; /* 横向排列 */
                                          justify-content: center; /* 水平居中 */
                                          margin: 0;
                                          padding: 0;
                                          list-style: none;
                                      }
                                      /* 一级菜单项 */
                                      .nav-item {
                                          position: relative; /* 为二级菜单定位做准备 */
                                          margin: 0 20px;
                                      }
                                      /* 一级菜单链接 */
                                      .nav-link {
                                          display: block;
                                          height: 60px;
                                          line-height: 60px;
                                          color: #333;
                                          text-decoration: none;
                                          font-size: 16px;
                                          padding: 0 10px;
                                          transition: all 0.3s;
                                      }
                                      /* 当前页高亮样式(对应标签中current="active") */
                                      .nav-link.active {
                                          color: #2f80ed; /* 高亮颜色,可自定义 */
                                          border-bottom: 2px solid #2f80ed; /* 底部高亮线 */
                                      }
                                      /* 一级菜单hover效果 */
                                      .nav-item:hover .nav-link {
                                          color: #2f80ed;
                                      }
                                      /* 二级菜单样式(下拉效果) */
                                      .subnav-list {
                                          position: absolute;
                                          top: 60px; /* 与一级菜单高度一致,避免间隙 */
                                          left: 0;
                                          width: 180px;
                                          background: #fff;
                                          box-shadow: 0 2px 8px rgba(0,0,0,0.1);
                                          margin: 0;
                                          padding: 10px 0;
                                          list-style: none;
                                          display: none; /* 默认隐藏 */
                                          z-index: 999; /* 确保下拉菜单在最上层,不被其他元素遮挡 */
                                      }
                                      /* 一级菜单hover时,显示二级菜单 */
                                      .nav-item:hover .subnav-list {
                                          display: block;
                                      }
                                      /* 二级菜单项 */
                                      .subnav-item {
                                          padding: 0 15px;
                                      }
                                      /* 二级菜单链接 */
                                      .subnav-link {
                                          display: block;
                                          height: 40px;
                                          line-height: 40px;
                                          color: #333;
                                          text-decoration: none;
                                          font-size: 14px;
                                          transition: all 0.3s;
                                      }
                                      /* 二级菜单hover效果 */
                                      .subnav-item:hover .subnav-link {
                                          color: #2f80ed;
                                          padding-left: 5px; /* 轻微偏移,提升交互体验 */
                                      }
                                      /* 二级菜单当前页高亮 */
                                      .subnav-link.active {
                                          color: #2f80ed;
                                          font-weight: 600;
                                      }

                                      3.2 样式说明与自定义

                                      • 当前页高亮:通过.nav-link.active和.subnav-link.active控制,可修改color(文字颜色)、border-bottom(底部线条)、background(背景色)等,适配自己的网站风格。

                                      • 下拉效果:通过position: absolute定位二级菜单,默认隐藏(display: none),一级菜单hover时显示(display: block),z-index: 999确保下拉菜单不被其他元素遮挡。

                                      • 响应式适配:若需要适配移动端,可添加媒体查询(@media),将横向导航改为纵向导航,二级菜单改为展开式,后续可补充移动端适配代码。

                                      注意1:CSS样式中的class名称,需与{pboot:nav}标签中的class、subClass参数一致(如标签中subClass="subnav-list",CSS中对应.subnav-list),否则样式无法生效。

                                      注意2:若当前页高亮不生效,检查标签中current参数是否正确,且页面是否为栏目页(首页需单独设置,下文会讲解)。

                                      四、进阶技巧(解决新手常见问题)

                                      4.1 首页导航高亮设置

                                      默认情况下,{pboot:nav}标签的高亮逻辑仅对“栏目页”生效,首页(index.html)的“首页”菜单不会自动高亮,需通过以下方法解决:

                                      <!-- 首页导航单独处理,添加判断 -->
                                      <nav class="header-nav">
                                          {pboot:nav 
                                              type=1 
                                              level=2 
                                              class="nav-list" 
                                              current="active" 
                                              subClass="subnav-list"
                                          }
                                          <li class="nav-item"&gt;
                                              <!-- 首页判断:若为首页,手动添加active类 -->
                                              {if $page == 'index'}
                                              <a href="[nav:url]" class="nav-link active">[nav:name]</a>
                                              {else}
                                              <a href="[nav:url]" class="[nav:current] nav-link">[nav:name]</a>
                                              {/if}
                                              <!-- 二级菜单(不变) -->
                                              {if [nav:haschild]}
                                              <ul class="[nav:subClass]">
                                                  {nav:child}
                                                  <li class="subnav-item">
                                                      <a href="[nav:child:url]" class="[nav:child:current] subnav-link">[nav:child:name]</a>
                                                  </li>
                                                  {/nav:child}
                                              </ul>
                                              {/if}
                                          </li>
                                          {/pboot:nav}
                                      </nav>

                                      说明:{$page == 'index'}是PbootCMS内置判断,用于识别当前页面是否为首页,若是,则手动为“首页”菜单添加active类,实现首页高亮。

                                      4.2 三级菜单输出(进阶需求)

                                      若网站需要三级菜单(如“产品中心→产品分类→具体产品”),只需修改标签level参数为3,并添加三级菜单模板,代码示例如下:

                                      {pboot:nav 
                                          type=1 
                                          level=3  <!-- 改为3,显示三级菜单 -->
                                          class="nav-list" 
                                          current="active" 
                                          subClass="subnav-list"
                                          subSubClass="subsubnav-list"  <!-- 三级菜单class,新增参数 -->
                                      }
                                      <li class="nav-item">
                                          <a href="[nav:url]" class="[nav:current] nav-link"&gt;[nav:name]&lt;/a&gt;
                                          <!-- 二级菜单 -->
                                          {if [nav:haschild]}
                                          <ul class="[nav:subClass]">
                                              {nav:child}
                                              <li class="subnav-item">
                                                  <a href="[nav:child:url]" class="[nav:child:current] subnav-link">[nav:child:name]</a>
                                                  <!-- 三级菜单 -->
                                                  {if [nav:child:haschild]}  <!-- 判断二级栏目是否有子栏目 -->
                                                  <ul class="[nav:subSubClass]">
                                                      {nav:child:child}  <!-- 循环输出三级子栏目 -->
                                                      <li class="subsubnav-item">
                                                          <a href="[nav:child:child:url]" class="[nav:child:child:current] subsubnav-link">[nav:child:child:name]</a>
                                                      </li>
                                                      {/nav:child:child}
                                                  </ul>
                                                  {/if}
                                              </li>
                                              {/nav:child}
                                          </ul>
                                          {/if}
                                      </li>
                                      {/pboot:nav}

                                      说明:新增subSubClass参数,用于定义三级菜单的class,同时通过{nav:child:haschild}判断二级栏目是否有子栏目,{nav:child:child}循环输出三级菜单,配合对应的CSS样式即可实现三级下拉效果。

                                      4.3 隐藏指定栏目(无需删除后台栏目)

                                      若后台某些栏目不需要在导航中显示(如“测试栏目”),无需删除栏目,可通过标签参数cid排除,或在模板中添加判断隐藏,示例如下:

                                      // 方法1:通过cid参数排除(推荐,直接不输出该栏目)
                                      {pboot:nav cid="1,2,3" level=2}  // 仅输出cid为1、2、3的栏目,其他栏目不显示
                                      // 方法2:模板中添加判断,隐藏指定cid的栏目
                                      {pboot:nav level=2}
                                      <li class="nav-item">
                                          {if [nav:cid] != 5}  // 隐藏cid为5的栏目
                                          <a href="[nav:url]" class="[nav:current] nav-link"&gt;[nav:name]&lt;/a&gt;
                                          {/if}
                                          <!-- 二级菜单 -->
                                          {if [nav:haschild] && [nav:cid] != 5}
                                          <ul class="[nav:subClass]">
                                              {nav:child}
                                              <li class="subnav-item">
                                                  <a href="[nav:child:url]" class="[nav:child:current] subnav-link">[nav:child:name]</a>
                                              </li>
                                              {/nav:child}
                                          </ul>
                                          {/if}
                                      </li>
                                      {/pboot:nav}

                                      五、常见问题汇总(避坑指南)

                                      问题1:{pboot:nav}标签不输出菜单,页面显示空白?

                                      解决方法:1. 检查后台栏目是否“启用”,且父栏目ID设置正确;2. 检查标签语法,确保参数无引号、变量拼写正确(如[nav:url]不可写成[nav:Url],区分大小写);3. 检查标签是否闭合({pboot:nav}和{/pboot:nav}必须成对出现);4. 清除网站缓存(后台【系统设置】→【清除缓存】)后重试。

                                      问题2:二级菜单无法显示,仅显示一级菜单?

                                      解决方法:1. 检查标签level参数是否为2(默认2,若改为1则不显示二级菜单);2. 检查二级栏目是否“启用”,且父栏目ID对应正确;3. 检查{if [nav:haschild]}判断是否存在,且模板结构正确(二级菜单模板需放在该判断内)。

                                      问题3:当前页导航不高亮,active类未添加?

                                      解决方法:1. 检查标签current参数是否正确(如current="active"),且CSS中对应class样式存在;2. 首页需添加{$page == 'index'}判断,手动添加active类;3. 检查当前页面是否为栏目页(若为自定义页面,需手动设置高亮,可通过URL参数判断)。

                                      问题4:二级菜单被其他元素遮挡,显示不全?

                                      解决方法:为二级菜单添加z-index: 999(确保在最上层),同时检查父元素(.nav-item)是否设置position: relative(二级菜单position: absolute需要依赖父元素定位)。

                                      问题5:导航菜单横向排列错乱,换行显示?

                                      解决方法:检查.nav-list的display: flex是否生效,若不生效,可能是浏览器兼容问题,可添加兼容代码(如display: -webkit-box; display: -ms-flexbox;),同时调整.nav-item的margin(减少间距),确保所有一级菜单能在一行显示。

                                      六、总结

                                      {pboot:nav}标签是PbootCMS导航开发的核心工具,核心优势是“自动同步后台栏目、无需手动循环、自带高亮逻辑”,实战中只需掌握3个关键点:一是正确配置标签参数(type、level、current等),二是编写合理的HTML模板结构,三是配合CSS样式实现高亮和下拉效果。

                                      本文的代码可直接复制复用,新手可先按教程完成一级+二级菜单的输出和高亮控制,再根据自身需求,调整样式、添加三级菜单或隐藏指定栏目。后续开发中,无论栏目如何修改,只需在后台调整,导航菜单会自动同步,大幅提升开发和维护效率。

                                      若需要适配移动端导航(如汉堡菜单),可在本文代码基础上添加媒体查询和简单JS,实现移动端下拉展开效果,后续可补充相关实操。

                                      推荐专题
                                      导航栏目标签{pboot:nav}实战:多级菜单输出与高亮样式控制
                                      PbootCMS开发环境配置:Docker一键搭建PHP 7.4 + Nginx + MySQL开发栈
                                      PbootCMS API接口开启配置教程,新手也能快速上手
                                      PbootCMS API接口功能开发实操教程
                                      pbootcms开源系统如何做好防护和配置宝塔服务器最安全
                                      用PbootCms API接口实现Ajax无刷新分页 实现 点击加载更多 功能
                                      Swiper轮播图视频加图片混合,完美解决方法,
                                      pbootcms pboot:nav 判断没有子类得时候显示同级栏目
                                      PbootCMS后台增加自定义字段搜索解决办法
                                      pbootcms 上传的图片自动转换webp格式 附源码教程
                                      pbootcms后台自定义字段多图上传 不能多图拖动解决办法
                                      小程序分包加载开发:突破 2M 限制 + 首屏加载提速 50% 方案
                                      响应式网站开发避坑:viewport 设置 + 媒体查询 + 适配测试方法
                                      网站安全开发指南:XSS/CSRF 防护 + SQL 注入拦截实战
                                      用PbootCms扩展定制一个简单天气预报小插件
                                      有帮助赞一下(0)
                                      没帮助联系客服
                                      没帮助联系客服
                                      上一篇:PbootCMS开发环境配置:Docker一键搭建PHP 7.4 + Nginx + MySQL开发栈 下一篇:没有了!
                                      返回列表
                                      最新阅读
                                      • 分享一条宝塔PBOOTCMS自动清理rumtime缓存目录的SHELL脚本
                                        2025-08-29
                                        332
                                      • pbootcms模板文章列表序号怎么调用标签?
                                        2025-08-29
                                        71
                                      • PbootCms支持阿里云OSS插件和七牛云存储插件
                                        2025-09-02
                                        128
                                      • pbootcms网站上线后如何做好防护才能不被黑或者被注入
                                        2025-09-08
                                        441
                                      • pbootcms模板栏目页如何调用当前栏目的文章
                                        2025-08-20
                                        84
                                      • Pbootcms留言“提交成功”的默认提示语修改
                                        2025-08-20
                                        117
                                      • pbootcms模板调用导航的3种方法
                                        2025-08-20
                                        130
                                      • pbootcms标签分页中url会无限重复叠加的解决方案
                                        2025-09-01
                                        65
                                      • 用PbootCms API接口实现Ajax无刷新分页 实现 点击加载更多 功能
                                        2026-01-29
                                        59
                                      • 小程序分包加载开发:突破 2M 限制 + 首屏加载提速 50% 方案
                                        2025-12-19
                                        114
                                      AI 智能助理
                                      您好!有什么可以帮助您的吗?
                                      • 稳定
                                        多年经验,服务稳定
                                      • 贴心
                                        全国7*24小时客服热线
                                      • 专业
                                        产品经理在线技术支持
                                      • 快速
                                        快速评估,快速执行
                                      • 承诺
                                        有目共睹,我们选声誉
                                      咨询热线:
                                      电话:188-2547-1709建站、小程序业务
                                      Q Q: 609503512 邮箱:frank@vi23.com
                                      地址:广东省惠州市惠城区鹅岭南路5号联通大酒店大厦2楼
                                      王飞微信 王经理
                                      建站、小程序业务
                                      王飞微信 王经理
                                      商标、版权注册业务
                                      热门服务
                                        {pboot:nav parent=46}
                                      • 在线留言
                                      方案与报价
                                      • 外贸/独立站网站建设方案
                                      • 营销型网站建设方案
                                      • 展示型网站建设方案
                                      • 集团网站建设方案
                                      • 上市公司网站建设方案
                                      • 跨国公司网站建设方案
                                      • 新能源行业网站建设方案
                                      • 芯片半导体网站建设方案
                                      • 制造业网站建设方案
                                      • 快递、物流网站建设方案
                                      • 服务业网站建设方案
                                      • 律师事务所网站建设方案
                                      • 生物医疗网站建设方案
                                      • 电气/电子/仪器网站方案
                                      • 学校/教育培训网站方案
                                      • 工业品网站建设方案
                                      客户支持
                                      • 公司公告
                                      • 建站流程
                                      • 优化流程
                                      • 服务保障
                                      • 帮助中心
                                      • 文档下载
                                      • 投诉与举报
                                      小程序开发
                                      • 微信小程序开发
                                      • 微信公众号开发
                                      • 企业微信开发
                                      • 支付宝小程序开发
                                      • 抖音/头条小程序
                                      • 百度小程序
                                      • 物联网开发
                                      • APP开发
                                      商学院
                                      • 建站教程
                                      • AI资讯
                                      • 技术干货
                                      • 外贸/跨境电商
                                      友情链接 : 伯恩光学 TCL 华展建设 澳宝 高迪 惠州学院 惠州西湖 劲家庄 欣旺达

                                      Copyright © 2019-2025 广东鲸弘科技有限公司 All Rights Reserved. 粤ICP备2021087857号

                                      Copyright © 2019-2025 广东鲸弘科技有限公司 All Rights Reserved.

                                       粤ICP备2021087857号

                                      网站地图 | 免责声明 网站地图 | 免责声明
                                      • 首页图标首页
                                      • 电话图标电话
                                      • 微信图标微信
                                      • QQ图标QQ
                                      • 返回顶部图标顶部
                                      复制成功

                                      微信号:kaxiO_o

                                      添加微信好友,免费获取方案及报价

                                      我知道了
                                      联系
                                      扫码添加技术微信
                                      1V1在线技术支持
                                      联系电话
                                      188-2547-1709建站、seo业务
                                      电话若占线或未接到、就加下微信
                                      联系邮箱
                                      frank@vi23.com企业邮箱
                                      联系QQ
                                      609503512 王经理
                                      方案获取
                                      多一份参考,总有益处