Professional Documents
Culture Documents
Hiểu Bootstrap
Nắm vững tổ chức hệ thống lưới Grid
Biết cách tổ chức layout
Sử dụng navbar để xây xây dựng menu
Sử dụng Icons
Sử dụng List Group
Sử dụng Card
NỘI DUNG
❑Giải nén
NHÚNG BOOTSTRAP VÀO WEBSITE
1 <!—Ví dụ 1: Thiết lập chiều rộng cho cột (column) theo từng thiết bị -->
2 <div class="row">
3 <div class="col-*-*">col 1</div>
4 <div class="col-*-*">col 2 </div>
5 <div class="col-*-*">col 3</div>
6 </div>
7
8 <!-- Tự động bố trí theo Bootstrap -->
9 <div class="row">
10 <div class="col">col1</div>
11 <div class="col">col2</div>
12 <div class="col">col3</div>
13 </div>
Ví dụ 1: Tạo một dòng (<div class = "row">). Sau đó, thêm số cột mong
muốn (các thẻ có các lớp .col - * - * thích hợp). Dấu sao đầu tiên (*) đại
diện cho: sm, md, lg hoặc xl, trong khi dấu sao thứ hai đại diện cho một
số(tối đa 12).
GRID SYSTEM
Cấu trúc cơ bản của Bootstrap 4 Grid như sau:
1 <!—Ví dụ 1: Thiết lập chiều rộng cho cột (column) theo từng thiết bị -->
2 <div class="row">
3 <div class="col-*-*">col 1</div>
4 <div class="col-*-*">col 2 </div>
5 <div class="col-*-*">col 3</div>
6 </div>
7
8 <!—Ví dụ 2: Tự động bố trí theo Bootstrap -->
9 <div class="row">
10 <div class="col">col1</div>
11 <div class="col">col2</div>
12 <div class="col">col3</div>
13 </div>
<!-- khối này sẽ có 4 column với width bằng nhau và = 25% -->
<div class="row">
<div class="col">col-3</div>
<div class="col">col-4</div>
<div class="col">col-5</div>
<div class="col">col-6</div>
</div>
</div>
GRID SYSTEM
2 Grid Small
Các thiết bị với độ rộng màn hình 576 – 767px chúng ta sử dụng class .col-sm-* cho
việc chia column
1 <div class="container">
2 <div class="row">
3 <!-- '*' tương ứng với số column cần chia, ví dụ: col-sm-3 -->
4 <div class="col-sm-*"></div>
5 <div class="col-sm-*"></div>
6 <div class="col-sm-*"></div>
7 </div>
8 </div>
GRID SYSTEM
Hoặc có thể để Bootstrap tự động chia column
1 <div class="container">
2 <div class="row">
3 <!-- 4 column với mỗi column width = 25% -->
4 <div class="col-sm"></div>
5 <div class="col-sm"></div>
6 <div class="col-sm"></div>
7 <div class="col-sm"></div>
8 </div>
9 </div>
GRID SYSTEM
3. Grid Medium
Grid Medium được sử dụng cho các thiết bị có độ rộng màn hình từ 768px – 991px
(ipad,tablet,…). Để chia column chúng ta chỉ cần dùng class .col-md-*
1 <div class="container">
2 <div class="row">
3 <!-- '*' tương ứng với số column cần chia, ví dụ: col-md-3 -->
4 <div class="col-md-*"></div>
5 <div class="col-md-*"></div>
6 <div class="col-md-*"></div>
7 </div>
8 </div>
GRID SYSTEM
1 <div class="container">
2 <div class="row">
3 <!-- 4 column với mỗi column width = 25% -->
4 <div class="col-md"></div>
5 <div class="col-md"></div>
6 <div class="col-md"></div>
7 <div class="col-md"></div>
8 </div>
9 </div>
GRID SYSTEM
4. Grid Large
Class .col-lg-* sẽ dùng trong lưới này, với độ màn hình từ 992px – 1199px.
1 <div class="container">
2 <div class="row">
3 <!-- '*' tương ứng với số column cần chia, ví dụ: col-lg-3 -->
4 <div class="col-lg-*"></div>
5 <div class="col-lg-*"></div>
6 <div class="col-lg-*"></div>
7 </div>
8 </div>
GRID SYSTEM
Tương tự như những grid khác, chúng ta có thể để Bootstrap tự động chia column
1 <div class="container">
2 <div class="row">
3 <!-- 4 column với mỗi column width = 25% -->
4 <div class="col-lg"></div>
5 <div class="col-lg"></div>
6 <div class="col-lg"></div>
7 <div class="col-lg"></div>
8 </div>
9 </div>
GRID SYSTEM
5. Grid XLarge
Sự khác biệt trong hệ thống grid layout giữa Boostrap 4 và phiên bản cũ là ở phiên
bản mới này, Boostrap cung cấp thêm 1 class mới đó là .col-xl-*. Nó được áp dụng
với các thiết bị có độ rông màn hình >= 1200px. Sự ra đời của nó đã tạo nên sự linh
hoạt hơn trong việc chia bố cục layout cho từng thiết bị.
<div class="container">
2 <div class="row">
3 <!-- '*' tương ứng với số column cần chia, ví dụ: col-xl-3 -->
4 <div class="col-xl-*"></div>
5 <div class="col-xl-*"></div>
6 <div class="col-xl-*"></div>
7 </div>
8 </div>
GRID SYSTEM
Nó cũng giống như các Grid khác là có thể để Bootstrap tự động chia column.
<div class="container">
2 <div class="row">
3 <!-- 4 column với mỗi column width = 25% -->
4 <div class="col-xl"></div>
5 <div class="col-xl"></div>
6 <div class="col-xl"></div>
7 <div class="col-xl"></div>
8 </div>
9 </div>
THIẾT KẾ LAYOUT
<header class=“row”>
<nav class=“row”>
<aside class=“col-xs-2”>
<aside class=“col-xs-2”>
<article class=“col-xs-8”>
<footer class=“row”>
MÃ HTML & CSS CỦA LAYOUT
<div class="row">
<div class="col-md-4 bg-success">.col-md-4</div>
<div class="col-md-4 offset-md-4 bg-warning">.col-md-4
.offset-md-4</div>
</div>
<div class="row">
<div class="col-md-3 offset-md-3 bg-warning">.col-md-3 .offset-md-3
</div>
<div class="col-md-3 offset-md-3 bg-success">.col-md-3 .offset-md-3
</div>
</div>
<div class="row">
<div class="col-md-6 offset-md-3 bg-success">.col-md-6 .offset-md-3
</div>
</div>
FRONT-END FRAMEWORKS
BÀI 1 (PHẦN 2)
NAVS MENU
Navbar
NAVS MENU
❑Vào http://getbootstrap.com/components/ và
thực hiện theo hình sau để lấy mã của navbar
▪ Tuy nhiên nếu muốn chúng ta vẫn có thể thêm các biểu tượng trong dự
án của mình bằng cách sử dụng thư viện biểu tượng dựa trên font chữ
bên ngoài. Thư viện phổ biến nhất và tương thích với Bootstrap phải kể
đến Font Awesome, bao gồm 675 biểu tượng khác nhau có sẵn ở định
dạng font chữ.
▪ Để sử dụng các biểu tượng Font Awesome, hãy thêm link HTML của bạn (Không
cần tải xuống hoặc cài đặt)
<link rel="stylesheet" href="https://use.fontawesome.com/releases/v5.7.0/css/all.css">
Ví dụ: ví dụ dưới đây minh họa cách thêm font awesome vào dự án:
ICONS
<!DOCTYPE html>
<html lang="en">
<head>
<title>Bootstrap Example</title>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1">
<link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/4.3.1/css/bootstrap.min.css">
<link rel="stylesheet" href="https://use.fontawesome.com/releases/v5.6.3/css/all.css"
integrity="sha384-UHRtZLI+pbxtHCWp1t77Bi1L4ZtiqrqD80Kn4Z8NTSRyMA2Fd33n5dQ8lWUE00s/"
crossorigin="anonymous"></head>
<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.5.1/jquery.min.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/popper.js/1.16.0/umd/popper.min.js"></script>
<script src="https://maxcdn.bootstrapcdn.com/bootstrap/4.3.1/js/bootstrap.min.js"></script>
<body>
<div class="container">
<h1>My Icons <i class="fas fa-heart"></i></h1>
<p>An icon along with some text: <i class="fas fa-thumbs-up"></i></p>
</div>
<div class="container">
<p>Others:</p>
<i class="fas fa-cloud"></i>
<i class="fas fa-coffee"></i>
<i class="fas fa-car"></i>
<i class="fas fa-file"></i>
<i class="fas fa-bars"></i>
</div>
</body>
</html>
ICONS
▪ Để sử dụng các biểu tượng font-awesome trong mã, chúng ta sẽ cần một
thẻ i hoặc thẻ span cùng lớp .fa và lớp biểu tượng .fa-*. Cú pháp chung
để sử dụng các biểu tượng font-awesome có dạng như dưới đây:
▪ Trong cú pháp trên, fa-* là tên của lóp biểu tượng cụ thể (chẳng hạn như
fa-cloud, fa-coffee, fa-car, fa-file,...) được xác định trong file font-awesome.
ICONS
❑ Vào
https://www.w3schools.com/icons/fontawesome5_icons_u
sers_people.asp
<a href="#">
<span class="fa fa-user"></span>
Đăng nhập
</a>
DEMO
Bổ sung menu có icon vào layout
LIST GROUP
❑Tạo List Group trong Bootstrap
▪ Sử dụng list-group tạo ra danh sách các phần tử với sự tùy biến
mềm dẻo, các phần tử con xây dựng từ list-group-item
▪ Tạo List Group để hiện thị danh sách các mục bằng cách sử
dụng .list-group các phần tử con sử dụng .list-group-item. Ví dụ
List Group với ba phần tử
<ul class="list-group">
<li class="list-group-item">Phần tử 1</li>
<li class="list-group-item">Phần tử 2</li>
<li class="list-group-item">Phần tử 3</li>
</ul>
LIST GROUP
LIST GROUP LINK
❑Hoặc xây dựng các item bằng <a>
<ul class="list-group">
<a class="list-group-item" href="#">Phần tử 1</a>
<a class="list-group-item" href="#">Phần tử 2</a>
<a class="list-group-item" href="#">Phần tử 3</a>
</ul>
LIST GROUP ACTIVE & DISABLED
•.list-group-item-primary
•.list-group-item-secondary
•.list-group-item-success
•.list-group-item-danger
•.list-group-item-warning
•.list-group-item-info
•.list-group-item-light
•.list-group-item-dark
•.list-group-item-muted
•.list-group-item-white
LIST GROUP COLOR
<div class="card">
<div class="card-body">Basic card</div>
</div>
.card
.card-img-top
.card-body
CARD
❑Ví dụ
<h4 class="mb-4">Simple Card</h4>
<div class="card" style="width: 18rem;">
<img class="card-img-top" src="./image/app1.jpg" alt="">
<div class="card-body">
<h5 class="card-title">Tiêu đề Card</h5>
<p class="card-text">
Ví dụ mẫu sử dụng Card
Nội dung văn bản trong.card-body
này sử dụng.card-text.
</p>
<a href="#" class="btn btn-primary">Nút bấm</a>
</div>
</div>
CARD
.card-img-
top
.card-img-
bottom
CARD
❑Card image
Ví dụ: card image
<h4 class="mb-4">Card Complex Example</h4>
<div class="card" style="width: 20rem;">
<div class="card-body">
<img class="card-img-top" src="./image/app2.jpg" alt="laptop" style="width:100%">
<h5 class="card-title">Card title</h5>
<p class="card-text">
Some quick example text to build on the card title
and make up the bulk of the card's content.
</p>
</div>
<ul class="list-group list-group-flush">
<li class="list-group-item">Cras justo odio</li>
<li class="list-group-item">Dapibus ac facilisis in</li>
<li class="list-group-item">Vestibulum at eros</li>
</ul>
<div class="card-body">
<a href="#" class="btn btn-primary">button</a>
<a href="#" class="card-link">Card link</a>
<a href="#" class="card-link">Another link</a> <br>
<img class="card-img-top" src="./image/app1.jpg" alt="laptop" style="width:100%">
</div>
</div>
CARD
❑Card Image Overlays
Một trong các tùy chọn có ích khác với ảnh là bạn có thể hiển thị nội dung văn
bản đè lên (overlays) hình ảnh, điều này giúp tiết kiệm không gian của Card.
CARD
❑Card Image Overlays
Ví dụ: Card image overlays
<h4 class="mb-4">Card (.card-img-overlay)</h4>
<div class="card mb-3" style="width: 30rem;">
<img class="card-img-top" src="./image/app2.jpg"alt="laptop"style="width:100%">
<div class="card-img-overlay">
<h5 class="card-title text-light">Card title</h5>
<p class="card-text text-light">
This is a wider card with supporting text below
as a natural lead-in to additional content.
This content is a little bit longer.
</p>
<p class="card-text text-light">
Last updated 3 mins ago
</p>
</div>
</div>
CARD
❑Card columns
Với các ví dụ trên mình sử dụng style="width:30rem" để xác định độ rộng cho card, như vậy thì sẽ rất khó
responsive cho những thiết bị màn hình khác nhau, do đó Bootstrap cung cấp cho chúng ta một
class card-columns có chức năng giống như class col trong hệ thống lưới. Để nắm rõ hơn hãy xem ví dụ
dưới đây nhé
<div class="card-columns">
<div class="card bg-primary">
<div class="card-body text-center">
<p class="card-text">Some text inside the first card</p>
</div>
</div>
<div class="card bg-warning">
<div class="card-body text-center">
<p class="card-text">Some text inside the second card</p>
</div>
</div>
<div class="card bg-success">
<div class="card-body text-center">
<p class="card-text">Some text inside the third card</p>
</div>
</div>
<div class="card bg-danger">
<div class="card-body text-center">
<p class="card-text">Some text inside the fourth card</p>
</div>
</div>
<div class="card bg-light">
<div class="card-body text-center">
<p class="card-text">Some text inside the fifth card</p>
</div>
</div>
<div class="card bg-info">
<div class="card-body text-center">
<p class="card-text">Some text inside the sixth card</p>
</div>
</div>
</div>
CARD
❑Card columns
Với các ví dụ trên mình sử dụng style="width:30rem" để xác định độ rộng
cho card, như vậy thì sẽ rất khó responsive cho những thiết bị màn hình
khác nhau, do đó Bootstrap cung cấp cho chúng ta một class card-
columns có chức năng giống như class col trong hệ thống lưới. Để nắm rõ
hơn hãy xem ví dụ dưới đây nhé
CARD
❑Card columns
Khi ta thêm nội dung vào một card, thì card được thêm nội dung sẽ có độ cao không đồng đều với
các card khác. Nếu bạn chú ý thì tại sao card thứ 2 lại có nội dung nhiều hơn so với các nội dung
khác?
CARD
❑Card Deck
Lớp .card-deck tạo ra một lưới các card có chiều cao và chiều rộng bằng nhau. Bố cục sẽ tự động
điều chỉnh khi bạn chèn nhiều card hơn.
CARD
❑Card Deck
Lớp .card-deck tạo ra một lưới các card có chiều cao và chiều rộng bằng nhau. Bố cục sẽ tự động
điều chỉnh khi bạn chèn nhiều card hơn.
<div class="card-deck">
<div class="card bg-primary">
<div class="card-body text-center">
<p class="card-text">Some text inside the first card</p>
<p class="card-text">Some more text to increase the height</p>
<p class="card-text">Some more text to increase the height</p>
<p class="card-text">Some more text to increase the height</p>
</div>
</div>
<div class="card bg-warning">
<div class="card-body text-center">
<p class="card-text">Some text inside the second card</p>
</div>
</div>
<div class="card bg-success">
<div class="card-body text-center">
<p class="card-text">Some text inside the third card</p>
</div>
</div>
<div class="card bg-danger">
<div class="card-body text-center">
<p class="card-text">Some text inside the fourth card</p>
</div>
</div>
</div>
CARD
❑Card Group
Lớp .card-group tương tự như .card-deck. Sự khác biệt duy nhất là lớp .card-group loại
bỏ lề trái và lề phải giữa mỗi card.
CARD
❑Card Group
Code minh họa
<div class="card-group">
<div class="card bg-primary">
<div class="card-body text-center">
<p class="card-text">Some text inside the first card</p>
<p class="card-text">Some more text to increase the height</p>
<p class="card-text">Some more text to increase the height</p>
<p class="card-text">Some more text to increase the height</p>
</div>
</div>
<div class="card bg-warning">
<div class="card-body text-center">
<p class="card-text">Some text inside the second card</p>
</div>
</div>
<div class="card bg-success">
<div class="card-body text-center">
<p class="card-text">Some text inside the third card</p>
</div>
</div>
<div class="card bg-danger">
<div class="card-body text-center">
<p class="card-text">Some text inside the fourth card</p>
</div>
</div>
</div>
TỔNG KẾT NỘI DUNG BÀI HỌC