Bootstrap - Bố cục Sidebar

Xin chào các bạn phát triển web đang theo đuổi! Hôm nay, chúng ta sẽ bắt đầu một hành trình thú vị vào thế giới của các sidebar Bootstrap. Là một giáo viên khoa học máy tính gần gũi, tôi rất vui mừng được hướng dẫn các bạn qua chủ đề này. Vậy, hãy lấy饮料 yêu thích của bạn, ngồi thoải mái, và cùng nhau bắt đầu!

Bootstrap - Sidebars Demo

Sidebar là gì?

Trước khi bắt đầu mã hóa, hãy cùng hiểu sidebar là gì. Hãy tưởng tượng bạn đang đọc một cuốn sách, và có một cột hẹp ở bên cạnh trang với thông tin bổ sung hoặc liên kết nhanh. Đó chính là sidebar trong thiết kế web!

Sidebar là một cột dọc thường được đặt ở bên trái hoặc bên phải của trang web. Nó thường chứa các liên kết điều hướng, thông tin bổ sung hoặc nội dung khác bổ sung cho khu vực nội dung chính. Sidebars giúp tổ chức thông tin và cải thiện trải nghiệm người dùng bằng cách cung cấp quyền truy cập nhanh vào các yếu tố quan trọng.

Tạo một Sidebar Cơ Bản với Bootstrap

Bây giờ chúng ta đã biết sidebar là gì, hãy tạo một sidebar bằng Bootstrap. Chúng ta sẽ bắt đầu với một ví dụ đơn giản và từ từ mở rộng.

Bước 1: Thiết lập cấu trúc HTML

Đầu tiên, chúng ta cần thiết lập cấu trúc HTML. Dưới đây là một mẫu cơ bản:

<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Bootstrap Sidebar Demo</title>
<!-- Bootstrap CSS -->
<link href="https://cdn.jsdelivr.net/npm/[email protected]/dist/css/bootstrap.min.css" rel="stylesheet">
</head>
<body>
<div class="container-fluid">
<div class="row">
<!-- Sidebar -->
<div class="col-md-3 sidebar">
<!-- Nội dung của sidebar sẽ được đặt ở đây -->
</div>
<!-- Nội dung chính -->
<div class="col-md-9 main-content">
<!-- Nội dung chính sẽ được đặt ở đây -->
</div>
</div>
</div>

<!-- Bootstrap JS -->
<script src="https://cdn.jsdelivr.net/npm/[email protected]/dist/js/bootstrap.bundle.min.js"></script>
</body>
</html>

Trong mẫu này, chúng ta đã tạo một container với hai cột: một cho sidebar (3 đơn vị rộng) và một cho nội dung chính (9 đơn vị rộng). Bootstrap sử dụng hệ thống lưới 12 cột, vì vậy các số này cộng lại bằng 12.

Bước 2: Thêm nội dung vào sidebar

Hãy thêm một chút nội dung vào sidebar của chúng ta:

<!-- Sidebar -->
<div class="col-md-3 sidebar bg-light">
<h3 class="mt-3">Sidebar Menu</h3>
<ul class="nav flex-column">
<li class="nav-item">
<a class="nav-link active" href="#">Trang chủ</a>
</li>
<li class="nav-item">
<a class="nav-link" href="#">Về chúng tôi</a>
</li>
<li class="nav-item">
<a class="nav-link" href="#">Dịch vụ</a>
</li>
<li class="nav-item">
<a class="nav-link" href="#">Liên hệ</a>
</li>
</ul>
</div>

Tại đây, chúng ta đã thêm một tiêu đề và một danh sách các liên kết điều hướng vào sidebar. Class bg-light cho sidebar có màu nền nhạt.

Bước 3: Thêm nội dung chính

Hãy thêm một chút nội dung vào khu vực chính:

<!-- Main content -->
<div class="col-md-9 main-content">
<h1 class="mt-3">Chào mừng đến với trang web của chúng tôi</h1>
<p>Đây là khu vực nội dung chính. Đây là nơi mà thông tin chính của trang web của bạn sẽ được hiển thị.</p>
</div>

Cải thiện Sidebar

Bây giờ chúng ta đã có một sidebar cơ bản, hãy cải thiện nó với một số tính năng bổ sung.

Thêm hộp tìm kiếm

<div class="col-md-3 sidebar bg-light">
<h3 class="mt-3">Sidebar Menu</h3>
<form class="d-flex mb-3">
<input class="form-control me-2" type="search" placeholder="Tìm kiếm" aria-label="Tìm kiếm">
<button class="btn btn-outline-success" type="submit">Tìm kiếm</button>
</form>
<!-- ... phần còn lại của nội dung sidebar ... -->
</div>

Điều này thêm một hộp tìm kiếm ở đầu sidebar, cho phép người dùng tìm kiếm nhanh chóng.

Thêm menu thả xuống

Hãy thêm một menu thả xuống vào sidebar:

<li class="nav-item dropdown">
<a class="nav-link dropdown-toggle" href="#" id="navbarDropdown" role="button" data-bs-toggle="dropdown" aria-expanded="false">
Sản phẩm
</a>
<ul class="dropdown-menu" aria-labelledby="navbarDropdown">
<li><a class="dropdown-item" href="#">Sản phẩm 1</a></li>
<li><a class="dropdown-item" href="#">Sản phẩm 2</a></li>
<li><hr class="dropdown-divider"></li>
<li><a class="dropdown-item" href="#">Khuyến mãi đặc biệt</a></li>
</ul>
</li>

Thêm mã này vào trong <ul class="nav flex-column"> của sidebar. Điều này tạo ra một menu thả xuống cho "Sản phẩm".

Làm cho Sidebar T响应式

Một trong những thách thức với sidebars là làm cho chúng hoạt động tốt trên các thiết bị di động. Hãy làm cho sidebar của chúng ta trở nên响应式:

<div class="container-fluid">
<div class="row">
<!-- Sidebar -->
<div class="col-md-3 sidebar bg-light" id="sidebar">
<button class="btn btn-primary d-md-none" type="button" data-bs-toggle="collapse" data-bs-target="#sidebarContent">
Chuyển đổi Sidebar
</button>
<div class="collapse d-md-block" id="sidebarContent">
<!-- ... nội dung sidebar ... -->
</div>
</div>
<!-- Nội dung chính -->
<div class="col-md-9 main-content">
<!-- ... nội dung chính ... -->
</div>
</div>
</div>

Chúng ta đã thêm một nút chuyển đổi chỉ xuất hiện trên màn hình nhỏ (d-md-none), và cuộn nội dung sidebar trong một div có thể gập lại. Trên màn hình lớn, sidebar sẽ luôn hiển thị (d-md-block).

Định dạng Sidebar

Cuối cùng, hãy thêm một chút CSS tùy chỉnh để làm cho sidebar của chúng ta trông đẹp hơn:

<style>
.sidebar {
min-height: 100vh;
box-shadow: inset -1px 0 0 rgba(0, 0, 0, .1);
}
.sidebar .nav-link {
color: #333;
}
.sidebar .nav-link.active {
color: #007bff;
}
</style>

Thêm này vào <head> của HTML. CSS này làm cho sidebar có chiều cao đầy đủ, thêm mộtshadow mờ và định dạng các liên kết điều hướng.

Kết luận

Chúc mừng! Bạn đã tạo ra một sidebar Bootstrap hoàn chỉnh và响应式. Hãy nhớ, thực hành làm nên完美, vì vậy đừng ngần ngại thử nghiệm với các bố cục và phong cách khác nhau.

Dưới đây là bảng tóm tắt các class Bootstrap chúng ta đã sử dụng:

Class Mục đích
container-fluid Tạo một container rộng toàn bộ
row Tạo một nhóm cột nằm ngang
col-md-3 Tạo một cột 3 đơn vị rộng trên màn hình trung bình và lớn hơn
bg-light Thêm màu nền nhạt
nav Chỉ định một thành phần điều hướng
nav-item Định dạng một mục điều hướng
nav-link Định dạng một liên kết điều hướng
dropdown Tạo một menu thả xuống
btn Định dạng một nút
form-control Định dạng các input form

Tiếp tục mã hóa, tiếp tục học hỏi, và quan trọng nhất, hãy vui vẻ! Hãy nhớ, mỗi người thợ giỏi đều từng là người mới bắt đầu. Hành trình phát triển web của bạn vừa mới bắt đầu, và tôi rất mong đợi xem nó sẽ đưa bạn đến đâu!

Credits: Image by storyset