Bootstrap 5 断点必须通过重定义 $grid-breakpoints 并重新编译实现,且需同步更新 $container-max-widths、组件专属断点变量(如 $navbar-breakpoint)及 BootstrapVue 的 breakpoints 数组;所有变量须在 @import "bootstrap/scss/variables" 前定义,键名大小写与引号须严格一致,否则类不生成或布局错位。

Bootstrap 5 的断点设置必须通过 Sass 变量重定义并重新编译,Bootstrap 4 的断点虽也可定制,但 v5 对变量依赖更严格、关联项更多,漏掉任一环节都会导致类名不生成或容器卡住。
Bootstrap 5 的 $grid-breakpoints 必须在 @import "bootstrap/scss/variables" 前重定义
Bootstrap 4 允许部分场景下用 CSS 媒体查询“打补丁”,但 Bootstrap 5 所有响应式类(如 col-lg-6、d-xl-none)都是编译时静态生成的。$grid-breakpoints 是源头 map,一旦 @import "bootstrap/scss/variables" 执行完毕,它的值就固化了。
- 正确顺序只能是:
@import "bootstrap/scss/functions"→ 紧接着写$grid-breakpoints: (sm: 576px, md: 768px, ...)→@import "bootstrap/scss/variables"→@import "bootstrap/scss/bootstrap" - 漏掉
functions,Sass 会报function undefined;写在variables后面,等于没写 - 键名必须完整且大小写/引号完全一致:比如加
"2xl"就得写"2xl": 1440px,不能写成2xl: 1440px(缺少引号)
$container-max-widths 必须和 $grid-breakpoints 键名严格对齐
只改断点数值却不更新容器宽度,.container 会在新旧断点交界处“卡住”。例如把 lg 从 992px 改成 1024px,但 $container-max-widths 里 lg 还是 960px,结果在 1024–1199px 区间内,容器死守 960px,左右大片留白。
-
$container-max-widths不含xs(它默认 100%) - 键必须与
$grid-breakpoints中非-xs键完全一致,包括顺序、大小写、是否带引号 - 值应略小于下一个断点:比如
xxl: 1920px对应xxl: 1880px,避免跳变
BootstrapVue 组件需要额外配 breakpoints 数组
如果你用的是 BootstrapVue,光改 Sass 变量还不够。组件(如 <b-col lg="4">)不读 CSS,它靠 BVConfigPlugin 初始化时传入的 breakpoints 数组来解析断点名。
立即学习“前端免费学习笔记(深入)”;
- 必须在
Vue.use(BVConfigPlugin, { breakpoints: ['sm', 'md', 'lg', 'xl', 'xxl'] })中一次性声明全部断点 - 顺序必须从小到大,漏掉
lg就会报 warning “Unknown breakpoint 'lg'”,lg="4"直接退化为 100% 宽度 - 新增断点(如
"2xl")后,Sass 里加了键,但breakpoints数组没同步,b-col就不认识这个值
组件专属断点变量(如 $navbar-breakpoint)也要手动覆盖
Navbar、Offcanvas 等组件内部硬编码了断点逻辑,例如 $navbar-breakpoint 默认取 $grid-breakpoints(md)。只改 $grid-breakpoints,不碰这些变量,navbar-expand-lg 仍会在原始 992px 折叠。
- 必须在
@import "bootstrap/scss/variables"之前定义它们,否则会被默认值覆盖 - 可直接赋值像素:
$navbar-breakpoint: 1024px,也可引用新键:$navbar-breakpoint: lg - 搜索
bootstrap/scss/_variables.scss中所有含-breakpoint的变量,一并重写
最易被忽略的是:断点修改不是改完一个变量就完事,而是整套变量链的协同更新——$grid-breakpoints、$container-max-widths、$navbar-breakpoint、$offcanvas-breakpoint、breakpoints 数组,缺一不可。任何一处脱节,都表现为“类写了但没效果”或“布局在某个宽度突然错位”。


















