开启你的编程学习之旅

云课堂提供高质量的编程课程,从入门到精通,助你成为技术大牛

立即开始学习

Bootstrap 5 完整教程

作者: 王老师 更新: 2024-03-20 阅读: 45218 难度: 初级
学习工具

4. Bootstrap导航

Bootstrap 5 提供了丰富的组件来构建现代化的网页布局,包括导航栏、卡片组件和响应式栅格系统。

导航栏 (Navbar)

创建响应式导航栏:

基本导航栏
<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> <form class="d-flex ms-auto"> <input class="form-control me-2" type="search" placeholder="搜索"> <button class="btn btn-outline-light" type="submit">搜索</button> </form> </div> </div> </nav>

卡片组件 (Card)

创建商品卡片:

商品卡片
<div class="card" style="width: 18rem;"> <img src="product1.jpg" class="card-img-top" alt="商品图片"> <div class="card-body"> <h5 class="card-title">商品名称</h5> <p class="card-text">这是一段商品描述,介绍商品的特性和优势。</p> <div class="d-flex justify-content-between align-items-center"> <span class="h5 text-danger">¥299.00</span> <button class="btn btn-primary">加入购物车</button> </div> <div class="mt-2"> <span class="badge bg-success">有货</span> <span class="badge bg-warning text-dark">热卖</span> </div> </div> </div>

栅格系统 (Grid System)

使用栅格系统创建响应式布局:

栅格系统基础
<div class="container"> <div class="row"> <div class="col-12 col-md-6 col-lg-4 col-xl-3"> <!-- 内容 --> </div> <div class="col-12 col-md-6 col-lg-4 col-xl-3"> <!-- 内容 --> </div> <div class="col-12 col-md-6 col-lg-4 col-xl-3"> <!-- 内容 --> </div> <div class="col-12 col-md-6 col-lg-4 col-xl-3"> <!-- 内容 --> </div> </div> </div>

商品列表布局

结合栅格和卡片创建商品列表:

商品列表布局
<div class="container mt-4"> <div class="row"> <!-- 商品1 --> <div class="col-12 col-sm-6 col-md-4 col-lg-3 mb-4"> <div class="card h-100"> <img src="product1.jpg" class="card-img-top" alt="商品1"> <div class="card-body d-flex flex-column"> <h5 class="card-title">智能手机</h5> <p class="card-text flex-grow-1">高性能智能手机,配备最新处理器和优质摄像头。</p> <div class="mt-auto"> <div class="d-flex justify-content-between align-items-center"> <span class="h5 text-danger">¥2999</span> <button class="btn btn-sm btn-outline-primary">购买</button> </div> </div> </div> </div> </div> <!-- 商品2 --> <div class="col-12 col-sm-6 col-md-4 col-lg-3 mb-4"> <div class="card h-100"> <span class="position-absolute top-0 start-100 translate-middle badge rounded-pill bg-danger"> 新品 </span> <img src="product2.jpg" class="card-img-top" alt="商品2"> <div class="card-body d-flex flex-column"> <h5 class="card-title">笔记本电脑</h5> <p class="card-text flex-grow-1">轻薄便携,性能强劲,适合办公和娱乐。</p> <div class="mt-auto"> <div class="d-flex justify-content-between align-items-center"> <span class="h5 text-danger">¥5999</span> <button class="btn btn-sm btn-primary">加入购物车</button> </div> </div> </div> </div> </div> <!-- 更多商品... --> </div> </div>

标签页导航 (Tabs)

创建标签页导航:

标签页导航
<ul class="nav nav-tabs" id="myTab" role="tablist"> <li class="nav-item" role="presentation"> <button class="nav-link active" data-bs-toggle="tab" data-bs-target="#home" type="button"> 首页 </button> </li> <li class="nav-item" role="presentation"> <button class="nav-link" data-bs-toggle="tab" data-bs-target="#profile" type="button"> 商品分类 </button> </li> <li class="nav-item" role="presentation"> <button class="nav-link" data-bs-toggle="tab" data-bs-target="#contact" type="button"> 联系我们 </button> </li> </ul> <div class="tab-content" id="myTabContent"> <div class="tab-pane fade show active" id="home"> <!-- 首页内容 --> </div> <div class="tab-pane fade" id="profile"> <!-- 商品分类内容 --> </div> <div class="tab-pane fade" id="contact"> <!-- 联系我们内容 --> </div> </div>

分页组件 (Pagination)

为商品列表添加分页:

分页组件
<nav aria-label="Page navigation"> <ul class="pagination justify-content-center"> <li class="page-item disabled"> <a class="page-link" href="#" tabindex="-1">上一页</a> </li> <li class="page-item active"><a class="page-link" href="#">1</a></li> <li class="page-item"><a class="page-link" href="#">2</a></li> <li class="page-item"><a class="page-link" href="#">3</a></li> <li class="page-item"> <a class="page-link" href="#">下一页</a> </li> </ul> </nav>

实用CSS类

实用CSS类
/* 自定义卡片悬停效果 */ .card-hover { transition: transform 0.3s ease, box-shadow 0.3s ease; } .card-hover:hover { transform: translateY(-5px); box-shadow: 0 8px 25px rgba(0,0,0,0.15); } /* 价格样式 */ .price-original { text-decoration: line-through; color: #6c757d; font-size: 0.9em; } .price-discount { color: #dc3545; font-weight: bold; } /* 商品标签 */ .product-badge { position: absolute; top: 10px; right: 10px; z-index: 1; }

最佳实践

  • 使用 containercontainer-fluid 作为布局容器
  • 合理使用响应式断点(xs, sm, md, lg, xl, xxl)
  • 为移动设备优先设计布局
  • 使用 mb-* 类为卡片添加间距
  • 为导航栏添加适当的响应式断点
  • 确保所有图片都有 alt 属性
  • 使用语义化的HTML结构

注意:确保在项目中正确引入Bootstrap 5的CSS和JavaScript文件,所有组件才能正常工作。

提示: 这是一个重要的概念,需要特别注意理解和掌握。
注意: 这是一个常见的错误点,请避免犯同样的错误。