原生 Bootstrap 侧边菜单不支持多级折叠,因其 Accordion 和 Navbar 未内置嵌套响应式逻辑;需手动用 JavaScript 控制每级 collapse 实例,并在移动端断点时自动收起所有子菜单。
为什么原生 Bootstrap 侧边菜单不支持多级折叠
bootstrap 官方的 accordion 和 navbar 都没内置「多级嵌套 + 响应式收起」的侧边菜单逻辑。你直接套用 collapse 类,第二级菜单会和第一级共用同一个 data-bs-target,点开一级时二级也跟着展开,根本没法独立控制。
真正能跑通的路径只有一条:手动接管折叠状态,用 JavaScript 控制每个子菜单的 show/hide,同时确保移动端自动收起、桌面端默认展开(或按需保留)。
- 别依赖
data-bs-toggle="collapse"套娃——它不处理嵌套层级 - 移动端(
sm以下)必须强制收起所有子菜单,否则侧边栏撑出屏幕 - 桌面端如果默认展开全部,会破坏信息密度;建议只展开当前激活项的祖先路径
怎么用 Bootstrap 5 的 Collapse API 实现逐级控制
核心是放弃纯 HTML 触发,改用 JS 调用 bootstrap.Collapse 构造函数,给每级 div.collapse 单独实例化,并监听父级按钮的点击事件。
示例关键结构:
然后加这段 JS(放在











