Layui如何实现导航菜单支持多级垂直嵌套显示

幻夢星雲

幻夢星雲

2026-07-20

433人浏览

原创

layui原生layui-nav不支持三级及以上垂直嵌套,仅识别二级结构;必须改用dropdown.render或手动构造dom+css实现三级菜单。

直接说结论:layui 原生 layui-nav 不支持三级及以上垂直嵌套,必须换用 dropdown 或手动构造 dom + css 控制展开逻辑。

layui-nav 只能到二级,三级会塌陷或不渲染

很多人以为给 layui-nav-tree 里再套 <ul></ul> 就能实现三级,实际不行。Layui 的 layui-nav 渲染机制只识别一级 <li> 和其直接子 <dl></dl>(二级),再往下的 <ul></ul><dl></dl> 会被忽略或样式错乱。

  • 典型现象:console 无报错,但第三级菜单始终不显示,或显示为平铺、重叠、错位
  • 根本原因:layui-nav 的 CSS 选择器仅作用于 .layui-nav .layui-nav-item > .layui-nav-child,不递归匹配更深层级
  • 兼容性风险:即使强行加 CSS,不同 Layui 版本(2.5.x vs 2.8+)对 layui-nav-child 的定位逻辑有差异,容易在移动端失效

用 dropdown.render 实现真正可交互的三级垂直菜单

dropdown 是 Layui 中唯一官方支持无限层级嵌套的组件,且天然适配垂直展开场景。关键不是“怎么写 HTML”,而是“怎么组织 data 结构”和“怎么控制触发方式”。

layui手机车牌号码键盘代码
layui手机车牌号码键盘代码

layui手机车牌号码键盘代码是一款基于jQuery跟layui制作的手机端车牌号码输入弹出键盘选择,支持新能源汽车车牌输入格式代码。

下载
  • 必须用 child 字段递归定义子项,不能靠 HTML 嵌套;例如:{ title: '系统设置', child: [{ title: '用户管理', child: [{ title: '新增用户' }] }] }
  • 触发元素建议用 <span></span><a></a>,避免用 <button></button> 导致默认按钮样式干扰布局
  • 设置 align: 'left'offset: '0,4' 可让下拉面板紧贴父项左侧垂直延伸,而非默认右偏移
  • 点击回调中不要直接用 location.href 跳转——三级菜单项可能只是分组标题,需判断 data.child === undefined 再执行跳转

手写垂直折叠菜单时,CSS 和 JS 的关键控制点

如果项目已重度依赖 layui-nav-tree 结构,又必须支持三级,可行但需绕过 Layui 渲染逻辑,纯手工控制显隐。

  • HTML 中保留原结构,但所有三级 <ul></ul>class="sub-menu-level3" 并设 display: none
  • 二级菜单项的 <a></a> 后插入 <i class="layui-icon layui-icon-down"></i>,用于绑定 click 事件
  • JS 中监听二级项点击,用 $(this).next('.sub-menu-level3').slideToggle(),同时切换图标 layui-icon-down / layui-icon-up
  • 务必阻止事件冒泡:e.stopPropagation(),否则会触发父级 layui-nav 的默认折叠行为
  • 注意:Layui 的 layui.use(['element']) 会劫持所有 .layui-nav-item 的 click,需在 element.init() 后再绑定自定义事件

最容易被忽略的是:dropdown 的三级菜单在鼠标移出时默认自动关闭,但垂直导航往往需要“悬停保持展开”。这不能靠改配置解决,得用 setTimeout + clearTimeout 手动控制延迟关闭,且要区分鼠标进出子菜单区域——否则一碰空白就收起,体验极差。

相关文章

PHP速学视频免费教程(入门到精通)
PHP速学视频免费教程(入门到精通)

PHP怎么学习?PHP怎么入门?PHP在哪学?PHP怎么学才快?不用担心,这里为大家提供了PHP速学教程(入门到精通),有需要的小伙伴保存下载就能学习啦!

下载

本站声明:本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn

相关专题

更多
python是前端还是后端
python是前端还是后端

Python属于前端也属于后端,其灵活性和丰富的生态系统使得开发人员能够在不同的领域中灵活运用。本专题为大家提供python相关的文章、下载、课程内容,供大家免费下载体验。

2023.08.11

1087

5

前端如何实现即时通讯
前端如何实现即时通讯

实现即时通讯的方法有WebSocket、Long Polling、Server-Sent Events、WebRTC等等。详细介绍:1、WebSocket,它可以在客户端和服务器之间建立持久连接,实现实时的双向通信,前端可以使用 WebSocket API来创建WebSocket连接,并通过发送和接收消息来实现即时通讯;2、Long Polling,是一种模拟实时通信的技术等等。

2023.10.09

2211

6

前端和后端的区别
前端和后端的区别

前端关注的是用户界面的设计和交互,而后端则注重数据处理和逻辑控制。想了解更多前端后端的相关内容,可以阅读本专题下面的文章。

2024.03.19

2105

13

php和前端的关联介绍
php和前端的关联介绍

php既可以作为前端语言,也可以作为后端语言。想了解更多php和前端的相关内容,可以阅读本专题下面的文章。

2024.03.22

2276

10

前端外包工作内容有哪些
前端外包工作内容有哪些

前端外包工作内容包括:1. 网站和应用程序开发;2. 用户界面和交互设计;3. 用户体验优化;4. 设计和视觉开发;5. 跨浏览器兼容性;6. 性能优化;7. 维护和更新;8. 项目管理和沟通。想了解更多前端的相关内容,可以阅读本专题下面的文章。

2024.05.22

335

5

墨刀AI提示词教学
墨刀AI提示词教学

本合集由PHP中文网精心整理,为您提供全面的墨刀AI提示词教学。内容涵盖高质量原型撰写公式与实操窍门,助您轻松掌握AI设计工具。无论是零基础入门还是进阶技巧,都能让您快速上手,大幅提升产品设计与协作效率。

2026.08.04

8

21

墨刀AI完整入门
墨刀AI完整入门

PHP中文网为您倾力打造墨刀AI保姆级入门指南完整版!本合集从零基础讲起,涵盖AI生成原型、提示词优化、图片转原型及多轮对话等核心功能。无论您是新手还是进阶用户,都能轻松掌握产品设计全流程。快来PHP中文网,一键解锁高效设计技巧,让想法即刻成型!

2026.08.04

3

20

墨刀AI进阶技巧
墨刀AI进阶技巧

本合集由PHP中文网精心整理,为您提供墨刀AI核心进阶策略指南。内容涵盖高效提示词写作、原型智能生成与微调、结构化导图制作及行业分析报告输出等实战技巧。助您轻松掌握AI设计工具,大幅提升产品设计与团队协作效率。

2026.08.04

7

14

火山引擎实名认证失败怎么办
火山引擎实名认证失败怎么办

火山引擎实名认证失败可能与证件信息填写错误、姓名或企业信息不一致、证件照片不清晰、营业执照状态异常、手机号验证失败或审核资料不完整有关。本专题整理个人认证、企业认证、资料上传、审核退回、重新提交和认证不通过的常见处理方法。

2026.08.04

4

10

热门下载

更多
网站特效
/
网站源码
/
网站素材
/
前端模板

精品课程

更多
相关推荐
/
热门推荐
/
最新课程
ThinkPHP配置开发与CMS后台实战
ThinkPHP配置开发与CMS后台实战

共87课时 | 11.4万人学习

第二十三期_综合实战
第二十三期_综合实战

共89课时 | 9.7万人学习

Layui 快速入门精讲
Layui 快速入门精讲

共5课时 | 1.5万人学习