活动公告

系统通知
通知:本站资源由网友上传分享,如有违规等问题请到版务模块进行投诉,资源失效请在帖子内回复要求补档,会尽快处理!
10-23 09:31

Bootstrap5下载与使用方法全解析新手也能快速上手的响应式开发框架指南

SunJu_FaceMall

3万

主题

2720

科技点

3万

积分

执行版主

碾压王

积分
32881

塔罗立华奏

执行版主 发表于 2025-8-30 13:30:34 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?立即注册

x
1. Bootstrap5简介

Bootstrap是由Twitter开发并开源的一款前端框架,它提供了丰富的HTML、CSS和JavaScript组件,可以帮助开发者快速构建美观、响应式的网站和Web应用。Bootstrap5作为最新版本,带来了许多新特性和改进,包括移除jQuery依赖、改进的网格系统、新增组件和实用工具类等。

Bootstrap5的主要优势在于:

• 响应式设计:内置响应式网格系统,可以轻松适配各种设备屏幕
• 丰富的组件库:提供按钮、导航栏、模态框、轮播图等常用UI组件
• 自定义性强:可以通过Sass变量和mixin进行深度定制
• 浏览器兼容性好:支持所有主流浏览器
• 文档完善:提供详细的官方文档和示例

2. Bootstrap5的下载方法

2.1 通过CDN引入

对于初学者或快速原型开发,使用CDN(内容分发网络)是最简单的方式。你只需要在HTML文件中添加以下链接即可:
  1. <!DOCTYPE html>
  2. <html lang="zh-CN">
  3. <head>
  4.     <meta charset="UTF-8">
  5.     <meta name="viewport" content="width=device-width, initial-scale=1.0">
  6.     <title>Bootstrap5示例</title>
  7.     <!-- Bootstrap5 CSS -->
  8.     <link href="https://cdn.jsdelivr.net/npm/bootstrap@5.3.0/dist/css/bootstrap.min.css" rel="stylesheet">
  9.     <!-- Bootstrap5 JavaScript Bundle with Popper -->
  10.     <script src="https://cdn.jsdelivr.net/npm/bootstrap@5.3.0/dist/js/bootstrap.bundle.min.js"></script>
  11. </head>
  12. <body>
  13.     <!-- 你的内容 -->
  14. </body>
  15. </html>
复制代码

2.2 通过npm安装

如果你使用Node.js环境,可以通过npm(Node包管理器)安装Bootstrap5:
  1. npm install bootstrap@5.3.0
复制代码

安装后,你可以在你的JavaScript文件中导入Bootstrap:
  1. // 导入Bootstrap的CSS
  2. import 'bootstrap/dist/css/bootstrap.min.css';
  3. // 导入Bootstrap的JavaScript
  4. import 'bootstrap/dist/js/bootstrap.bundle.min.js';
复制代码

2.3 下载源文件

你也可以直接从Bootstrap官网下载源文件:

1. 访问Bootstrap官网
2. 点击”Download”按钮
3. 选择”Compiled CSS and JS”下载编译后的文件,或选择”Source files”下载源文件

下载后,将文件解压到你的项目目录中,然后在HTML文件中引用:
  1. <!DOCTYPE html>
  2. <html lang="zh-CN">
  3. <head>
  4.     <meta charset="UTF-8">
  5.     <meta name="viewport" content="width=device-width, initial-scale=1.0">
  6.     <title>Bootstrap5示例</title>
  7.     <!-- 引用本地Bootstrap5 CSS -->
  8.     <link href="path/to/bootstrap.min.css" rel="stylesheet">
  9. </head>
  10. <body>
  11.     <!-- 你的内容 -->
  12.    
  13.     <!-- 引用本地Bootstrap5 JavaScript -->
  14.     <script src="path/to/bootstrap.bundle.min.js"></script>
  15. </body>
  16. </html>
复制代码

3. Bootstrap5的安装与配置

3.1 基本项目结构

为了更好地组织你的Bootstrap项目,建议创建以下基本项目结构:
  1. my-bootstrap-project/
  2. ├── css/
  3. │   ├── bootstrap.min.css
  4. │   └── custom.css        # 自定义样式
  5. ├── js/
  6. │   ├── bootstrap.bundle.min.js
  7. │   └── custom.js         # 自定义脚本
  8. ├── images/               # 图片资源
  9. └── index.html            # 主页面
复制代码

3.2 HTML模板设置

创建一个基本的HTML模板,包含必要的meta标签和Bootstrap文件引用:
  1. <!DOCTYPE html>
  2. <html lang="zh-CN">
  3. <head>
  4.     <meta charset="UTF-8">
  5.     <meta name="viewport" content="width=device-width, initial-scale=1.0">
  6.     <meta name="description" content="使用Bootstrap5构建的响应式网站">
  7.     <meta name="author" content="你的名字">
  8.     <title>我的Bootstrap5网站</title>
  9.    
  10.     <!-- Bootstrap5 CSS -->
  11.     <link href="css/bootstrap.min.css" rel="stylesheet">
  12.     <!-- 自定义CSS -->
  13.     <link href="css/custom.css" rel="stylesheet">
  14. </head>
  15. <body>
  16.     <!-- 导航栏 -->
  17.     <nav class="navbar navbar-expand-lg navbar-dark bg-dark">
  18.         <div class="container">
  19.             <a class="navbar-brand" href="#">我的网站</a>
  20.             <button class="navbar-toggler" type="button" data-bs-toggle="collapse" data-bs-target="#navbarNav">
  21.                 <span class="navbar-toggler-icon"></span>
  22.             </button>
  23.             <div class="collapse navbar-collapse" id="navbarNav">
  24.                 <ul class="navbar-nav">
  25.                     <li class="nav-item">
  26.                         <a class="nav-link active" href="#">首页</a>
  27.                     </li>
  28.                     <li class="nav-item">
  29.                         <a class="nav-link" href="#">关于</a>
  30.                     </li>
  31.                     <li class="nav-item">
  32.                         <a class="nav-link" href="#">服务</a>
  33.                     </li>
  34.                     <li class="nav-item">
  35.                         <a class="nav-link" href="#">联系</a>
  36.                     </li>
  37.                 </ul>
  38.             </div>
  39.         </div>
  40.     </nav>
  41.     <!-- 主要内容 -->
  42.     <main class="container my-5">
  43.         <h1>欢迎来到我的网站</h1>
  44.         <p>这是一个使用Bootstrap5构建的响应式网站示例。</p>
  45.     </main>
  46.     <!-- 页脚 -->
  47.     <footer class="bg-dark text-white py-4">
  48.         <div class="container text-center">
  49.             <p>&copy; 2023 我的网站. 保留所有权利.</p>
  50.         </div>
  51.     </footer>
  52.     <!-- Bootstrap5 JavaScript -->
  53.     <script src="js/bootstrap.bundle.min.js"></script>
  54.     <!-- 自定义JavaScript -->
  55.     <script src="js/custom.js"></script>
  56. </body>
  57. </html>
复制代码

3.3 自定义配置

如果你想自定义Bootstrap的样式,可以通过以下几种方式:

创建一个custom.css文件,覆盖Bootstrap的默认样式:
  1. /* custom.css */
  2. body {
  3.     font-family: 'Segoe UI', Tahoma, Geneva, Verdana, sans-serif;
  4.     background-color: #f8f9fa;
  5. }
  6. .navbar-brand {
  7.     font-weight: bold;
  8.     font-size: 1.5rem;
  9. }
  10. /* 自定义按钮样式 */
  11. .btn-primary {
  12.     background-color: #375a7f;
  13.     border-color: #375a7f;
  14. }
  15. .btn-primary:hover {
  16.     background-color: #2b4765;
  17.     border-color: #2b4765;
  18. }
复制代码

如果你熟悉Sass,可以通过修改Bootstrap的源变量来自定义样式:

1. 安装必要的依赖:
  1. npm install bootstrap@5.3.0 sass
复制代码

1. 创建一个custom.scss文件:
  1. // 导入Bootstrap的函数、变量和mixins
  2. @import "bootstrap/scss/functions";
  3. @import "bootstrap/scss/variables";
  4. @import "bootstrap/scss/mixins";
  5. // 自定义变量
  6. $primary: #375a7f;
  7. $secondary: #444;
  8. $success: #00bc8c;
  9. $info: #3498db;
  10. $warning: #f39c12;
  11. $danger: #e74c3c;
  12. $light: #f8f9fa;
  13. $dark: #343a40;
  14. // 导入Bootstrap的其余部分
  15. @import "bootstrap/scss/bootstrap";
  16. // 自定义样式
  17. body {
  18.     font-family: 'Segoe UI', Tahoma, Geneva, Verdana, sans-serif;
  19. }
  20. .navbar-brand {
  21.     font-weight: bold;
  22.     font-size: 1.5rem;
  23. }
复制代码

1. 编译Sass文件:
  1. sass custom.scss css/custom.css
复制代码

4. Bootstrap5的基本使用方法

4.1 网格系统

Bootstrap的网格系统是其核心功能之一,它基于12列布局,可以帮助你创建响应式布局。
  1. <div class="container">
  2.     <div class="row">
  3.         <div class="col">
  4.             列 1
  5.         </div>
  6.         <div class="col">
  7.             列 2
  8.         </div>
  9.         <div class="col">
  10.             列 3
  11.         </div>
  12.     </div>
  13. </div>
复制代码
  1. <div class="container">
  2.     <div class="row">
  3.         <div class="col-4">
  4.             这列占4份宽度
  5.         </div>
  6.         <div class="col-8">
  7.             这列占8份宽度
  8.         </div>
  9.     </div>
  10. </div>
复制代码
  1. <div class="container">
  2.     <div class="row">
  3.         <!-- 在小屏幕上占12份,中等屏幕上占6份,大屏幕上占4份 -->
  4.         <div class="col-12 col-md-6 col-lg-4">
  5.             响应式列
  6.         </div>
  7.         <div class="col-12 col-md-6 col-lg-4">
  8.             响应式列
  9.         </div>
  10.         <div class="col-12 col-md-6 col-lg-4">
  11.             响应式列
  12.         </div>
  13.     </div>
  14. </div>
复制代码

4.2 常用组件
  1. <!-- 基本按钮 -->
  2. <button type="button" class="btn btn-primary">主要按钮</button>
  3. <button type="button" class="btn btn-secondary">次要按钮</button>
  4. <button type="button" class="btn btn-success">成功按钮</button>
  5. <button type="button" class="btn btn-danger">危险按钮</button>
  6. <button type="button" class="btn btn-warning">警告按钮</button>
  7. <button type="button" class="btn btn-info">信息按钮</button>
  8. <button type="button" class="btn btn-light">浅色按钮</button>
  9. <button type="button" class="btn btn-dark">深色按钮</button>
  10. <!-- 轮廓按钮 -->
  11. <button type="button" class="btn btn-outline-primary">主要轮廓按钮</button>
  12. <button type="button" class="btn btn-outline-secondary">次要轮廓按钮</button>
  13. <!-- 按钮大小 -->
  14. <button type="button" class="btn btn-primary btn-lg">大按钮</button>
  15. <button type="button" class="btn btn-primary">默认按钮</button>
  16. <button type="button" class="btn btn-primary btn-sm">小按钮</button>
复制代码
  1. <div class="card" style="width: 18rem;">
  2.     <img src="path/to/image.jpg" class="card-img-top" alt="卡片图片">
  3.     <div class="card-body">
  4.         <h5 class="card-title">卡片标题</h5>
  5.         <p class="card-text">这是一个简单的卡片示例,包含图片、标题、描述文本和按钮。</p>
  6.         <a href="#" class="btn btn-primary">查看详情</a>
  7.     </div>
  8. </div>
复制代码
  1. <nav class="navbar navbar-expand-lg navbar-dark bg-primary">
  2.     <div class="container-fluid">
  3.         <a class="navbar-brand" href="#">网站名称</a>
  4.         <button class="navbar-toggler" type="button" data-bs-toggle="collapse" data-bs-target="#navbarNav">
  5.             <span class="navbar-toggler-icon"></span>
  6.         </button>
  7.         <div class="collapse navbar-collapse" id="navbarNav">
  8.             <ul class="navbar-nav me-auto">
  9.                 <li class="nav-item">
  10.                     <a class="nav-link active" href="#">首页</a>
  11.                 </li>
  12.                 <li class="nav-item">
  13.                     <a class="nav-link" href="#">功能</a>
  14.                 </li>
  15.                 <li class="nav-item">
  16.                     <a class="nav-link" href="#">定价</a>
  17.                 </li>
  18.                 <li class="nav-item dropdown">
  19.                     <a class="nav-link dropdown-toggle" href="#" id="navbarDropdown" role="button" data-bs-toggle="dropdown">
  20.                         更多
  21.                     </a>
  22.                     <ul class="dropdown-menu">
  23.                         <li><a class="dropdown-item" href="#">关于我们</a></li>
  24.                         <li><a class="dropdown-item" href="#">联系我们</a></li>
  25.                         <li><hr class="dropdown-divider"></li>
  26.                         <li><a class="dropdown-item" href="#">帮助中心</a></li>
  27.                     </ul>
  28.                 </li>
  29.             </ul>
  30.             <form class="d-flex">
  31.                 <input class="form-control me-2" type="search" placeholder="搜索" aria-label="Search">
  32.                 <button class="btn btn-outline-light" type="submit">搜索</button>
  33.             </form>
  34.         </div>
  35.     </div>
  36. </nav>
复制代码
  1. <div id="carouselExampleIndicators" class="carousel slide" data-bs-ride="carousel">
  2.     <div class="carousel-indicators">
  3.         <button type="button" data-bs-target="#carouselExampleIndicators" data-bs-slide-to="0" class="active" aria-current="true" aria-label="Slide 1"></button>
  4.         <button type="button" data-bs-target="#carouselExampleIndicators" data-bs-slide-to="1" aria-label="Slide 2"></button>
  5.         <button type="button" data-bs-target="#carouselExampleIndicators" data-bs-slide-to="2" aria-label="Slide 3"></button>
  6.     </div>
  7.     <div class="carousel-inner">
  8.         <div class="carousel-item active">
  9.             <img src="path/to/slide1.jpg" class="d-block w-100" alt="幻灯片1">
  10.             <div class="carousel-caption d-none d-md-block">
  11.                 <h5>第一张幻灯片标题</h5>
  12.                 <p>第一张幻灯片的描述文本。</p>
  13.             </div>
  14.         </div>
  15.         <div class="carousel-item">
  16.             <img src="path/to/slide2.jpg" class="d-block w-100" alt="幻灯片2">
  17.             <div class="carousel-caption d-none d-md-block">
  18.                 <h5>第二张幻灯片标题</h5>
  19.                 <p>第二张幻灯片的描述文本。</p>
  20.             </div>
  21.         </div>
  22.         <div class="carousel-item">
  23.             <img src="path/to/slide3.jpg" class="d-block w-100" alt="幻灯片3">
  24.             <div class="carousel-caption d-none d-md-block">
  25.                 <h5>第三张幻灯片标题</h5>
  26.                 <p>第三张幻灯片的描述文本。</p>
  27.             </div>
  28.         </div>
  29.     </div>
  30.     <button class="carousel-control-prev" type="button" data-bs-target="#carouselExampleIndicators" data-bs-slide="prev">
  31.         <span class="carousel-control-prev-icon" aria-hidden="true"></span>
  32.         <span class="visually-hidden">上一张</span>
  33.     </button>
  34.     <button class="carousel-control-next" type="button" data-bs-target="#carouselExampleIndicators" data-bs-slide="next">
  35.         <span class="carousel-control-next-icon" aria-hidden="true"></span>
  36.         <span class="visually-hidden">下一张</span>
  37.     </button>
  38. </div>
复制代码
  1. <!-- 触发模态框的按钮 -->
  2. <button type="button" class="btn btn-primary" data-bs-toggle="modal" data-bs-target="#exampleModal">
  3.     打开模态框
  4. </button>
  5. <!-- 模态框 -->
  6. <div class="modal fade" id="exampleModal" tabindex="-1" aria-labelledby="exampleModalLabel" aria-hidden="true">
  7.     <div class="modal-dialog">
  8.         <div class="modal-content">
  9.             <div class="modal-header">
  10.                 <h5 class="modal-title" id="exampleModalLabel">模态框标题</h5>
  11.                 <button type="button" class="btn-close" data-bs-dismiss="modal" aria-label="Close"></button>
  12.             </div>
  13.             <div class="modal-body">
  14.                 这是一个模态框的示例内容。你可以在这里放置任何HTML内容,比如文本、图片、表单等。
  15.             </div>
  16.             <div class="modal-footer">
  17.                 <button type="button" class="btn btn-secondary" data-bs-dismiss="modal">关闭</button>
  18.                 <button type="button" class="btn btn-primary">保存更改</button>
  19.             </div>
  20.         </div>
  21.     </div>
  22. </div>
复制代码

4.3 表单
  1. <form>
  2.     <div class="mb-3">
  3.         <label for="exampleInputEmail1" class="form-label">邮箱地址</label>
  4.         <input type="email" class="form-control" id="exampleInputEmail1" aria-describedby="emailHelp">
  5.         <div id="emailHelp" class="form-text">我们绝不会与任何人分享您的邮箱。</div>
  6.     </div>
  7.     <div class="mb-3">
  8.         <label for="exampleInputPassword1" class="form-label">密码</label>
  9.         <input type="password" class="form-control" id="exampleInputPassword1">
  10.     </div>
  11.     <div class="mb-3 form-check">
  12.         <input type="checkbox" class="form-check-input" id="exampleCheck1">
  13.         <label class="form-check-label" for="exampleCheck1">记住我</label>
  14.     </div>
  15.     <button type="submit" class="btn btn-primary">提交</button>
  16. </form>
复制代码
  1. <form>
  2.     <div class="row mb-3">
  3.         <div class="col">
  4.             <input type="text" class="form-control" placeholder="名字" aria-label="名字">
  5.         </div>
  6.         <div class="col">
  7.             <input type="text" class="form-control" placeholder="姓氏" aria-label="姓氏">
  8.         </div>
  9.     </div>
  10.     <div class="mb-3">
  11.         <label for="inputEmail4" class="form-label">邮箱</label>
  12.         <input type="email" class="form-control" id="inputEmail4">
  13.     </div>
  14.     <div class="mb-3">
  15.         <label for="inputPassword4" class="form-label">密码</label>
  16.         <input type="password" class="form-control" id="inputPassword4">
  17.     </div>
  18.     <div class="mb-3">
  19.         <label for="inputAddress" class="form-label">地址</label>
  20.         <input type="text" class="form-control" id="inputAddress" placeholder="1234 Main St">
  21.     </div>
  22.     <div class="mb-3">
  23.         <label for="inputAddress2" class="form-label">地址 2</label>
  24.         <input type="text" class="form-control" id="inputAddress2" placeholder="公寓, 工作室, 或楼层">
  25.     </div>
  26.     <div class="row mb-3">
  27.         <div class="col-md-6">
  28.             <label for="inputCity" class="form-label">城市</label>
  29.             <input type="text" class="form-control" id="inputCity">
  30.         </div>
  31.         <div class="col-md-4">
  32.             <label for="inputState" class="form-label">省份</label>
  33.             <select id="inputState" class="form-select">
  34.                 <option selected>选择...</option>
  35.                 <option>北京</option>
  36.                 <option>上海</option>
  37.                 <option>广州</option>
  38.                 <option>深圳</option>
  39.             </select>
  40.         </div>
  41.         <div class="col-md-2">
  42.             <label for="inputZip" class="form-label">邮编</label>
  43.             <input type="text" class="form-control" id="inputZip">
  44.         </div>
  45.     </div>
  46.     <div class="mb-3 form-check">
  47.         <input type="checkbox" class="form-check-input" id="gridCheck">
  48.         <label class="form-check-label" for="gridCheck">
  49.             同意条款和条件
  50.         </label>
  51.     </div>
  52.     <button type="submit" class="btn btn-primary">注册</button>
  53. </form>
复制代码

5. 响应式布局的实现

Bootstrap5的响应式设计是其核心特性之一,通过使用网格系统、响应式工具类和媒体查询,可以轻松创建适应不同设备的布局。

5.1 响应式断点

Bootstrap5包含六个默认断点,用于在不同屏幕尺寸上调整布局:

• xs(超小): <576px
• sm(小): ≥576px
• md(中): ≥768px
• lg(大): ≥992px
• xl(超大): ≥1200px
• xxl(超超大): ≥1400px

5.2 响应式网格示例
  1. <div class="container">
  2.     <!-- 在所有屏幕上,每行显示三列 -->
  3.     <div class="row">
  4.         <div class="col-4">
  5.             <div class="p-2 border bg-light">列 1</div>
  6.         </div>
  7.         <div class="col-4">
  8.             <div class="p-2 border bg-light">列 2</div>
  9.         </div>
  10.         <div class="col-4">
  11.             <div class="p-2 border bg-light">列 3</div>
  12.         </div>
  13.     </div>
  14.    
  15.     <!-- 在小屏幕上每行显示一列,中等屏幕上每行显示两列,大屏幕上每行显示三列 -->
  16.     <div class="row mt-4">
  17.         <div class="col-12 col-md-6 col-lg-4">
  18.             <div class="p-2 border bg-light">响应式列 1</div>
  19.         </div>
  20.         <div class="col-12 col-md-6 col-lg-4">
  21.             <div class="p-2 border bg-light">响应式列 2</div>
  22.         </div>
  23.         <div class="col-12 col-md-6 col-lg-4">
  24.             <div class="p-2 border bg-light">响应式列 3</div>
  25.         </div>
  26.     </div>
  27. </div>
复制代码

5.3 响应式工具类

Bootstrap5提供了一系列响应式工具类,可以根据屏幕尺寸显示或隐藏内容:
  1. <div class="container">
  2.     <!-- 在小屏幕上隐藏,中等屏幕以上显示 -->
  3.     <div class="d-none d-md-block bg-primary text-white p-2 my-2">
  4.         这段内容只在中型屏幕(md)及以上显示
  5.     </div>
  6.    
  7.     <!-- 在大屏幕上隐藏,小屏幕上显示 -->
  8.     <div class="d-lg-none bg-success text-white p-2 my-2">
  9.         这段内容只在大型屏幕(lg)以下显示
  10.     </div>
  11.    
  12.     <!-- 在所有屏幕上显示,但在不同屏幕上有不同文本对齐方式 -->
  13.     <div class="text-start text-md-center text-lg-end bg-info text-white p-2 my-2">
  14.         文本对齐方式:小屏幕左对齐,中等屏幕居中,大屏幕右对齐
  15.     </div>
  16. </div>
复制代码

5.4 响应式图片和视频
  1. <div class="container">
  2.     <!-- 响应式图片 -->
  3.     <img src="path/to/image.jpg" class="img-fluid" alt="响应式图片">
  4.    
  5.     <!-- 响应式视频 -->
  6.     <div class="ratio ratio-16x9 mt-4">
  7.         <iframe src="https://www.youtube.com/embed/dQw4w9WgXcQ" title="YouTube视频" allowfullscreen></iframe>
  8.     </div>
  9. </div>
复制代码

5.5 响应式表格
  1. <div class="container">
  2.     <div class="table-responsive">
  3.         <table class="table table-striped table-hover">
  4.             <thead>
  5.                 <tr>
  6.                     <th scope="col">#</th>
  7.                     <th scope="col">姓名</th>
  8.                     <th scope="col">职位</th>
  9.                     <th scope="col">部门</th>
  10.                     <th scope="col">邮箱</th>
  11.                     <th scope="col">电话</th>
  12.                 </tr>
  13.             </thead>
  14.             <tbody>
  15.                 <tr>
  16.                     <th scope="row">1</th>
  17.                     <td>张三</td>
  18.                     <td>前端开发</td>
  19.                     <td>技术部</td>
  20.                     <td>zhangsan@example.com</td>
  21.                     <td>13800138000</td>
  22.                 </tr>
  23.                 <tr>
  24.                     <th scope="row">2</th>
  25.                     <td>李四</td>
  26.                     <td>后端开发</td>
  27.                     <td>技术部</td>
  28.                     <td>lisi@example.com</td>
  29.                     <td>13900139000</td>
  30.                 </tr>
  31.                 <tr>
  32.                     <th scope="row">3</th>
  33.                     <td>王五</td>
  34.                     <td>产品经理</td>
  35.                     <td>产品部</td>
  36.                     <td>wangwu@example.com</td>
  37.                     <td>13700137000</td>
  38.                 </tr>
  39.             </tbody>
  40.         </table>
  41.     </div>
  42. </div>
复制代码

6. 常用组件的使用

6.1 导航组件
  1. <ul class="nav nav-tabs" id="myTab" role="tablist">
  2.     <li class="nav-item" role="presentation">
  3.         <button class="nav-link active" id="home-tab" data-bs-toggle="tab" data-bs-target="#home" type="button" role="tab" aria-controls="home" aria-selected="true">首页</button>
  4.     </li>
  5.     <li class="nav-item" role="presentation">
  6.         <button class="nav-link" id="profile-tab" data-bs-toggle="tab" data-bs-target="#profile" type="button" role="tab" aria-controls="profile" aria-selected="false">个人资料</button>
  7.     </li>
  8.     <li class="nav-item" role="presentation">
  9.         <button class="nav-link" id="contact-tab" data-bs-toggle="tab" data-bs-target="#contact" type="button" role="tab" aria-controls="contact" aria-selected="false">联系我们</button>
  10.     </li>
  11. </ul>
  12. <div class="tab-content" id="myTabContent">
  13.     <div class="tab-pane fade show active" id="home" role="tabpanel" aria-labelledby="home-tab">
  14.         <p>这是首页的内容。你可以在这里放置任何HTML内容。</p>
  15.     </div>
  16.     <div class="tab-pane fade" id="profile" role="tabpanel" aria-labelledby="profile-tab">
  17.         <p>这是个人资料页的内容。你可以在这里放置任何HTML内容。</p>
  18.     </div>
  19.     <div class="tab-pane fade" id="contact" role="tabpanel" aria-labelledby="contact-tab">
  20.         <p>这是联系我们页的内容。你可以在这里放置任何HTML内容。</p>
  21.     </div>
  22. </div>
复制代码
  1. <nav aria-label="breadcrumb">
  2.     <ol class="breadcrumb">
  3.         <li class="breadcrumb-item"><a href="#">首页</a></li>
  4.         <li class="breadcrumb-item"><a href="#">产品</a></li>
  5.         <li class="breadcrumb-item active" aria-current="page">当前产品</li>
  6.     </ol>
  7. </nav>
复制代码

6.2 警告框
  1. <div class="alert alert-primary" role="alert">
  2.     这是一个主要警告框示例!
  3. </div>
  4. <div class="alert alert-secondary" role="alert">
  5.     这是一个次要警告框示例!
  6. </div>
  7. <div class="alert alert-success" role="alert">
  8.     这是一个成功警告框示例!
  9. </div>
  10. <div class="alert alert-danger" role="alert">
  11.     这是一个危险警告框示例!
  12. </div>
  13. <div class="alert alert-warning" role="alert">
  14.     这是一个警告警告框示例!
  15. </div>
  16. <div class="alert alert-info" role="alert">
  17.     这是一个信息警告框示例!
  18. </div>
  19. <div class="alert alert-light" role="alert">
  20.     这是一个浅色警告框示例!
  21. </div>
  22. <div class="alert alert-dark" role="alert">
  23.     这是一个深色警告框示例!
  24. </div>
  25. <!-- 可关闭的警告框 -->
  26. <div class="alert alert-warning alert-dismissible fade show" role="alert">
  27.     <strong>警告!</strong> 这是一个可以关闭的警告框。
  28.     <button type="button" class="btn-close" data-bs-dismiss="alert" aria-label="Close"></button>
  29. </div>
复制代码

6.3 徽章
  1. <h1>示例标题 <span class="badge bg-secondary">新</span></h1>
  2. <h2>示例标题 <span class="badge bg-secondary">新</span></h2>
  3. <h3>示例标题 <span class="badge bg-secondary">新</span></h3>
  4. <h4>示例标题 <span class="badge bg-secondary">新</span></h4>
  5. <h5>示例标题 <span class="badge bg-secondary">新</span></h5>
  6. <h6>示例标题 <span class="badge bg-secondary">新</span></h6>
  7. <!-- 不同颜色的徽章 -->
  8. <span class="badge bg-primary">主要</span>
  9. <span class="badge bg-secondary">次要</span>
  10. <span class="badge bg-success">成功</span>
  11. <span class="badge bg-danger">危险</span>
  12. <span class="badge bg-warning text-dark">警告</span>
  13. <span class="badge bg-info text-dark">信息</span>
  14. <span class="badge bg-light text-dark">浅色</span>
  15. <span class="badge bg-dark">深色</span>
  16. <!-- 圆形徽章 -->
  17. <span class="badge rounded-pill bg-primary">主要</span>
  18. <span class="badge rounded-pill bg-secondary">次要</span>
  19. <span class="badge rounded-pill bg-success">成功</span>
复制代码

6.4 进度条
  1. <!-- 基本进度条 -->
  2. <div class="progress">
  3.     <div class="progress-bar" role="progressbar" style="width: 25%" aria-valuenow="25" aria-valuemin="0" aria-valuemax="100"></div>
  4. </div>
  5. <!-- 带标签的进度条 -->
  6. <div class="progress">
  7.     <div class="progress-bar" role="progressbar" style="width: 25%" aria-valuenow="25" aria-valuemin="0" aria-valuemax="100">25%</div>
  8. </div>
  9. <!-- 不同高度的进度条 -->
  10. <div class="progress" style="height: 1px;">
  11.     <div class="progress-bar" role="progressbar" style="width: 25%" aria-valuenow="25" aria-valuemin="0" aria-valuemax="100"></div>
  12. </div>
  13. <div class="progress" style="height: 20px;">
  14.     <div class="progress-bar" role="progressbar" style="width: 25%" aria-valuenow="25" aria-valuemin="0" aria-valuemax="100"></div>
  15. </div>
  16. <!-- 不同颜色的进度条 -->
  17. <div class="progress">
  18.     <div class="progress-bar bg-success" role="progressbar" style="width: 25%" aria-valuenow="25" aria-valuemin="0" aria-valuemax="100"></div>
  19. </div>
  20. <div class="progress">
  21.     <div class="progress-bar bg-info" role="progressbar" style="width: 50%" aria-valuenow="50" aria-valuemin="0" aria-valuemax="100"></div>
  22. </div>
  23. <div class="progress">
  24.     <div class="progress-bar bg-warning" role="progressbar" style="width: 75%" aria-valuenow="75" aria-valuemin="0" aria-valuemax="100"></div>
  25. </div>
  26. <div class="progress">
  27.     <div class="progress-bar bg-danger" role="progressbar" style="width: 100%" aria-valuenow="100" aria-valuemin="0" aria-valuemax="100"></div>
  28. </div>
  29. <!-- 条纹进度条 -->
  30. <div class="progress">
  31.     <div class="progress-bar progress-bar-striped" role="progressbar" style="width: 10%" aria-valuenow="10" aria-valuemin="0" aria-valuemax="100"></div>
  32. </div>
  33. <div class="progress">
  34.     <div class="progress-bar progress-bar-striped bg-success" role="progressbar" style="width: 25%" aria-valuenow="25" aria-valuemin="0" aria-valuemax="100"></div>
  35. </div>
  36. <div class="progress">
  37.     <div class="progress-bar progress-bar-striped bg-info" role="progressbar" style="width: 50%" aria-valuenow="50" aria-valuemin="0" aria-valuemax="100"></div>
  38. </div>
  39. <div class="progress">
  40.     <div class="progress-bar progress-bar-striped bg-warning" role="progressbar" style="width: 75%" aria-valuenow="75" aria-valuemin="0" aria-valuemax="100"></div>
  41. </div>
  42. <div class="progress">
  43.     <div class="progress-bar progress-bar-striped bg-danger" role="progressbar" style="width: 100%" aria-valuenow="100" aria-valuemin="0" aria-valuemax="100"></div>
  44. </div>
  45. <!-- 动画进度条 -->
  46. <div class="progress">
  47.     <div class="progress-bar progress-bar-striped progress-bar-animated" role="progressbar" aria-valuenow="75" aria-valuemin="0" aria-valuemax="100" style="width: 75%"></div>
  48. </div>
  49. <!-- 多重进度条 -->
  50. <div class="progress">
  51.     <div class="progress-bar" role="progressbar" style="width: 15%" aria-valuenow="15" aria-valuemin="0" aria-valuemax="100"></div>
  52.     <div class="progress-bar bg-success" role="progressbar" style="width: 30%" aria-valuenow="30" aria-valuemin="0" aria-valuemax="100"></div>
  53.     <div class="progress-bar bg-info" role="progressbar" style="width: 20%" aria-valuenow="20" aria-valuemin="0" aria-valuemax="100"></div>
  54. </div>
复制代码

6.5 折叠组件
  1. <p>
  2.     <button class="btn btn-primary" type="button" data-bs-toggle="collapse" data-bs-target="#collapseExample" aria-expanded="false" aria-controls="collapseExample">
  3.         点击展开/折叠内容
  4.     </button>
  5. </p>
  6. <div class="collapse" id="collapseExample">
  7.     <div class="card card-body">
  8.         这是一个折叠组件的内容示例。你可以在这里放置任何HTML内容,比如文本、图片、列表等。
  9.     </div>
  10. </div>
  11. <!-- 手风琴示例 -->
  12. <div class="accordion" id="accordionExample">
  13.     <div class="accordion-item">
  14.         <h2 class="accordion-header" id="headingOne">
  15.             <button class="accordion-button" type="button" data-bs-toggle="collapse" data-bs-target="#collapseOne" aria-expanded="true" aria-controls="collapseOne">
  16.                 手风琴项目 #1
  17.             </button>
  18.         </h2>
  19.         <div id="collapseOne" class="accordion-collapse collapse show" aria-labelledby="headingOne" data-bs-parent="#accordionExample">
  20.             <div class="accordion-body">
  21.                 <strong>这是第一个手风琴项目的主体。</strong> 它默认显示,直到点击折叠插件。你可以在这里放置任何HTML内容。
  22.             </div>
  23.         </div>
  24.     </div>
  25.     <div class="accordion-item">
  26.         <h2 class="accordion-header" id="headingTwo">
  27.             <button class="accordion-button collapsed" type="button" data-bs-toggle="collapse" data-bs-target="#collapseTwo" aria-expanded="false" aria-controls="collapseTwo">
  28.                 手风琴项目 #2
  29.             </button>
  30.         </h2>
  31.         <div id="collapseTwo" class="accordion-collapse collapse" aria-labelledby="headingTwo" data-bs-parent="#accordionExample">
  32.             <div class="accordion-body">
  33.                 <strong>这是第二个手风琴项目的主体。</strong> 它默认隐藏,直到点击展开插件。你可以在这里放置任何HTML内容。
  34.             </div>
  35.         </div>
  36.     </div>
  37.     <div class="accordion-item">
  38.         <h2 class="accordion-header" id="headingThree">
  39.             <button class="accordion-button collapsed" type="button" data-bs-toggle="collapse" data-bs-target="#collapseThree" aria-expanded="false" aria-controls="collapseThree">
  40.                 手风琴项目 #3
  41.             </button>
  42.         </h2>
  43.         <div id="collapseThree" class="accordion-collapse collapse" aria-labelledby="headingThree" data-bs-parent="#accordionExample">
  44.             <div class="accordion-body">
  45.                 <strong>这是第三个手风琴项目的主体。</strong> 它默认隐藏,直到点击展开插件。你可以在这里放置任何HTML内容。
  46.             </div>
  47.         </div>
  48.     </div>
  49. </div>
复制代码

7. 实例演示

7.1 创建一个完整的响应式网站首页

下面是一个使用Bootstrap5创建的完整响应式网站首页示例:
  1. <!DOCTYPE html>
  2. <html lang="zh-CN">
  3. <head>
  4.     <meta charset="UTF-8">
  5.     <meta name="viewport" content="width=device-width, initial-scale=1.0">
  6.     <meta name="description" content="使用Bootstrap5构建的响应式网站示例">
  7.     <title>我的网站 - 首页</title>
  8.    
  9.     <!-- Bootstrap5 CSS -->
  10.     <link href="https://cdn.jsdelivr.net/npm/bootstrap@5.3.0/dist/css/bootstrap.min.css" rel="stylesheet">
  11.    
  12.     <!-- 自定义CSS -->
  13.     <style>
  14.         .hero-section {
  15.             background: linear-gradient(rgba(0, 0, 0, 0.5), rgba(0, 0, 0, 0.5)), url('https://picsum.photos/seed/hero/1920/1080.jpg');
  16.             background-size: cover;
  17.             background-position: center;
  18.             color: white;
  19.             padding: 100px 0;
  20.             text-align: center;
  21.         }
  22.         
  23.         .feature-icon {
  24.             font-size: 3rem;
  25.             margin-bottom: 1rem;
  26.             color: #0d6efd;
  27.         }
  28.         
  29.         .team-member {
  30.             text-align: center;
  31.             margin-bottom: 30px;
  32.         }
  33.         
  34.         .team-member img {
  35.             width: 150px;
  36.             height: 150px;
  37.             border-radius: 50%;
  38.             object-fit: cover;
  39.             margin-bottom: 15px;
  40.         }
  41.         
  42.         footer {
  43.             background-color: #343a40;
  44.             color: white;
  45.             padding: 40px 0;
  46.         }
  47.         
  48.         .footer-links a {
  49.             color: #adb5bd;
  50.             text-decoration: none;
  51.         }
  52.         
  53.         .footer-links a:hover {
  54.             color: white;
  55.             text-decoration: underline;
  56.         }
  57.     </style>
  58. </head>
  59. <body>
  60.     <!-- 导航栏 -->
  61.     <nav class="navbar navbar-expand-lg navbar-dark bg-dark fixed-top">
  62.         <div class="container">
  63.             <a class="navbar-brand" href="#">我的网站</a>
  64.             <button class="navbar-toggler" type="button" data-bs-toggle="collapse" data-bs-target="#navbarNav">
  65.                 <span class="navbar-toggler-icon"></span>
  66.             </button>
  67.             <div class="collapse navbar-collapse" id="navbarNav">
  68.                 <ul class="navbar-nav ms-auto">
  69.                     <li class="nav-item">
  70.                         <a class="nav-link active" href="#">首页</a>
  71.                     </li>
  72.                     <li class="nav-item">
  73.                         <a class="nav-link" href="#features">功能</a>
  74.                     </li>
  75.                     <li class="nav-item">
  76.                         <a class="nav-link" href="#about">关于我们</a>
  77.                     </li>
  78.                     <li class="nav-item">
  79.                         <a class="nav-link" href="#team">团队</a>
  80.                     </li>
  81.                     <li class="nav-item">
  82.                         <a class="nav-link" href="#contact">联系我们</a>
  83.                     </li>
  84.                 </ul>
  85.             </div>
  86.         </div>
  87.     </nav>
  88.     <!-- 主要内容 -->
  89.     <main>
  90.         <!-- 英雄区域 -->
  91.         <section class="hero-section">
  92.             <div class="container">
  93.                 <h1 class="display-4 fw-bold mb-4">欢迎来到我的网站</h1>
  94.                 <p class="lead mb-5">这是一个使用Bootstrap5构建的响应式网站示例,展示了各种组件和布局技巧。</p>
  95.                 <a href="#features" class="btn btn-primary btn-lg me-3">了解更多</a>
  96.                 <a href="#contact" class="btn btn-outline-light btn-lg">联系我们</a>
  97.             </div>
  98.         </section>
  99.         <!-- 功能区域 -->
  100.         <section id="features" class="py-5">
  101.             <div class="container">
  102.                 <h2 class="text-center mb-5">我们的功能</h2>
  103.                 <div class="row g-4">
  104.                     <div class="col-md-4">
  105.                         <div class="card h-100">
  106.                             <div class="card-body text-center">
  107.                                 <div class="feature-icon">
  108.                                     <i class="bi bi-phone"></i>
  109.                                 </div>
  110.                                 <h3 class="card-title">响应式设计</h3>
  111.                                 <p class="card-text">我们的网站在各种设备上都能完美显示,从手机到桌面电脑,提供一致的用户体验。</p>
  112.                             </div>
  113.                         </div>
  114.                     </div>
  115.                     <div class="col-md-4">
  116.                         <div class="card h-100">
  117.                             <div class="card-body text-center">
  118.                                 <div class="feature-icon">
  119.                                     <i class="bi bi-palette"></i>
  120.                                 </div>
  121.                                 <h3 class="card-title">现代UI设计</h3>
  122.                                 <p class="card-text">采用最新的设计趋势和最佳实践,创建美观、直观的用户界面。</p>
  123.                             </div>
  124.                         </div>
  125.                     </div>
  126.                     <div class="col-md-4">
  127.                         <div class="card h-100">
  128.                             <div class="card-body text-center">
  129.                                 <div class="feature-icon">
  130.                                     <i class="bi bi-lightning"></i>
  131.                                 </div>
  132.                                 <h3 class="card-title">高性能</h3>
  133.                                 <p class="card-text">优化的代码和资源,确保网站快速加载,提供流畅的用户体验。</p>
  134.                             </div>
  135.                         </div>
  136.                     </div>
  137.                 </div>
  138.             </div>
  139.         </section>
  140.         <!-- 关于我们 -->
  141.         <section id="about" class="py-5 bg-light">
  142.             <div class="container">
  143.                 <div class="row align-items-center">
  144.                     <div class="col-lg-6">
  145.                         <h2 class="mb-4">关于我们</h2>
  146.                         <p>我们是一家专注于创建高质量网站和Web应用的公司。我们的团队由经验丰富的开发人员、设计师和项目经理组成,致力于为客户提供最佳的解决方案。</p>
  147.                         <p>我们相信,好的网站不仅要美观,还要功能强大、易于使用。这就是为什么我们采用最新的技术和最佳实践,确保我们的项目达到最高标准。</p>
  148.                         <a href="#" class="btn btn-primary mt-3">了解更多</a>
  149.                     </div>
  150.                     <div class="col-lg-6">
  151.                         <img src="https://io.pixtech.org/pixtech/forum/202508/30/fbd0fc707c3e412a.webp" alt="关于我们" class="img-fluid rounded shadow">
  152.                     </div>
  153.                 </div>
  154.             </div>
  155.         </section>
  156.         <!-- 团队 -->
  157.         <section id="team" class="py-5">
  158.             <div class="container">
  159.                 <h2 class="text-center mb-5">我们的团队</h2>
  160.                 <div class="row">
  161.                     <div class="col-md-3">
  162.                         <div class="team-member">
  163.                             <img src="https://io.pixtech.org/pixtech/forum/202508/30/149b4b775455462c.webp" alt="团队成员">
  164.                             <h4>张三</h4>
  165.                             <p class="text-muted">创始人 & CEO</p>
  166.                         </div>
  167.                     </div>
  168.                     <div class="col-md-3">
  169.                         <div class="team-member">
  170.                             <img src="https://io.pixtech.org/pixtech/forum/202508/30/1870b1ab7e6b456e.webp" alt="团队成员">
  171.                             <h4>李四</h4>
  172.                             <p class="text-muted">技术总监</p>
  173.                         </div>
  174.                     </div>
  175.                     <div class="col-md-3">
  176.                         <div class="team-member">
  177.                             <img src="https://io.pixtech.org/pixtech/forum/202508/30/1dada74d1c384ab4.webp" alt="团队成员">
  178.                             <h4>王五</h4>
  179.                             <p class="text-muted">设计总监</p>
  180.                         </div>
  181.                     </div>
  182.                     <div class="col-md-3">
  183.                         <div class="team-member">
  184.                             <img src="https://io.pixtech.org/pixtech/forum/202508/30/52b26f8c1ab94273.webp" alt="团队成员">
  185.                             <h4>赵六</h4>
  186.                             <p class="text-muted">市场总监</p>
  187.                         </div>
  188.                     </div>
  189.                 </div>
  190.             </div>
  191.         </section>
  192.         <!-- 联系我们 -->
  193.         <section id="contact" class="py-5 bg-light">
  194.             <div class="container">
  195.                 <h2 class="text-center mb-5">联系我们</h2>
  196.                 <div class="row">
  197.                     <div class="col-lg-6">
  198.                         <form>
  199.                             <div class="mb-3">
  200.                                 <label for="name" class="form-label">姓名</label>
  201.                                 <input type="text" class="form-control" id="name" required>
  202.                             </div>
  203.                             <div class="mb-3">
  204.                                 <label for="email" class="form-label">邮箱</label>
  205.                                 <input type="email" class="form-control" id="email" required>
  206.                             </div>
  207.                             <div class="mb-3">
  208.                                 <label for="subject" class="form-label">主题</label>
  209.                                 <input type="text" class="form-control" id="subject" required>
  210.                             </div>
  211.                             <div class="mb-3">
  212.                                 <label for="message" class="form-label">消息</label>
  213.                                 <textarea class="form-control" id="message" rows="5" required></textarea>
  214.                             </div>
  215.                             <button type="submit" class="btn btn-primary">发送消息</button>
  216.                         </form>
  217.                     </div>
  218.                     <div class="col-lg-6">
  219.                         <h4 class="mb-3">联系信息</h4>
  220.                         <p><i class="bi bi-geo-alt me-2"></i> 中国北京市朝阳区某某街道123号</p>
  221.                         <p><i class="bi bi-telephone me-2"></i> +86 10 1234 5678</p>
  222.                         <p><i class="bi bi-envelope me-2"></i> info@mywebsite.com</p>
  223.                         
  224.                         <h4 class="mt-4 mb-3">工作时间</h4>
  225.                         <p>周一至周五: 9:00 AM - 6:00 PM</p>
  226.                         <p>周六: 10:00 AM - 4:00 PM</p>
  227.                         <p>周日: 休息</p>
  228.                         
  229.                         <div class="mt-4">
  230.                             <a href="#" class="me-3"><i class="bi bi-facebook fs-4"></i></a>
  231.                             <a href="#" class="me-3"><i class="bi bi-twitter fs-4"></i></a>
  232.                             <a href="#" class="me-3"><i class="bi bi-instagram fs-4"></i></a>
  233.                             <a href="#" class="me-3"><i class="bi bi-linkedin fs-4"></i></a>
  234.                         </div>
  235.                     </div>
  236.                 </div>
  237.             </div>
  238.         </section>
  239.     </main>
  240.     <!-- 页脚 -->
  241.     <footer>
  242.         <div class="container">
  243.             <div class="row">
  244.                 <div class="col-lg-4 mb-4">
  245.                     <h5>我的网站</h5>
  246.                     <p>我们是一家专注于创建高质量网站和Web应用的公司,致力于为客户提供最佳的解决方案。</p>
  247.                 </div>
  248.                 <div class="col-lg-4 mb-4">
  249.                     <h5>快速链接</h5>
  250.                     <div class="footer-links d-flex flex-column">
  251.                         <a href="#" class="mb-2">首页</a>
  252.                         <a href="#" class="mb-2">关于我们</a>
  253.                         <a href="#" class="mb-2">服务</a>
  254.                         <a href="#" class="mb-2">博客</a>
  255.                         <a href="#">联系我们</a>
  256.                     </div>
  257.                 </div>
  258.                 <div class="col-lg-4 mb-4">
  259.                     <h5>订阅我们的通讯</h5>
  260.                     <p>订阅我们的通讯,获取最新的新闻和更新。</p>
  261.                     <form class="d-flex">
  262.                         <input type="email" class="form-control me-2" placeholder="您的邮箱地址">
  263.                         <button type="submit" class="btn btn-primary">订阅</button>
  264.                     </form>
  265.                 </div>
  266.             </div>
  267.             <hr class="my-4 bg-white">
  268.             <div class="text-center">
  269.                 <p class="mb-0">&copy; 2023 我的网站. 保留所有权利.</p>
  270.             </div>
  271.         </div>
  272.     </footer>
  273.     <!-- Bootstrap Icons -->
  274.     <link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/bootstrap-icons@1.10.0/font/bootstrap-icons.css">
  275.    
  276.     <!-- Bootstrap5 JavaScript Bundle with Popper -->
  277.     <script src="https://cdn.jsdelivr.net/npm/bootstrap@5.3.0/dist/js/bootstrap.bundle.min.js"></script>
  278.    
  279.     <!-- 自定义JavaScript -->
  280.     <script>
  281.         // 平滑滚动
  282.         document.querySelectorAll('a[href^="#"]').forEach(anchor => {
  283.             anchor.addEventListener('click', function (e) {
  284.                 e.preventDefault();
  285.                
  286.                 const target = document.querySelector(this.getAttribute('href'));
  287.                 if (target) {
  288.                     window.scrollTo({
  289.                         top: target.offsetTop - 70,
  290.                         behavior: 'smooth'
  291.                     });
  292.                 }
  293.             });
  294.         });
  295.         
  296.         // 导航栏滚动效果
  297.         window.addEventListener('scroll', function() {
  298.             const navbar = document.querySelector('.navbar');
  299.             if (window.scrollY > 50) {
  300.                 navbar.classList.add('navbar-scrolled');
  301.             } else {
  302.                 navbar.classList.remove('navbar-scrolled');
  303.             }
  304.         });
  305.     </script>
  306. </body>
  307. </html>
复制代码

7.2 创建一个产品展示页面

下面是一个使用Bootstrap5创建的产品展示页面示例:
  1. <!DOCTYPE html>
  2. <html lang="zh-CN">
  3. <head>
  4.     <meta charset="UTF-8">
  5.     <meta name="viewport" content="width=device-width, initial-scale=1.0">
  6.     <title>产品展示 - 我的网站</title>
  7.    
  8.     <!-- Bootstrap5 CSS -->
  9.     <link href="https://cdn.jsdelivr.net/npm/bootstrap@5.3.0/dist/css/bootstrap.min.css" rel="stylesheet">
  10.    
  11.     <!-- 自定义CSS -->
  12.     <style>
  13.         .product-card {
  14.             transition: transform 0.3s ease;
  15.             height: 100%;
  16.         }
  17.         
  18.         .product-card:hover {
  19.             transform: translateY(-10px);
  20.         }
  21.         
  22.         .product-img {
  23.             height: 200px;
  24.             object-fit: cover;
  25.         }
  26.         
  27.         .filter-btn {
  28.             margin-bottom: 20px;
  29.         }
  30.         
  31.         .filter-btn.active {
  32.             background-color: #0d6efd;
  33.             color: white;
  34.         }
  35.         
  36.         .hero-section {
  37.             background: linear-gradient(rgba(0, 0, 0, 0.5), rgba(0, 0, 0, 0.5)), url('https://picsum.photos/seed/products/1920/400.jpg');
  38.             background-size: cover;
  39.             background-position: center;
  40.             color: white;
  41.             padding: 100px 0;
  42.             text-align: center;
  43.         }
  44.         
  45.         footer {
  46.             background-color: #343a40;
  47.             color: white;
  48.             padding: 40px 0;
  49.         }
  50.     </style>
  51. </head>
  52. <body>
  53.     <!-- 导航栏 -->
  54.     <nav class="navbar navbar-expand-lg navbar-dark bg-dark">
  55.         <div class="container">
  56.             <a class="navbar-brand" href="#">我的网站</a>
  57.             <button class="navbar-toggler" type="button" data-bs-toggle="collapse" data-bs-target="#navbarNav">
  58.                 <span class="navbar-toggler-icon"></span>
  59.             </button>
  60.             <div class="collapse navbar-collapse" id="navbarNav">
  61.                 <ul class="navbar-nav ms-auto">
  62.                     <li class="nav-item">
  63.                         <a class="nav-link" href="#">首页</a>
  64.                     </li>
  65.                     <li class="nav-item">
  66.                         <a class="nav-link active" href="#">产品</a>
  67.                     </li>
  68.                     <li class="nav-item">
  69.                         <a class="nav-link" href="#">关于我们</a>
  70.                     </li>
  71.                     <li class="nav-item">
  72.                         <a class="nav-link" href="#">联系我们</a>
  73.                     </li>
  74.                 </ul>
  75.             </div>
  76.         </div>
  77.     </nav>
  78.     <!-- 主要内容 -->
  79.     <main>
  80.         <!-- 英雄区域 -->
  81.         <section class="hero-section">
  82.             <div class="container">
  83.                 <h1 class="display-4 fw-bold mb-4">我们的产品</h1>
  84.                 <p class="lead mb-0">探索我们精心设计的高质量产品系列,满足您的各种需求。</p>
  85.             </div>
  86.         </section>
  87.         <!-- 产品筛选 -->
  88.         <section class="py-4 bg-light">
  89.             <div class="container">
  90.                 <div class="d-flex flex-wrap justify-content-center">
  91.                     <button class="btn btn-outline-primary filter-btn active" data-filter="all">全部产品</button>
  92.                     <button class="btn btn-outline-primary filter-btn" data-filter="electronics">电子产品</button>
  93.                     <button class="btn btn-outline-primary filter-btn" data-filter="furniture">家具</button>
  94.                     <button class="btn btn-outline-primary filter-btn" data-filter="clothing">服装</button>
  95.                     <button class="btn btn-outline-primary filter-btn" data-filter="books">图书</button>
  96.                 </div>
  97.             </div>
  98.         </section>
  99.         <!-- 产品展示 -->
  100.         <section class="py-5">
  101.             <div class="container">
  102.                 <div class="row g-4" id="products-container">
  103.                     <!-- 产品1 -->
  104.                     <div class="col-md-4 col-lg-3 product-item" data-category="electronics">
  105.                         <div class="card product-card">
  106.                             <img src="https://io.pixtech.org/pixtech/forum/202508/30/2ce0f630ea9c4e76.webp" class="card-img-top product-img" alt="产品1">
  107.                             <div class="card-body">
  108.                                 <h5 class="card-title">智能手机</h5>
  109.                                 <p class="card-text">高性能智能手机,配备先进的处理器和摄像头系统。</p>
  110.                                 <div class="d-flex justify-content-between align-items-center">
  111.                                     <span class="text-primary fw-bold">¥3,999</span>
  112.                                     <button class="btn btn-sm btn-outline-primary">加入购物车</button>
  113.                                 </div>
  114.                             </div>
  115.                         </div>
  116.                     </div>
  117.                     
  118.                     <!-- 产品2 -->
  119.                     <div class="col-md-4 col-lg-3 product-item" data-category="furniture">
  120.                         <div class="card product-card">
  121.                             <img src="https://io.pixtech.org/pixtech/forum/202508/30/c882642c35d74798.webp" class="card-img-top product-img" alt="产品2">
  122.                             <div class="card-body">
  123.                                 <h5 class="card-title">现代沙发</h5>
  124.                                 <p class="card-text">舒适耐用的现代沙发,为您的客厅增添时尚感。</p>
  125.                                 <div class="d-flex justify-content-between align-items-center">
  126.                                     <span class="text-primary fw-bold">¥2,499</span>
  127.                                     <button class="btn btn-sm btn-outline-primary">加入购物车</button>
  128.                                 </div>
  129.                             </div>
  130.                         </div>
  131.                     </div>
  132.                     
  133.                     <!-- 产品3 -->
  134.                     <div class="col-md-4 col-lg-3 product-item" data-category="clothing">
  135.                         <div class="card product-card">
  136.                             <img src="https://io.pixtech.org/pixtech/forum/202508/30/7a32fadc8b714fdb.webp" class="card-img-top product-img" alt="产品3">
  137.                             <div class="card-body">
  138.                                 <h5 class="card-title">时尚T恤</h5>
  139.                                 <p class="card-text">100%纯棉材质,舒适透气,多种颜色可选。</p>
  140.                                 <div class="d-flex justify-content-between align-items-center">
  141.                                     <span class="text-primary fw-bold">¥99</span>
  142.                                     <button class="btn btn-sm btn-outline-primary">加入购物车</button>
  143.                                 </div>
  144.                             </div>
  145.                         </div>
  146.                     </div>
  147.                     
  148.                     <!-- 产品4 -->
  149.                     <div class="col-md-4 col-lg-3 product-item" data-category="books">
  150.                         <div class="card product-card">
  151.                             <img src="https://io.pixtech.org/pixtech/forum/202508/30/0ee42dad764b4b67.webp" class="card-img-top product-img" alt="产品4">
  152.                             <div class="card-body">
  153.                                 <h5 class="card-title">编程指南</h5>
  154.                                 <p class="card-text">全面的编程学习指南,适合初学者和进阶者。</p>
  155.                                 <div class="d-flex justify-content-between align-items-center">
  156.                                     <span class="text-primary fw-bold">¥79</span>
  157.                                     <button class="btn btn-sm btn-outline-primary">加入购物车</button>
  158.                                 </div>
  159.                             </div>
  160.                         </div>
  161.                     </div>
  162.                     
  163.                     <!-- 产品5 -->
  164.                     <div class="col-md-4 col-lg-3 product-item" data-category="electronics">
  165.                         <div class="card product-card">
  166.                             <img src="https://io.pixtech.org/pixtech/forum/202508/30/6ae6a637bebe4a31.webp" class="card-img-top product-img" alt="产品5">
  167.                             <div class="card-body">
  168.                                 <h5 class="card-title">无线耳机</h5>
  169.                                 <p class="card-text">高品质无线耳机,降噪功能,长续航时间。</p>
  170.                                 <div class="d-flex justify-content-between align-items-center">
  171.                                     <span class="text-primary fw-bold">¥899</span>
  172.                                     <button class="btn btn-sm btn-outline-primary">加入购物车</button>
  173.                                 </div>
  174.                             </div>
  175.                         </div>
  176.                     </div>
  177.                     
  178.                     <!-- 产品6 -->
  179.                     <div class="col-md-4 col-lg-3 product-item" data-category="furniture">
  180.                         <div class="card product-card">
  181.                             <img src="https://io.pixtech.org/pixtech/forum/202508/30/bfda3434bbe245d4.webp" class="card-img-top product-img" alt="产品6">
  182.                             <div class="card-body">
  183.                                 <h5 class="card-title">办公桌</h5>
  184.                                 <p class="card-text">简约现代办公桌,宽敞的工作空间,优质材料。</p>
  185.                                 <div class="d-flex justify-content-between align-items-center">
  186.                                     <span class="text-primary fw-bold">¥1,299</span>
  187.                                     <button class="btn btn-sm btn-outline-primary">加入购物车</button>
  188.                                 </div>
  189.                             </div>
  190.                         </div>
  191.                     </div>
  192.                     
  193.                     <!-- 产品7 -->
  194.                     <div class="col-md-4 col-lg-3 product-item" data-category="clothing">
  195.                         <div class="card product-card">
  196.                             <img src="https://io.pixtech.org/pixtech/forum/202508/30/83bb087d5d564672.webp" class="card-img-top product-img" alt="产品7">
  197.                             <div class="card-body">
  198.                                 <h5 class="card-title">牛仔裤</h5>
  199.                                 <p class="card-text">经典款牛仔裤,优质面料,舒适版型。</p>
  200.                                 <div class="d-flex justify-content-between align-items-center">
  201.                                     <span class="text-primary fw-bold">¥199</span>
  202.                                     <button class="btn btn-sm btn-outline-primary">加入购物车</button>
  203.                                 </div>
  204.                             </div>
  205.                         </div>
  206.                     </div>
  207.                     
  208.                     <!-- 产品8 -->
  209.                     <div class="col-md-4 col-lg-3 product-item" data-category="books">
  210.                         <div class="card product-card">
  211.                             <img src="https://io.pixtech.org/pixtech/forum/202508/30/26e982286a8d4ac8.webp" class="card-img-top product-img" alt="产品8">
  212.                             <div class="card-body">
  213.                                 <h5 class="card-title">设计思维</h5>
  214.                                 <p class="card-text">探索创新设计思维,提升你的创造力和问题解决能力。</p>
  215.                                 <div class="d-flex justify-content-between align-items-center">
  216.                                     <span class="text-primary fw-bold">¥89</span>
  217.                                     <button class="btn btn-sm btn-outline-primary">加入购物车</button>
  218.                                 </div>
  219.                             </div>
  220.                         </div>
  221.                     </div>
  222.                 </div>
  223.                
  224.                 <!-- 分页 -->
  225.                 <nav aria-label="Page navigation" class="mt-5">
  226.                     <ul class="pagination justify-content-center">
  227.                         <li class="page-item disabled">
  228.                             <a class="page-link" href="#" tabindex="-1" aria-disabled="true">上一页</a>
  229.                         </li>
  230.                         <li class="page-item active"><a class="page-link" href="#">1</a></li>
  231.                         <li class="page-item"><a class="page-link" href="#">2</a></li>
  232.                         <li class="page-item"><a class="page-link" href="#">3</a></li>
  233.                         <li class="page-item">
  234.                             <a class="page-link" href="#">下一页</a>
  235.                         </li>
  236.                     </ul>
  237.                 </nav>
  238.             </div>
  239.         </section>
  240.     </main>
  241.     <!-- 页脚 -->
  242.     <footer>
  243.         <div class="container">
  244.             <div class="row">
  245.                 <div class="col-lg-4 mb-4">
  246.                     <h5>我的网站</h5>
  247.                     <p>我们是一家专注于提供高质量产品的公司,致力于满足客户的各种需求。</p>
  248.                 </div>
  249.                 <div class="col-lg-4 mb-4">
  250.                     <h5>快速链接</h5>
  251.                     <div class="d-flex flex-column">
  252.                         <a href="#" class="text-white-50 mb-2">首页</a>
  253.                         <a href="#" class="text-white-50 mb-2">产品</a>
  254.                         <a href="#" class="text-white-50 mb-2">关于我们</a>
  255.                         <a href="#" class="text-white-50">联系我们</a>
  256.                     </div>
  257.                 </div>
  258.                 <div class="col-lg-4 mb-4">
  259.                     <h5>联系我们</h5>
  260.                     <p class="text-white-50">中国北京市朝阳区某某街道123号</p>
  261.                     <p class="text-white-50">电话: +86 10 1234 5678</p>
  262.                     <p class="text-white-50">邮箱: info@mywebsite.com</p>
  263.                 </div>
  264.             </div>
  265.             <hr class="my-4 bg-white">
  266.             <div class="text-center">
  267.                 <p class="mb-0">&copy; 2023 我的网站. 保留所有权利.</p>
  268.             </div>
  269.         </div>
  270.     </footer>
  271.     <!-- Bootstrap5 JavaScript Bundle with Popper -->
  272.     <script src="https://cdn.jsdelivr.net/npm/bootstrap@5.3.0/dist/js/bootstrap.bundle.min.js"></script>
  273.    
  274.     <!-- 自定义JavaScript -->
  275.     <script>
  276.         // 产品筛选功能
  277.         document.addEventListener('DOMContentLoaded', function() {
  278.             const filterButtons = document.querySelectorAll('.filter-btn');
  279.             const productItems = document.querySelectorAll('.product-item');
  280.             
  281.             filterButtons.forEach(button => {
  282.                 button.addEventListener('click', function() {
  283.                     // 移除所有按钮的active类
  284.                     filterButtons.forEach(btn => btn.classList.remove('active'));
  285.                     // 为当前按钮添加active类
  286.                     this.classList.add('active');
  287.                     
  288.                     const filter = this.getAttribute('data-filter');
  289.                     
  290.                     productItems.forEach(item => {
  291.                         if (filter === 'all' || item.getAttribute('data-category') === filter) {
  292.                             item.style.display = 'block';
  293.                         } else {
  294.                             item.style.display = 'none';
  295.                         }
  296.                     });
  297.                 });
  298.             });
  299.         });
  300.     </script>
  301. </body>
  302. </html>
复制代码

8. 总结与建议

Bootstrap5是一个功能强大、易于使用的前端框架,它可以帮助开发者快速构建美观、响应式的网站和Web应用。通过本指南,你已经了解了Bootstrap5的下载、安装和基本使用方法,以及如何利用其丰富的组件和工具类创建响应式布局。

8.1 最佳实践

1. 使用CDN进行快速原型开发:对于快速原型或小型项目,使用CDN是最简单快捷的方式。
2. 自定义Bootstrap样式:通过创建自定义CSS文件或使用Sass变量,可以轻松定制Bootstrap的外观,使其符合你的品牌风格。
3. 利用响应式工具类:Bootstrap提供了丰富的响应式工具类,可以帮助你创建适应不同设备的布局。
4. 遵循移动优先原则:Bootstrap采用移动优先的设计理念,建议从小屏幕开始设计,然后逐步增强到大屏幕。
5. 保持代码整洁:使用Bootstrap的网格系统和组件时,保持HTML结构清晰,避免不必要的嵌套。

使用CDN进行快速原型开发:对于快速原型或小型项目,使用CDN是最简单快捷的方式。

自定义Bootstrap样式:通过创建自定义CSS文件或使用Sass变量,可以轻松定制Bootstrap的外观,使其符合你的品牌风格。

利用响应式工具类:Bootstrap提供了丰富的响应式工具类,可以帮助你创建适应不同设备的布局。

遵循移动优先原则:Bootstrap采用移动优先的设计理念,建议从小屏幕开始设计,然后逐步增强到大屏幕。

保持代码整洁:使用Bootstrap的网格系统和组件时,保持HTML结构清晰,避免不必要的嵌套。

8.2 常见问题与解决方案

当Bootstrap的默认样式与你的自定义样式冲突时,可以通过以下方法解决:

1. 提高选择器特异性:使用更具体的选择器来覆盖Bootstrap样式。
  1. /* 自定义样式 */
  2. .my-custom-button.btn-primary {
  3.     background-color: #ff6b6b;
  4.     border-color: #ff6b6b;
  5. }
复制代码

1. 使用!important:作为最后手段,可以使用!important来强制应用你的样式。
  1. .btn-primary {
  2.     background-color: #ff6b6b !important;
  3.     border-color: #ff6b6b !important;
  4. }
复制代码

1. 使用Sass变量:如果你使用Sass,可以通过修改变量来自定义Bootstrap样式。
  1. // 自定义变量
  2. $primary: #ff6b6b;
  3. // 导入Bootstrap
  4. @import "bootstrap/scss/bootstrap";
复制代码

1. 只使用需要的组件:如果你使用Bootstrap的源码,可以只导入你需要的组件,减少文件大小。
  1. // 只导入需要的组件
  2. @import "bootstrap/scss/functions";
  3. @import "bootstrap/scss/variables";
  4. @import "bootstrap/scss/mixins";
  5. @import "bootstrap/scss/utilities";
  6. @import "bootstrap/scss/grid";
  7. @import "bootstrap/scss/buttons";
  8. // 其他需要的组件...
复制代码

1. 使用压缩版本:在生产环境中使用Bootstrap的压缩版本(bootstrap.min.css和bootstrap.min.js)。
2. 启用缓存:配置服务器以启用Bootstrap文件的缓存,减少重复下载。
3. 使用CDN:使用CDN可以利用浏览器缓存和更快的加载速度。

使用压缩版本:在生产环境中使用Bootstrap的压缩版本(bootstrap.min.css和bootstrap.min.js)。

启用缓存:配置服务器以启用Bootstrap文件的缓存,减少重复下载。

使用CDN:使用CDN可以利用浏览器缓存和更快的加载速度。

Bootstrap5不再依赖jQuery,但它仍然需要Popper.js来实现一些组件(如下拉菜单、工具提示等)。Bootstrap提供了一个包含所有依赖的捆绑文件(bootstrap.bundle.min.js),建议使用这个文件以避免依赖问题。
  1. <!-- 使用捆绑文件,包含Popper.js -->
  2. <script src="https://cdn.jsdelivr.net/npm/bootstrap@5.3.0/dist/js/bootstrap.bundle.min.js"></script>
复制代码

8.3 进阶学习资源

如果你想进一步学习Bootstrap5,以下资源可能会有所帮助:

1. 官方文档:Bootstrap官方文档是最全面、最权威的学习资源。
2. Bootstrap示例:官方提供了丰富的示例页面,可以作为你项目的起点。
3. 在线教程:网站如W3Schools、MDN Web Docs和freeCodeCamp提供了Bootstrap的免费教程。
4. 视频教程:YouTube和Udemy上有许多高质量的Bootstrap视频教程。
5. 社区论坛:Stack Overflow、Reddit的r/bootstrap和Bootstrap官方Discord是获取帮助和交流经验的好地方。

官方文档:Bootstrap官方文档是最全面、最权威的学习资源。

Bootstrap示例:官方提供了丰富的示例页面,可以作为你项目的起点。

在线教程:网站如W3Schools、MDN Web Docs和freeCodeCamp提供了Bootstrap的免费教程。

视频教程:YouTube和Udemy上有许多高质量的Bootstrap视频教程。

社区论坛:Stack Overflow、Reddit的r/bootstrap和Bootstrap官方Discord是获取帮助和交流经验的好地方。

8.4 结论

Bootstrap5是一个强大而灵活的前端框架,它提供了创建响应式、移动优先网站所需的所有工具。无论你是初学者还是经验丰富的开发者,Bootstrap都可以帮助你提高开发效率,创建美观、功能强大的网站。

通过本指南,你已经了解了Bootstrap5的基础知识和使用方法。现在,你可以开始使用Bootstrap5来构建自己的项目,并通过实践不断深化你的理解和技能。记住,最好的学习方式是通过实践,所以不要害怕尝试和实验。祝你在Bootstrap5的学习之旅中取得成功!
「七転び八起き(ななころびやおき)」
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则