我们将以一个常见的“企业官网”为例,学习如何使用 Bootstrap 的核心功能来构建一个完整的响应式页面。

用bootstrap制作响应式网页
(图片来源网络,侵删)

第一步:准备工作(引入 Bootstrap)

在开始编写 HTML 之前,你需要将 Bootstrap 的 CSS 和 JavaScript 文件引入到你的项目中,最简单的方式是使用 CDN(内容分发网络)。

在你的 HTML 文件的 <head> 标签内引入 Bootstrap 的 CSS 文件,在 <body> 标签结束前引入 Bootstrap 的 JavaScript 和 Popper.js(Bootstrap 的某些组件依赖它)。

<!DOCTYPE html>
<html lang="zh-CN">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">我的 Bootstrap 响应式网页</title>
    <!-- 1. 引入 Bootstrap CSS -->
    <link href="https://cdn.jsdelivr.net/npm/bootstrap@5.3.2/dist/css/bootstrap.min.css" rel="stylesheet">
    <style>
        /* 这里可以添加一些自定义的 CSS */
        .hero-section {
            background-color: #f8f9fa;
            padding: 100px 0;
        }
    </style>
</head>
<body>
    <!-- 我们的网页内容将在这里 -->
    <!-- 2. 引入 Bootstrap JS 和 Popper.js (放在 body 末尾) -->
    <script src="https://cdn.jsdelivr.net/npm/@popperjs/core@2.11.8/dist/umd/popper.min.js"></script>
    <script src="https://cdn.jsdelivr.net/npm/bootstrap@5.3.2/dist/js/bootstrap.min.js"></script>
</body>
</html>

关键点:<meta name="viewport"> 这行代码是响应式设计的灵魂,它告诉浏览器如何控制页面的尺寸和缩放,确保在移动设备上能正确渲染。


第二步:构建导航栏

导航栏是网站的门面,Bootstrap 的 navbar 组件可以轻松创建响应式导航栏,在移动设备上会自动折叠成一个“汉堡”菜单。

用bootstrap制作响应式网页
(图片来源网络,侵删)
<nav class="navbar navbar-expand-lg navbar-dark bg-dark">
    <div class="container">
        <!-- 网站 Logo 或品牌名 -->
        <a class="navbar-brand" href="#">我的网站</a>
        <!-- 移动设备上的“汉堡”菜单按钮 -->
        <button class="navbar-toggler" type="button" data-bs-toggle="collapse" data-bs-target="#navbarNav" aria-controls="navbarNav" aria-expanded="false" aria-label="Toggle navigation">
            <span class="navbar-toggler-icon"></span>
        </button>
        <!-- 导航链接,在移动设备上会被折叠 -->
        <div class="collapse navbar-collapse" id="navbarNav">
            <ul class="navbar-nav ms-auto">
                <li class="nav-item">
                    <a class="nav-link active" aria-current="page" 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>
                <li class="nav-item">
                    <a class="nav-link" href="#">联系我们</a>
                </li>
            </ul>
        </div>
    </div>
</nav>

解析:

  • navbar, navbar-expand-lg, navbar-dark, bg-dark: 这些是基础样式类,定义了导航栏的外观和响应式断点(lg 表示在大型屏幕上展开)。
  • navbar-toggler: 这是“汉堡”菜单按钮。
  • data-bs-toggle="collapse"data-bs-target="#navbarNav": 这是 Bootstrap 的 JavaScript 功能,点击按钮时会切换 idnavbarNav 的元素的显示/隐藏。
  • navbar-nav, nav-item, nav-link: 定义了导航链接的列表样式。

第三步:创建主页横幅

主页横幅是吸引用户注意力的第一部分,我们可以使用 jumbotron(在 Bootstrap 5 中已移除,但可以用 container 和自定义样式实现类似效果)或一个简单的全宽区块。

<div class="hero-section text-center">
    <div class="container">
        <h1 class="display-4">欢迎来到我的网站</h1>
        <p class="lead">这是一个使用 Bootstrap 构建的响应式网页示例。</p>
        <a class="btn btn-primary btn-lg" href="#" role="button">了解更多</a>
    </div>
</div>

解析:

  • hero-section: 我们自定义的 CSS 类,用于设置背景色和内边距。
  • container: Bootstrap 的核心布局类,为内容提供居中的响应式容器。
  • display-4: 一个巨大的标题样式。
  • lead: 用于突出显示的段落样式。
  • btn, btn-primary, btn-lg: 这些是按钮样式类。btn-primary 是蓝色主题,btn-lg 是大号按钮。

第四步:构建响应式内容网格

这是 Bootstrap 最强大的功能之一,使用 rowcol 类可以轻松创建灵活的网格布局。

用bootstrap制作响应式网页
(图片来源网络,侵删)

假设我们想在横幅下方展示三个服务卡片。

<div class="container my-5">
    <h2 class="text-center mb-4">我们的服务</h2>
    <div class="row">
        <!-- 第一列 -->
        <div class="col-md-4 mb-4">
            <div class="card h-100">
                <img src="https://via.placeholder.com/300x200.png?text=服务1" class="card-img-top" alt="服务图片">
                <div class="card-body">
                    <h5 class="card-title">专业咨询</h5>
                    <p class="card-text">提供专业的行业咨询,帮助您的企业做出明智的决策。</p>
                    <a href="#" class="btn btn-outline-primary">了解详情</a>
                </div>
            </div>
        </div>
        <!-- 第二列 -->
        <div class="col-md-4 mb-4">
            <div class="card h-100">
                <img src="https://via.placeholder.com/300x200.png?text=服务2" class="card-img-top" alt="服务图片">
                <div class="card-body">
                    <h5 class="card-title">技术支持</h5>
                    <p class="card-text">7x24小时全天候技术支持,确保您的系统稳定运行。</p>
                    <a href="#" class="btn btn-outline-primary">了解详情</a>
                </div>
            </div>
        </div>
        <!-- 第三列 -->
        <div class="col-md-4 mb-4">
            <div class="card h-100">
                <img src="https://via.placeholder.com/300x200.png?text=服务3" class="card-img-top" alt="服务图片">
                <div class="card-body">
                    <h5 class="card-title">定制开发</h5>
                    <p class="card-text">根据您的需求,量身定制专属的软件解决方案。</p>
                    <a href="#" class="btn btn-outline-primary">了解详情</a>
                </div>
            </div>
        </div>
    </div>
</div>

解析:

  • row: 代表一行,是网格布局的容器。
  • col-md-4: 这是响应式的关键!
    • col: 表示这是一个列。
    • md: 代表“中等”(Medium)屏幕尺寸(≥768px)。
    • 4: 表示在中等屏幕上,该列占 12 列网格中的 4 列。
    • 响应式效果:
      • 在大屏幕(如桌面)上,一行会显示 3 个卡片 (4+4+4=12)。
      • 在小屏幕(如平板,<768px)上,md-4 失效,每个 col 会自动变成全宽,一行只显示一个卡片。
  • card, card-img-top, card-body, card-title: 这些是卡片组件的类,用于快速构建一个带图片和文本的卡片。
  • h-100: 让卡片的高度占满整个行高,使所有卡片高度一致。
  • mb-4: m (margin), b (bottom), 4 (大小),表示下边距。

第五步:添加页脚

页脚通常包含版权信息、联系方式和链接。

<footer class="bg-dark text-white py-4">
    <div class="container">
        <div class="row">
            <div class="col-md-6">
                <p>&copy; 2025 我的网站. 保留所有权利.</p>
            </div>
            <div class="col-md-6 text-md-end">
                <a href="#" class="text-white me-3">隐私政策</a>
                <a href="#" class="text-white">使用条款</a>
            </div>
        </div>
    </div>
</footer>

解析:

  • bg-dark, text-white: 设置深色背景和白色文字。
  • py-4: p (padding), y (top/bottom), 4,设置上下内边距。
  • text-md-end: 在中等及以上屏幕上文字右对齐。

完整代码与效果

将以上所有部分组合起来,你就得到了一个完整的响应式网页。

<!DOCTYPE html>
<html lang="zh-CN">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">我的 Bootstrap 响应式网页</title>
    <!-- 1. 引入 Bootstrap CSS -->
    <link href="https://cdn.jsdelivr.net/npm/bootstrap@5.3.2/dist/css/bootstrap.min.css" rel="stylesheet">
    <style>
        /* 这里可以添加一些自定义的 CSS */
        .hero-section {
            background-color: #f8f9fa;
            padding: 100px 0;
        }
    </style>
</head>
<body>
    <!-- 导航栏 -->
    <nav class="navbar navbar-expand-lg navbar-dark bg-dark">
        <div class="container">
            <a class="navbar-brand" href="#">我的网站</a>
            <button class="navbar-toggler" type="button" data-bs-toggle="collapse" data-bs-target="#navbarNav" aria-controls="navbarNav" aria-expanded="false" aria-label="Toggle navigation">
                <span class="navbar-toggler-icon"></span>
            </button>
            <div class="collapse navbar-collapse" id="navbarNav">
                <ul class="navbar-nav ms-auto">
                    <li class="nav-item">
                        <a class="nav-link active" aria-current="page" 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>
                    <li class="nav-item">
                        <a class="nav-link" href="#">联系我们</a>
                    </li>
                </ul>
            </div>
        </div>
    </nav>
    <!-- 主页横幅 -->
    <div class="hero-section text-center">
        <div class="container">
            <h1 class="display-4">欢迎来到我的网站</h1>
            <p class="lead">这是一个使用 Bootstrap 构建的响应式网页示例。</p>
            <a class="btn btn-primary btn-lg" href="#" role="button">了解更多</a>
        </div>
    </div>
    <!-- 响应式内容网格 -->
    <div class="container my-5">
        <h2 class="text-center mb-4">我们的服务</h2>
        <div class="row">
            <div class="col-md-4 mb-4">
                <div class="card h-100">
                    <img src="https://via.placeholder.com/300x200.png?text=服务1" class="card-img-top" alt="服务图片">
                    <div class="card-body">
                        <h5 class="card-title">专业咨询</h5>
                        <p class="card-text">提供专业的行业咨询,帮助您的企业做出明智的决策。</p>
                        <a href="#" class="btn btn-outline-primary">了解详情</a>
                    </div>
                </div>
            </div>
            <div class="col-md-4 mb-4">
                <div class="card h-100">
                    <img src="https://via.placeholder.com/300x200.png?text=服务2" class="card-img-top" alt="服务图片">
                    <div class="card-body">
                        <h5 class="card-title">技术支持</h5>
                        <p class="card-text">7x24小时全天候技术支持,确保您的系统稳定运行。</p>
                        <a href="#" class="btn btn-outline-primary">了解详情</a>
                    </div>
                </div>
            </div>
            <div class="col-md-4 mb-4">
                <div class="card h-100">
                    <img src="https://via.placeholder.com/300x200.png?text=服务3" class="card-img-top" alt="服务图片">
                    <div class="card-body">
                        <h5 class="card-title">定制开发</h5>
                        <p class="card-text">根据您的需求,量身定制专属的软件解决方案。</p>
                        <a href="#" class="btn btn-outline-primary">了解详情</a>
                    </div>
                </div>
            </div>
        </div>
    </div>
    <!-- 页脚 -->
    <footer class="bg-dark text-white py-4">
        <div class="container">
            <div class="row">
                <div class="col-md-6">
                    <p>&copy; 2025 我的网站. 保留所有权利.</p>
                </div>
                <div class="col-md-6 text-md-end">
                    <a href="#" class="text-white me-3">隐私政策</a>
                    <a href="#" class="text-white">使用条款</a>
                </div>
            </div>
        </div>
    </footer>
    <!-- 2. 引入 Bootstrap JS 和 Popper.js (放在 body 末尾) -->
    <script src="https://cdn.jsdelivr.net/npm/@popperjs/core@2.11.8/dist/umd/popper.min.js"></script>
    <script src="https://cdn.jsdelivr.net/npm/bootstrap@5.3.2/dist/js/bootstrap.min.js"></script>
</body>
</html>

如何测试响应式效果?

你可以通过以下方式轻松测试:

  1. 浏览器开发者工具:在 Chrome 或 Firefox 中,按 F12 打开开发者工具,然后点击左上角的响应式设计模式图标(一个手机和平板图标)。
  2. 调整浏览器窗口大小:手动拖动浏览器窗口的边缘,观察页面布局如何随着宽度的变化而改变,你会看到卡片从一行三个,变为一行两个,再变为一行一个。

总结与进阶

  • 核心思想:Bootstrap 的核心是移动优先组件化,它提供了大量预定义的类,让你通过组合这些类来快速构建页面。
  • 栅格系统container, row, col-* 是 Bootstrap 布局的基石,务必掌握。
  • 组件:学习使用 navbar, card, carousel (轮播图), modal (模态框) 等现成的组件,可以极大提高开发效率。
  • 自定义:当 Bootstrap 的默认样式不能满足需求时,可以通过自定义 CSS 或使用 Bootstrap 的 Sass 版本来进行深度定制。

现在你已经掌握了使用 Bootstrap 制作响应式网页的基本方法,可以尝试添加更多组件,比如轮播图、表单、模态框等,来丰富你的网页。