Bootstrap4 创建一个网页(深入浅出)

从零开始:用 Bootstrap4 创建一个网页

在当今快速发展的前端开发领域,一个响应式、美观且兼容多设备的网页,已经成为基本要求。而 Bootstrap 4 正是帮助我们快速实现这一目标的利器。它不仅提供了丰富的预设样式和组件,还内置了强大的响应式网格系统,让开发者无需从头造轮子。

如果你是初学者,可能会觉得“写网页”是一件复杂的事情:HTML 结构要清晰,CSS 样式要灵活,还要考虑手机、平板、桌面等不同屏幕的显示效果。但 Bootstrap 4 的出现,就像为网页开发搭建了一座“预制房屋”——你只需要选择合适的模块,拼接起来就能快速成型。

今天,我们就以一个真实场景为例,手把手带你用 Bootstrap 4 创建一个完整的网页。整个过程不会涉及复杂的 JavaScript 或框架,适合零基础入门者,也适合中级开发者温故知新。


项目背景:一个简单的个人作品集页面

设想你是一位前端新手,刚刚完成几个小项目,想建一个展示作品的个人网页。页面需要包含:头部导航栏、作品展示区、关于我、联系方式等模块。要求在手机、平板和电脑上都能正常显示。

这个需求,正是 Bootstrap 4 的典型应用场景。


引入 Bootstrap 4 到项目中

在开始编码前,我们需要将 Bootstrap 4 的核心文件引入到 HTML 页面中。最简单的方式是使用 CDN(内容分发网络)链接,无需下载文件,直接在线调用。

<!DOCTYPE html>
<html lang="zh-CN">
<head>
    <meta charset="UTF-8" />
    <meta name="viewport" content="width=device-width, initial-scale=1.0" />
    <title>我的作品集</title>

    <!-- 引入 Bootstrap 4 的 CSS 样式文件 -->
    <link href="https://cdn.jsdelivr.net/npm/bootstrap@4.6.2/dist/css/bootstrap.min.css" rel="stylesheet">

    <!-- 可选:自定义样式文件(放在 Bootstrap 之后) -->
    <link rel="stylesheet" href="style.css">
</head>
<body>
    <!-- 页面内容将放在这里 -->
</body>
</html>

✅ 注释说明:

  • <!DOCTYPE html> 声明文档类型,告诉浏览器这是 HTML5。
  • <meta charset="UTF-8"> 设置字符编码为 UTF-8,支持中文。
  • viewport 设置视口,确保页面在移动设备上正确缩放。
  • rel="stylesheet" 表示这是一个样式表文件。
  • cdn.jsdelivr.net 是一个可靠的公共 CDN 服务,加载速度快。

通过这三行代码,你就已经为项目搭建好了 Bootstrap 4 的基础环境。接下来,就可以开始构建页面结构了。


构建响应式导航栏

导航栏是网页的“门面”,它需要在不同设备上表现一致。Bootstrap 4 提供了 .navbar 类来轻松创建响应式导航栏。

<!-- 导航栏开始 -->
<nav class="navbar navbar-expand-lg navbar-dark bg-primary">
    <div class="container">
        <!-- 网站标题 -->
        <a class="navbar-brand" href="#">我的作品集</a>

        <!-- 移动端菜单按钮(汉堡菜单) -->
        <button class="navbar-toggler" type="button" data-toggle="collapse" data-target="#navbarNav">
            <span class="navbar-toggler-icon"></span>
        </button>

        <!-- 导航菜单内容 -->
        <div class="collapse navbar-collapse" id="navbarNav">
            <ul class="navbar-nav ml-auto">
                <li class="nav-item">
                    <a class="nav-link" href="#home">首页</a>
                </li>
                <li class="nav-item">
                    <a class="nav-link" href="#projects">作品</a>
                </li>
                <li class="nav-item">
                    <a class="nav-link" href="#about">关于我</a>
                </li>
                <li class="nav-item">
                    <a class="nav-link" href="#contact">联系</a>
                </li>
            </ul>
        </div>
    </div>
</nav>
<!-- 导航栏结束 -->

✅ 注释说明:

  • navbar-expand-lg 表示在大屏幕(≥992px)上展开,小屏幕上折叠。
  • navbar-dark 使用深色文字与背景对比,bg-primary 设置为蓝色背景。
  • data-toggle="collapse"data-target="#navbarNav" 是 Bootstrap 的 JavaScript 控制属性,用于控制菜单的展开/收起。
  • ml-auto 将菜单项推到右侧,实现“右对齐”布局。
  • nav-link 是导航链接的标准类,自动处理悬停效果。

当你在手机上打开页面时,会看到一个“三横线”按钮(汉堡菜单),点击后弹出菜单。这就是响应式设计的体现。


使用网格系统布局内容区域

Bootstrap 4 的网格系统是其最核心的功能之一。它基于 12 列的弹性布局,让页面内容能自动适应不同屏幕。

我们来创建一个作品展示区,展示 3 个作品卡片。

<!-- 作品展示区开始 -->
<section id="projects" class="py-5">
    <div class="container">
        <h2 class="text-center mb-4">我的作品</h2>

        <!-- 网格容器 -->
        <div class="row">
            <!-- 第一个作品卡片 -->
            <div class="col-md-4 mb-4">
                <div class="card h-100 shadow-sm">
                    <img src="https://via.placeholder.com/300x200" class="card-img-top" alt="项目 1">
                    <div class="card-body">
                        <h5 class="card-title">响应式登录页</h5>
                        <p class="card-text">使用 HTML + CSS + Bootstrap 4 实现的登录界面,支持手机适配。</p>
                        <a href="#" class="btn btn-outline-primary btn-sm">查看详情</a>
                    </div>
                </div>
            </div>

            <!-- 第二个作品卡片 -->
            <div class="col-md-4 mb-4">
                <div class="card h-100 shadow-sm">
                    <img src="https://via.placeholder.com/300x200" class="card-img-top" alt="项目 2">
                    <div class="card-body">
                        <h5 class="card-title">个人博客模板</h5>
                        <p class="card-text">简洁风格的静态博客页面,适合技术分享。</p>
                        <a href="#" class="btn btn-outline-primary btn-sm">查看详情</a>
                    </div>
                </div>
            </div>

            <!-- 第三个作品卡片 -->
            <div class="col-md-4 mb-4">
                <div class="card h-100 shadow-sm">
                    <img src="https://via.placeholder.com/300x200" class="card-img-top" alt="项目 3">
                    <div class="card-body">
                        <h5 class="card-title">待办事项应用</h5>
                        <p class="card-text">前端实现的简单任务管理工具,支持增删改查。</p>
                        <a href="#" class="btn btn-outline-primary btn-sm">查看详情</a>
                    </div>
                </div>
            </div>
        </div>
    </div>
</section>
<!-- 作品展示区结束 -->

✅ 注释说明:

  • col-md-4 表示在中等及以上屏幕(≥768px)上每行显示 3 列(12 ÷ 3 = 4)。
  • mb-4 添加底部外边距,防止卡片堆叠太紧密。
  • card 是 Bootstrap 的卡片组件,模拟真实卡片效果。
  • h-100 让卡片高度占满父容器,保持对齐。
  • shadow-sm 添加轻微阴影,提升视觉层次感。
  • btn-outline-primary 是一个带边框的蓝色按钮,视觉友好。

这个网格布局会自动处理响应:在手机上,每行只显示 1 个卡片;在平板上显示 2 个;在电脑上显示 3 个。完全不用写额外的 CSS。


添加关于我与联系方式模块

继续用类似方式,添加“关于我”和“联系”模块。

<!-- 关于我模块 -->
<section id="about" class="py-5 bg-light">
    <div class="container">
        <div class="row justify-content-center">
            <div class="col-lg-8">
                <h3 class="text-center mb-4">关于我</h3>
                <p class="lead text-center">你好,我是前端开发者小李,热爱用代码创造美观的网页。</p>
                <p class="text-justify">
                    我从 2022 年开始学习前端技术,专注于 HTML、CSS 和 JavaScript 的实践。目前熟练掌握 Bootstrap、Vue 3.0 等主流框架。
                    希望通过这个作品集,与更多同行交流,共同进步。
                </p>
            </div>
        </div>
    </div>
</section>

<!-- 联系方式模块 -->
<section id="contact" class="py-5">
    <div class="container">
        <h3 class="text-center mb-4">联系我</h3>
        <div class="row justify-content-center">
            <div class="col-lg-6">
                <form>
                    <div class="form-group">
                        <label for="name">姓名</label>
                        <input type="text" class="form-control" id="name" placeholder="请输入你的名字">
                    </div>
                    <div class="form-group">
                        <label for="email">邮箱</label>
                        <input type="email" class="form-control" id="email" placeholder="example@domain.com">
                    </div>
                    <div class="form-group">
                        <label for="message">留言</label>
                        <textarea class="form-control" id="message" rows="4" placeholder="写下你的想法..."></textarea>
                    </div>
                    <button type="submit" class="btn btn-success btn-block">发送消息</button>
                </form>
            </div>
        </div>
    </div>
</section>

✅ 注释说明:

  • bg-light 设置浅灰色背景,与上一模块形成视觉对比。
  • justify-content-center 让内容在容器中居中。
  • form-control 是 Bootstrap 提供的输入框样式,统一外观。
  • btn-block 让按钮占满父容器宽度,适合表单提交。

添加 JavaScript 支持(可选但推荐)

为了让导航栏在移动端正常工作,需要引入 Bootstrap 的 JavaScript 文件。

<!-- 在 </body> 标签前添加 -->
<script src="https://cdn.jsdelivr.net/npm/jquery@3.6.0/dist/jquery.min.js"></script>
<script src="https://cdn.jsdelivr.net/npm/bootstrap@4.6.2/dist/js/bootstrap.bundle.min.js"></script>

✅ 注释说明:

  • jquery.min.js 是 Bootstrap 的依赖库,必须先加载。
  • bootstrap.bundle.min.js 包含所有 Bootstrap 的 JavaScript 功能(包括折叠、模态框、提示等)。
  • 使用 bundle 版本可以减少 HTTP 请求,提升性能。

总结:Bootstrap4 创建一个网页的完整流程

通过以上步骤,我们成功完成了一个完整的网页开发。整个过程清晰、高效,且无需编写复杂的 CSS。

Bootstrap 4 不仅简化了布局和组件的编写,更重要的是它让“响应式设计”变得触手可及。无论你是初学者还是中级开发者,掌握 Bootstrap 4 都能显著提升你的开发效率。

当你站在浏览器前,看到一个在手机、平板、电脑上都表现良好的页面时,那种成就感是无与伦比的。这正是前端开发的魅力所在。

记住,Bootstrap 4 创建一个网页,不是“抄代码”,而是“用工具造房子”。理解它的结构与逻辑,你才能真正驾驭它,而不是被它束缚。

现在,轮到你了。打开你的代码编辑器,复制本文的代码,动手试试吧!