Bootstrap 菜鸟教程:从零开始,快速搭建响应式网站
什么是 Bootstrap?
想象一下,你要盖一栋房子,你可以一砖一瓦地砌墙、盖屋顶,这很慢,而且需要很高的技术,或者,你可以买一个精装修的样板房,里面的结构、水电、家具都给你配好了,你只需要根据自己的喜好稍微调整一下就能入住。

Bootstrap 就是那个“精装修的样板房”。
一句话总结:Bootstrap 是一个由 Twitter 开发的、非常流行的前端框架,它提供了大量预写好的 CSS 和 JavaScript 组件,让你能快速、轻松地构建出美观且响应式的网站。
为什么我们要用 Bootstrap?(它的好处)
- 快速开发:不用再自己写大量的 CSS 样式,直接用现成的类名就能实现按钮、表单、导航栏等常见组件,大大节省了时间。
- 响应式设计:这是 Bootstrap 最大的亮点之一,你只需要写一套代码,网站就能自动适应不同尺寸的设备(手机、平板、桌面电脑),而无需为每种设备单独写样式。
- 浏览器兼容性好:Bootstrap 帮你处理了不同浏览器(如 Chrome, Firefox, Edge, Safari)之间的样式差异问题,你不需要再为兼容性头疼。
- 设计美观统一:Bootstrap 提供了一套统一的设计语言和配色方案,让你的网站看起来专业、整洁,即使你不懂设计也能做出好看的页面。
- 组件丰富:它包含了导航栏、轮播图、模态框、警告框、下拉菜单等大量常用的组件,开箱即用。
如何开始使用 Bootstrap?(最简单的入门方法)
对于菜鸟来说,最简单的方式就是使用 CDN(内容分发网络),这就像去餐厅点菜,你不用自己买菜、洗菜、切菜,直接告诉服务员你要什么菜(引入 Bootstrap 的 CSS 和 JS 文件),厨房(CDN 服务器)就会做好端上来。
操作步骤:

第 1 步:创建你的 HTML 文件
在你的电脑上创建一个文件夹,然后在文件夹里新建一个文件,命名为 index.html。
第 2 步:编写基础 HTML 结构
打开 index.html 文件,输入以下最基础的 HTML5 模板结构:

<!DOCTYPE html>
<html lang="zh-CN">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">我的第一个 Bootstrap 页面</title>
</head>
<body>
<h1>你好,世界!</h1>
</body>
</html>
<!DOCTYPE html>:告诉浏览器这是一个 HTML5 文件。<meta charset="UTF-8">:确保页面能正确显示中文等特殊字符。<meta name="viewport" ...>:这是实现响应式设计的核心! 它告诉浏览器如何控制页面的尺寸和缩放。
第 3 步:引入 Bootstrap
我们要把 Bootstrap 的“样式包”和“功能包”引入到我们的 HTML 文件中,在 <head> 标签内添加以下代码:
<!-- Bootstrap 的 CSS 文件 --> <link href="https://cdn.jsdelivr.net/npm/bootstrap@5.3.0/dist/css/bootstrap.min.css" rel="stylesheet"> <!-- 可选:Bootstrap 的 JavaScript 文件,需要放在 body 底部 --> <script src="https://cdn.jsdelivr.net/npm/bootstrap@5.3.0/dist/js/bootstrap.bundle.min.js"></script>
解释:
<link ...>:引入 Bootstrap 的 CSS 样式表,这是让页面变美的关键。<script ...>:引入 Bootstrap 的 JavaScript 功能包,比如下拉菜单、模态框等交互功能需要它,把它放在</body>标签前是一个好习惯,这样可以确保页面内容先加载完,再加载脚本,提高页面加载速度。
第 4 步:使用 Bootstrap 类名
最激动人心的部分来了!我们给 <h1> 标签加上一个 Bootstrap 的“魔法”类名,让它变得更漂亮。
修改 <body> 标签里的内容如下:
<body>
<h1 class="text-center text-primary">你好,世界!</h1>
</body>
发生了什么?
- 我们没有写任何自定义 CSS,只是给
<h1>加上了两个类:text-center和text-primary。 text-center:让文字居中显示。text-primary:给文字应用 Bootstrap 的主色调(通常是蓝色)。
用浏览器打开你的 index.html 文件,你应该能看到一个居中显示的蓝色大标题,恭喜你,你已经成功使用 Bootstrap 了!
Bootstrap 核心概念解析
要更好地使用 Bootstrap,你需要理解它的两个核心设计理念:栅格系统 和 类名前缀。
栅格系统 - 响应式布局的基石
栅格系统是 Bootstrap 的灵魂,它把页面想象成一个由“列”组成的网格,默认情况下,Bootstrap 将一行分为 12 列。
工作原理:
- 容器:你需要一个
.container或.container-fluid类来包裹你的内容。.container:居中显示,并且在不同屏幕尺寸下有固定的最大宽度。.container-fluid:占满整个浏览器视口的宽度。
- 行:在容器内,使用
.row类来创建一行。 - 列:在行内,使用
.col-*类来创建列。 代表 1 到 12 的数字。
示例:创建一个两列布局
<div class="container">
<h2>栅格系统示例</h2>
<div class="row">
<!-- 占用 6 列(一半宽度) -->
<div class="col-6">
<div class="p-3 bg-light border">左侧列</div>
</div>
<!-- 占用 6 列(一半宽度) -->
<div class="col-6">
<div class="p-3 bg-light border">右侧列</div>
</div>
</div>
</div>
.p-3 是一个 Bootstrap 工具类,表示添加内边距(padding)。
.bg-light 是背景色。
.border 是添加边框。
响应式栅格: 栅格系统最厉害的地方在于响应式,你可以通过添加屏幕尺寸前缀来控制在不同设备上列的表现。
col-sm-*:小屏幕(平板,≥576px)col-md-*:中等屏幕(桌面,≥768px)col-lg-*:大屏幕(大桌面,≥992px)col-xl-*:超大屏幕(超大桌面,≥1200px)
示例:响应式两列布局
<div class="container">
<div class="row">
<!-- 在小屏幕上(手机)占满 12 列(一行显示) -->
<!-- 在中等屏幕及以上(桌面)上,占用 8 列(2/3 宽度) -->
<div class="col-12 col-md-8">
<div class="p-3 bg-light border">主要内容区域</div>
</div>
<!-- 在小屏幕上(手机)占满 12 列(一行显示) -->
<!-- 在中等屏幕及以上(桌面)上,占用 4 列(1/3 宽度) -->
<div class="col-12 col-md-4">
<div class="p-3 bg-light border">侧边栏</div>
</div>
</div>
</div>
这个例子意味着:在手机上,内容区和侧边栏会上下堆叠;在桌面电脑上,它们会左右并排显示。
类名前缀 - Bootstrap 的“咒语”
Bootstrap 的强大之处在于它的命名约定,学会了这些前缀,你就看懂了大部分 Bootstrap 的类。
| 前缀 | 含义 | 示例 |
|---|---|---|
text- |
文本相关 | text-center (居中), text-danger (红色危险文字), text-success (绿色成功文字) |
bg- |
背景颜色 | bg-primary (主色背景), bg-secondary (次要色背景), bg-white (白色背景) |
p-, m-, mt-, ms- |
内边距, 外边距 | p-3 (所有方向内边距), m-2 (所有方向外边距), mt-3 (上外边距), ms-3 (左外边距) |
d- |
显示属性 | d-none (隐藏), d-block (块级显示), d-flex (弹性布局), d-inline (行内显示) |
w-, h- |
宽度, 高度 | w-100 (宽度 100%), h-25 (高度 25%) |
btn- |
按钮样式 | btn btn-primary (主要按钮), btn btn-outline-success (绿色轮廓按钮) |
alert- |
警告框样式 | alert alert-warning (黄色警告框), alert alert-danger (红色危险框) |
这些类名可以直接写在 HTML 的 class 属性里,非常方便。
常用组件示例(直接复制粘贴就能用)
按钮
<button type="button" class="btn btn-primary">主要按钮</button> <button type="button" class="btn btn-secondary">次要按钮</button> <button type="button" class="btn btn-success">成功按钮</button> <button type="button" class="btn btn-danger">危险按钮</button> <button type="button" class="btn btn-outline-warning">轮廓警告按钮</button>
导航栏
<nav class="navbar navbar-expand-lg navbar-dark bg-dark">
<div class="container-fluid">
<a class="navbar-brand" href="#">我的网站</a>
<button class="navbar-toggler" type="button" data-bs-toggle="collapse" data-bs-target="#navbarNav">
<span class="navbar-toggler-icon"></span>
</button>
<div class="collapse navbar-collapse" id="navbarNav">
<ul class="navbar-nav">
<li class="nav-item">
<a class="nav-link active" href="#">首页</a>
</li>
<li class="nav-item">
<a class="nav-link" href="#">关于我们</a>
</li>
<li class="nav-item">
<a class="nav-link" href="#">联系方式</a>
</li>
</ul>
</div>
</div>
</nav>
卡片
<div class="card" style="width: 18rem;">
<img src="https://via.placeholder.com/150" class="card-img-top" alt="...">
<div class="card-body">
<h5 class="card-title">卡片标题</h5>
<p class="card-text">这是一张示例卡片,包含了图片、标题和一些文本内容。</p>
<a href="#" class="btn btn-primary">了解更多</a>
</div>
</div>
轮播图
<div id="myCarousel" class="carousel slide" data-bs-ride="carousel">
<div class="carousel-indicators">
<button type="button" data-bs-target="#myCarousel" data-bs-slide-to="0" class="active"></button>
<button type="button" data-bs-target="#myCarousel" data-bs-slide-to="1"></button>
<button type="button" data-bs-target="#myCarousel" data-bs-slide-to="2"></button>
</div>
<div class="carousel-inner">
<div class="carousel-item active">
<img src="https://via.placeholder.com/800x400?text=Slide+1" class="d-block w-100" alt="...">
</div>
<div class="carousel-item">
<img src="https://via.placeholder.com/800x400?text=Slide+2" class="d-block w-100" alt="...">
</div>
<div class="carousel-item">
<img src="https://via.placeholder.com/800x400?text=Slide+3" class="d-block w-100" alt="...">
</div>
</div>
<button class="carousel-control-prev" type="button" data-bs-target="#myCarousel" data-bs-slide="prev">
<span class="carousel-control-prev-icon"></span>
</button>
<button class="carousel-control-next" type="button" data-bs-target="#myCarousel" data-bs-slide="next">
<span class="carousel-control-next-icon"></span>
</button>
</div>
学习资源和下一步
- 官方文档(必看!):Bootstrap 官方文档
这是最好的学习资料,包含了所有组件和工具类的详细说明、示例和代码,虽然英文,但非常直观。
- 菜鸟教程 - Bootstrap 教程:菜鸟教程 Bootstrap
提供了中文版的入门教程和示例,非常适合初学者。
- Bootstrap 官方示例:Bootstrap Examples
官方提供的一些完整页面模板,你可以直接下载源代码进行学习和修改。
Bootstrap 菜鸟的学习路径:
- 动手实践:跟着本教程,亲手创建一个
index.html文件,把示例代码都敲一遍,看看效果。 - 理解核心:搞懂 栅格系统 和 类名前缀,这是使用 Bootstrap 的钥匙。
- 模仿组件:去官方文档或示例网站,找到你喜欢的组件,复制代码,然后尝试修改它,看看会发生什么。
- 组合使用:尝试将多个组件组合在一起,比如把导航栏和卡片放在一起,构建一个简单的页面。
- 查阅文档:遇到不确定的类名或组件,第一时间查阅官方文档。
Bootstrap 是一个非常强大的工具,掌握它能让你在前端开发的道路上事半功倍,祝你学习愉快!
