Dropdown分割线必须用.dropdown-divider类,且须为.dropdown-menu直接子元素;改色应覆盖background-color或CSS变量--bs-dropdown-divider-bg,禁用及嵌套结构。
Dropdown分割线用的是.dropdown-divider,不是.divider
bootstrap 5 已弃用.divider类,统一改用.dropdown-divider。如果你还在html里写,它不会生效——浏览器根本认不出这个类,也不会渲染分割线。必须改成或。
直接覆盖.dropdown-divider的background-color最可靠
Bootstrap 5 的.dropdown-divider默认是border-top: 1px solid var(--bs-dropdown-divider-bg, #e9ecef),但实际渲染靠的是background-color(内部用height: 0+overflow: hidden模拟细线)。所以改颜色不能只动border,得盯住background-color:
-
.dropdown-divider { background-color: #ff6b6b; }—— 简单粗暴,立即生效 - 如果要全局统一,改 CSS 变量:
:root { --bs-dropdown-divider-bg: #ff6b6b; } - 注意:这个变量只对
.dropdown-divider起作用,不影响.nav-divider或自定义分割线
别在里套再加分割线
常见翻车现场:把 ....dropdown-divider塞进,结果分割线上下多出空白、hover 背景错位。原因很直接:自带margin,而.dropdown-divider要求紧贴上下.dropdown-item。
- 正确结构:
- 如果非要嵌套,删掉
p的margin:p { margin: 0; },否则分割线会被撑开、悬停时背景色盖不住空隙
深色模式下--bs-dropdown-divider-bg可能被覆盖
如果你启用了@media (prefers-color-scheme: dark)并设置了深色主题,--bs-dropdown-divider-bg可能被 Bootstrap 内置的深色变量覆盖(比如#343a40)。这时候光写:root不够:
- 显式重写暗色模式下的值:
@media (prefers-color-scheme: dark) { :root { --bs-dropdown-divider-bg: #6c757d; } } - 或者更稳妥:直接在
.dropdown-menu作用域内覆盖,避免受根变量干扰:.dropdown-menu .dropdown-divider { background-color: #6c757d; } - 检查开发者工具里
.dropdown-divider的实际计算值,确认没被.dropdown-menu-dark或其他第三方样式劫持
真正容易被忽略的,是.dropdown-divider在 DOM 中的位置合法性——它必须是.dropdown-menu的直接子元素,不能嵌套在或











