Bootstrap 环境引入
Bootstrap 不需要"安装",本质就是一组 CSS 和 JS 文件。这一章带你过一遍三种主流引入方式:CDN(最快)、npm 包(工程化)、Sass 源码(深度定制)。新手建议先从 CDN 开始,跑起来再考虑迁移。
方式一:CDN 引入(推荐新手)
CDN(内容分发网络)方式最简单——直接通过 link 和 script 标签从 jsdelivr 加载 Bootstrap 文件,不需要下载任何东西。这是学习、做原型、写 demo 的最佳选择。
<!DOCTYPE html>
<html lang="zh-CN">
<head>
<meta charset="UTF-8" />
<meta name="viewport" content="width=device-width, initial-scale=1" />
<title>Bootstrap CDN 引入</title>
<!-- 1. CSS 放 head 里,先加载样式 -->
<link href="https://cdn.jsdelivr.net/npm/bootstrap@5.3.3/dist/css/bootstrap.min.css" rel="stylesheet" />
</head>
<body>
<div class="container py-5">
<button class="btn btn-primary">CDN 按钮</button>
</div>
<!-- 2. JS bundle 放 body 末尾,让 DOM 先加载 -->
<script src="https://cdn.jsdelivr.net/npm/bootstrap@5.3.3/dist/js/bootstrap.bundle.min.js"></script>
</body>
</html>几个关键点:
- CSS 放 head,JS 放 body 末尾:CSS 提前加载避免页面"裸奔",JS 放最后让 DOM 先渲染,提升首屏速度。
- 用
bootstrap.bundle.min.js而非bootstrap.min.js:bundle 版本内置了 Popper.js,模态框、下拉、tooltip 的定位都需要它。否则你要单独引入 Popper。 - 版本号写死(
@5.3.3):避免锁不到版本出 bug。生产环境务必指定版本,不要用@latest。 - CDN 加速:jsdelivr 在国内访问还算稳定;如果追求极致速度,可以换
unpkg.com或国内 CDN。
Bootstrap Icons 怎么引入
Bootstrap 团队维护了一个图标库 Bootstrap Icons,2000+ 个 SVG 图标,用法和字体图标一样简单。它独立于 Bootstrap 主包,需要单独引入。
<!-- Bootstrap Icons(独立 CDN) -->
<link rel="stylesheet"
href="https://cdn.jsdelivr.net/npm/bootstrap-icons@1.11.3/font/bootstrap-icons.min.css" />
<!-- 用法:给 i 标签加 bi bi-图标名 -->
<button class="btn btn-outline-primary">
<i class="bi bi-house-door-fill"></i> 回首页
</button>
<a class="btn btn-danger" href="#">
<i class="bi bi-trash"></i> 删除
</a>
<span class="text-warning">
<i class="bi bi-star-fill"></i> 收藏
</span>图标的 class 命名规则是 bi bi-名字。完整列表见 icons.getbootstrap.com,搜索、复制 class 名都方便。
方式二:npm 安装(工程化项目)
如果你的项目已经用了打包工具(Vite、Webpack、Rollup),或者用 React / Vue 框架,推荐用 npm 安装。这样可以把 Bootstrap 当作依赖管理,版本锁定、Tree-shaking、Sass 定制都更方便。
# 进入项目目录
cd my-project
# 1. 初始化 package.json(如果还没有)
npm init -y
# 2. 安装 Bootstrap(以及 Popper.js,模态框/下拉需要)
npm install bootstrap @popperjs/core
# 3. (可选)安装 Bootstrap Icons
npm install bootstrap-icons装好后,在项目入口文件引入:
// 方式 A:直接在 JS 里引入(适合简单项目)
import 'bootstrap/dist/css/bootstrap.min.css';
import 'bootstrap/dist/js/bootstrap.bundle.min.js';
// 方式 B:在 Sass 主文件里引入(推荐,便于定制)
// style.scss:
// @use "bootstrap/scss/bootstrap" as *;方式 A 适合不需要定制主题的项目——直接引入编译好的成品。方式 B 适合需要改主题色、圆角、间距的项目——通过 Sass 自定义变量,详见下节。
方式三:Sass 源码定制(深度定制)
Bootstrap 用 Sass 构建,源码是一堆 .scss 文件,里面有几百个变量控制颜色、间距、字体、断点等。要深度定制主题,最干净的做法是覆盖 Sass 变量而不是改编译后的 CSS——后者升级版本时会全部丢失。
新建一个 custom.scss 文件:
// custom.scss —— 必须在引入 Bootstrap 之前定义变量
// 1. 覆盖主题色(Primary 改成绿色系)
$primary: #2ecc71;
$secondary: #7f8c8d;
$success: #27ae60;
$danger: #e74c3c;
// 2. 覆盖圆角、间距等设计变量
$border-radius: .5rem;
$border-radius-sm: .3rem;
$border-radius-lg: .8rem;
$spacer: 1.2rem;
// 3. 引入 Bootstrap(它会用上面的变量编译)
@use "bootstrap/scss/bootstrap" as *;
// 现在你的 btn-primary 已经是绿色圆角更大的按钮然后用 sass CLI 把它编译成普通 CSS:
# 用 sass CLI 把 custom.scss 编译成 css
sass custom.scss custom.css
# 或者用 Dart Sass 监听模式(改保存自动编译)
sass --watch custom.scss:custom.css
# 然后在 HTML 里引入编译后的 custom.css,而不是 Bootstrap 原版
# <link href="custom.css" rel="stylesheet" />这样编译出来的 custom.css 已经包含 Bootstrap 全部样式,且用了你定义的主题色——再没有任何一行代码改了 Bootstrap 源文件,未来升级版本时只改 npm 包版本,定制文件原样保留。
三种方式怎么选?
- CDN:学习、写 demo、做静态落地页、对页面体积不敏感的场景。零配置、立即可用。
- npm + 编译产物:已有打包工具的项目、用 React/Vue 但不改主题色的场景。版本锁定、Tree-shaking。
- npm + Sass 定制:需要改主题色、圆角、间距,追求品牌一致性的项目。定制能力最强。
引入后验证
引入完成后,写一个最简单的按钮测试是否生效:
- 看到一个圆角、紫色背景的"主要按钮" → CSS 引入成功。
- 点击按钮没有任何变化是正常的(按钮没绑定事件);如果有
data-bs-toggle="dropdown"的下拉没反应 → 大概率 JS 没引入或顺序错了。 - 用浏览器开发者工具(F12)看 Network,确认
bootstrap.min.css状态是 200,没有 404。
小结
这一章你学会了三种引入方式:CDN 最快上手、npm 适合工程化、Sass 源码适合深度定制。新手请先用 CDN 把后续教程的代码跑起来,熟练后再迁移到 npm。下一篇我们正式进入 Bootstrap 的核心——栅格系统。
← 上一篇 Bootstrap 简介
下一篇 栅格系统 →