讲师中心 微信公众号
AI工具推荐 视频效率加速

Bootstrap修改栅格系统的列数为24列

大丽君_6716

大丽君_6716

发布时间:2026-09-23 16:59:17

|

219人浏览过

|

来源于php中文网

原创

直接改$grid-columns不生效,是因为Bootstrap 5的列类由make-col-classes()混合宏硬编码生成(默认只到12),需重写该宏并确保在Bootstrap原始调用前覆盖,且编译链路、Sass版本和类名语义兼容性均需同步处理。

bootstrap修改栅格系统的列数为24列

为什么直接改 $grid-columns 不生效

Bootstrap 5 默认用的是 12 列栅格,想改成 24 列,很多人第一反应是覆盖变量 $grid-columns: 24 就完事——但编译后发现 .col-6 还是占一半宽度,.col-12 才占满,根本没按 24 等分。原因在于:Bootstrap 的列类(如 .col-1.col-12)是硬编码生成的,不是靠变量动态推导出来的。

必须重写 make-col-classes() 混合宏

Bootstrap 的列工具类由 SCSS 混合宏 make-col-classes() 生成,默认只循环到 12。要支持 24 列,得自己重定义这个混合宏,并确保它在 Bootstrap 的原始调用前被覆盖。

实操步骤如下:

  • 新建自定义 SCSS 文件(比如 _custom-grid.scss),先定义 $grid-columns: 24
  • 复制 Bootstrap 源码中 make-col-classes() 的完整定义(注意:Bootstrap 5.3+ 版本该宏位于 scss/mixins/_grid.scss
  • 修改内部循环上限为 24(原为 12),并确保所有 span 计算逻辑仍基于 $grid-columns
  • 在导入 Bootstrap 核心文件 之后、调用 @include make-col-classes() 之前,插入你重写的混合宏定义

关键代码片段(简化示意):

@mixin make-col-classes($columns: $grid-columns, $breakpoints: $grid-breakpoints, $container-max-widths: $container-max-widths) {
  @each $breakpoint, $container-max-width in $container-max-widths {
    @include media-breakpoint-up($breakpoint, $breakpoints) {
      @for $i from 1 through $columns {
        .col#{$breakpoint}-#{$i} {
          flex: 0 0 auto;
          width: percentage($i / $columns);
        }
      }
    }
  }
}

改完后 .col-12 会变成半宽,但旧类名语义失效了

这是最容易忽略的副作用:原来 .col-6 表示“占 6/12 = 50%”,现在 .col-6 变成“占 6/24 = 25%”。如果你项目里已大量使用 .col-4.col-8 等,它们的视觉效果全变了,而且语义断裂——.col-12 不再是“一半”,而是“一半”只对应 .col-12(因为 12/24=0.5),但开发者直觉上仍会认为它是“十二分之一”。

Bootstrap
Bootstrap

Bootstrap 5.3.8 编译版包含可直接用于项目的 CSS、JavaScript 和插件文件,适合快速搭建响应式网页。

下载

建议同步做两件事:

  • 全局搜索替换旧类名(如把 .col-4 改成 .col-8),保持视觉比例不变
  • 避免混用新旧列数逻辑;不要在同一个项目里既用 .col-6(24 列语义)又依赖它过去代表“半宽”的认知
  • 如果只是局部需要更细粒度控制,优先考虑用 flex + flex-grow 或 CSS Grid,而非全局改栅格基数

编译时注意 Sass 版本和 Bootstrap 源码路径

Bootstrap 5.3 要求 Dart Sass ≥ 1.33.0,老版本 Node Sass 已不兼容。另外,make-col-classes() 在不同 Bootstrap 小版本中位置和参数略有差异:

  • Bootstrap 5.0–5.2:宏在 scss/mixins/_grid.scss,参数为 ($gutters: $grid-gutters)
  • Bootstrap 5.3+:宏移到 scss/mixins/_utilities.scss,且默认不自动调用,需显式 @include make-col-classes()
  • 务必检查你用的 Bootstrap npm 包是否含源码(node_modules/bootstrap/scss/),否则无法覆盖混合宏

最稳妥的做法:用 npm install bootstrap@5.3.3 锁定版本,再对照其 scss/ 目录下的实际文件结构来抄写和修改混合宏。

改列数这事,表面是改个数字,实际是牵动整个栅格类的生成逻辑和团队对类名的理解惯性。别只盯着变量,得盯住混合宏、编译链路和已有代码的兼容成本。

热门AI工具

更多
LibLibAI
LibLibAI Hot

一款AI视频创作工具,主要用于国内领先的AI创意平台,以海量模型、低门槛操作与“创作-分享-商业化”生态,让小白与专业创作者都能高效实现图文乃至视频创意表达,适合需要提升相关任务效率的用户。

UP简历
UP简历 Hot

一款AI办公效率工具,主要用于基于AI技术的免费在线简历制作工具,适合需要提升相关任务效率的用户。

咔片AIPPT

一款在线AI演示文稿制作工具,可根据主题和内容需求辅助生成PPT结构与页面,提高演示材料制作效率。

切问学术

切问学术是一款AI论文写作工具,复旦大学NLP团队推出的AI学术智能体。

SkildArt
SkildArt Hot

SkildArt是一款AI文本写作工具,一站式 AI 视觉创作平台。

DeepSeek

DeepSeek是一款面向对话、写作、编程和推理场景的AI大模型工具。

WorkBuddy

一款AI办公效率工具,主要用于腾讯云推出的AI原生桌面智能体工作台,适合需要提升相关任务效率的用户。

豆包大模型

豆包大模型是一款由字节跳动推出的企业级大语言模型服务平台。

Laper
Laper Hot

Laper是专为编剧、导演和制片人推出的 AI 原生剧本创作工具。

相关专题

更多
bootstrap框架介绍
bootstrap框架介绍

本专题整合了bootstrap框架相关介绍,阅读专题下面的文章了解更多详细内容。

585

2026.03.18

bootstrap安装教程
bootstrap安装教程

本专题整合了bootstrap安装相关教程,阅读专题下面的文章了解更多详细操作教程。

159

2026.03.18

css3教程
css3教程

php中文网为大家提供css3教程合集,CSS3的语法是建立在CSS原先版本基础上的,它允许使用者在标签中指定特定的HTML元素而不必使用多余的class、ID或JavaScript。php中文网还为大家带来css3的相关下载资源、相关课程以及相关文章等内容,供大家免费下载使用。

1660

2023.06.14

有哪些css3渐变属性
有哪些css3渐变属性

css3中渐变属性有linear-gradient、radial-gradient、conic-gradient、repeating-linear-gradient、repeating-radial-gradient等。本专题为大家提供相关的文章、下载、课程内容,供大家免费下载体验。

2206

2023.11.01

Buffalo框架数据库开发全教程
Buffalo框架数据库开发全教程

本专题围绕Buffalo框架数据库开发,讲解database.yml多环境配置、soda与fizz迁移生成回滚、模型结构体标签、增删改查与条件查询、一对多与多对多关联、数据校验、回调钩子、事务处理及原生SQL执行能力。

20

2026.09.23

Buffalo框架路由与请求处理实操指南
Buffalo框架路由与请求处理实操指南

本专题讲解Buffalo框架路由与请求处理机制,涵盖路由注册与分组、资源路由、Handler编写规范、Context上下文方法、参数绑定、中间件编写挂载、Session与Cookie读写、Flash消息及错误页面定制方法。

0

2026.09.23

Buffalo框架零基础入门教程
Buffalo框架零基础入门教程

本专题整理Buffalo框架入门内容,涵盖Go环境准备、buffalo CLI安装、新项目生成、目录结构说明、dev热加载启动、数据库连接配置与常见报错排查,帮助新手按约定优于配置的思路跑通第一个Buffalo框架应用。

0

2026.09.23

Conan创建软件包配方指南
Conan创建软件包配方指南

本专题介绍通过conanfile.py创建软件包的方法,讲解包名、版本、依赖和构建设置等基础信息,以及source、build、package、package_info等常用方法的作用及编写思路。

0

2026.09.22

Conan二进制包配置指南
Conan二进制包配置指南

本专题介绍Conan根据操作系统、编译器、架构和构建类型生成二进制包的方法,讲解Profile、Settings、Options及Package ID的作用,帮助管理不同平台和编译环境下的包版本。

20

2026.09.22

热门下载

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

精品课程

更多
相关推荐
/
热门推荐
/
最新课程
Bootstrap5 入门教程
Bootstrap5 入门教程

共0课时 | 0人学习

Bootstrap Components 组件文档
Bootstrap Components 组件文档

共0课时 | 0人学习

Bootstrap Grid 栅格系统
Bootstrap Grid 栅格系统

共0课时 | 0人学习

关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号
PHP中文网订阅号
每天精选资源文章推送

Copyright 2014-2026 https://www.php.cn/ All Rights Reserved | php.cn