bootstrap 5中折叠功能失效的主因是数据属性前缀未更新为data-bs-toggle和data-bs-target,navbar-toggler图标不显示因缺少.navbar父容器,且必须引入bootstrap.bundle.min.js。

data-bs-toggle 和 data-bs-target 写错或没改前缀
Bootstrap 5 起,所有 JS 组件的数据属性都加了 bs 命名空间,data-toggle="collapse" 和 data-target="#myCollapse" 已完全失效——哪怕 HTML 结构、JS 加载都没问题,点击也毫无反应。
- 必须改成
data-bs-toggle="collapse"和data-bs-target="#myCollapse" - 注意:不是
data-bs="toggle"或漏掉bs-,大小写敏感,且不能混用(比如data-bs-toggle+data-target) - 如果从 Bootstrap 4 迁移,全局搜索替换
data-toggle→data-bs-toggle、data-target→data-bs-target是最快止损方式
navbar-toggler 图标不显示,连带折叠按钮点不动
图标空白 ≠ JS 失效,但用户会误以为“折叠坏了”。根本原因是 --bs-navbar-toggler-icon-bg 这个 CSS 变量只在 .navbar 类作用域下定义,如果 .navbar-toggler 不在 .navbar 容器内,图标背景就为空,按钮也常因样式塌陷导致点击热区异常。
- 确保折叠按钮的直接或间接父元素有
.navbar类,例如:<nav class="navbar"><button class="navbar-toggler">...</button></nav> - 不要把
.navbar-toggler单独拎出来放页面别处(比如塞进 footer),它依赖.navbar提供的 CSS 变量和基础样式上下文 - 检查浏览器开发者工具中
.navbar-toggler-icon的background-image计算值是否为none,是则大概率缺.navbar包裹
JS 文件没加载或加载顺序错误
Bootstrap 5 的 Collapse 不再依赖 jQuery,但强依赖 bootstrap.bundle.min.js(含 Popper)。如果只引入了 CSS,或只引入了未打包 Popper 的 bootstrap.min.js,折叠将无法初始化。
- 务必引入
bootstrap.bundle.min.js(不是bootstrap.min.js),且放在











