Sử dụng các class flex để điều khiển bố cục của các thành phần trong Bootstrap 4.
Sự khác biệt lớn nhất giữa Bootstrap 3 và Bootstrap 4 là Bootstrap 4 hiện sử dụng flexbox, thay vì floats, để xử lý bố cục.
Note: Flexbox không được hỗ trợ trong IE9 và các phiên bản trước đó.
Để tạo một flexbox container và để biến các phần tử children trực tiếp thành flex items, sử dụng class d-flex
:
<div class="d-flex p-3 bg-secondary text-white">
<div class="p-2 bg-info">Flex item 1</div>
<div class="p-2 bg-warning">Flex item 2</div>
<div class="p-2 bg-primary">Flex item 3</div>
</div>
Để tạo inline flexbox container, sử dụng class d-inline-flex
:
<div class="d-inline-flex p-3 bg-secondary text-white">
<div class="p-2 bg-info">Flex item 1</div>
<div class="p-2 bg-warning">Flex item 2</div>
<div class="p-2 bg-primary">Flex item 3</div>
</div>
Sử dụng .flex-row
để hiển thị flex items theo chiều ngang (side by side). Đây là mặc định.
Tip: Sử dụng .flex-row-reverse
để right-align flex items:
<div class="d-flex flex-row bg-secondary">
<div class="p-2 bg-info">Flex item 1</div>
<div class="p-2 bg-warning">Flex item 2</div>
<div class="p-2 bg-primary">Flex item 3</div>
</div>
<div class="d-flex flex-row-reverse bg-secondary">
<div class="p-2 bg-info">Flex item 1</div>
<div class="p-2 bg-warning">Flex item 2</div>
<div class="p-2 bg-primary">Flex item 3</div>
</div>
Sử dụng .flex-column
để hiển thị flex items theo chiều dọc (chồng lên nhau), hoặc .flex-column-reverse
để đảo ngược hướng dọc:
<div class="d-flex flex-column">
<div class="p-2 bg-info">Flex item 1</div>
<div class="p-2 bg-warning">Flex item 2</div>
<div class="p-2 bg-primary">Flex item 3</div>
</div>
<div class="d-flex flex-column-reverse">
<div class="p-2 bg-info">Flex item 1</div>
<div class="p-2 bg-warning">Flex item 2</div>
<div class="p-2 bg-primary">Flex item 3</div>
</div>
Sử dụng các class dạng .justify-content-*
để thay đổi kiểu align của flex items. Các kiểu hợp lệ là start
(mặc định), end
, center
, between
hoặc around
:
<div class="d-flex justify-content-start">...</div>
<div class="d-flex justify-content-end">...</div>
<div class="d-flex justify-content-center">...</div>
<div class="d-flex justify-content-between">...</div>
<div class="d-flex justify-content-around">...</div>
Sử dụng .flex-fill
ở flex items để buộc chúng có chiều rộng bằng nhau:
<div class="d-flex">
<div class="p-2 bg-info flex-fill">Flex item 1</div>
<div class="p-2 bg-warning flex-fill">Flex item 2</div>
<div class="p-2 bg-primary flex-fill">Flex item 3</div>
</div>
Sử dụng .flex-grow-1
trên flex item để chiếm phần còn lại của không gian. Trong ví dụ dưới đây, hai flex items đầu tiên chiếm không gian cần thiết, trong khi mục cuối cùng chiếm phần còn lại của không gian:
<div class="d-flex">
<div class="p-2 bg-info">Flex item 1</div>
<div class="p-2 bg-warning">Flex item 2</div>
<div class="p-2 bg-primary flex-grow-1">Flex item 3</div>
</div>
Tip: Sử dụng .flex-shrink-1
trên flex item để làm cho nó co lại nếu cần thiết.
Thay đổi thứ tự trực quan của một flex item(s) cụ thể bằng class dạng .order-*
. Các kiểu phù hợp cho dấu "*" là từ 0 tới 12, trong đó số thấp nhất có mức ưu tiên cao nhất (order-1 được hiển thị trước order-2, vv..):
<div class="d-flex bg-secondary">
<div class="p-2 bg-info order-3">Flex item 1</div>
<div class="p-2 bg-warning order-2">Flex item 2</div>
<div class="p-2 bg-primary order-1">Flex item 3</div>
</div>
Dễ dàng thêm auto margins cho flex items với .mr-auto
(đẩy items sang phải), hoặc bằng cách sử dụng .ml-auto
(đẩy items sang trái):
<div class="d-flex bg-secondary">
<div class="p-2 mr-auto bg-info">Flex item 1</div>
<div class="p-2 bg-warning">Flex item 2</div>
<div class="p-2 bg-primary">Flex item 3</div>
</div>
<div class="d-flex bg-secondary">
<div class="p-2 bg-info">Flex item 1</div>
<div class="p-2 bg-warning">Flex item 2</div>
<div class="p-2 ml-auto bg-primary">Flex item 3</div>
</div>
Kiểm soát cách flex items bọc trong một flex container với .flex-nowrap
(mặc định), .flex-wrap
hoặc .flex-wrap-reverse
.
.flex-wrap:
.flex-wrap-reverse:
.flex-nowrap (mặc định - và sẽ gây tràn nếu có quá nhiều items):
<div class="d-flex flex-wrap">..</div>
<div class="d-flex flex-wrap-reverse">..</div>
<div class="d-flex flex-nowrap">..</div>
Align flex items với các class dạng .align-content-*
. Các class hợp lệ là .align-content-start
(mặc định), .align-content-end
, .align-content-center
, .align-content-between
, .align-content-around
và .align-content-stretch
.
Note: Ví dụ này trông không đẹp trên một thiết bị nhỏ. Các class trên không có hiệu lực đồi với single rows.
.align-content-start (mặc định):
.align-content-end:
.align-content-center:
.align-content-around:
.align-content-stretch:
<div class="d-flex flex-wrap align-content-start">..</div>
<div class="d-flex flex-wrap align-content-end">..</div>
<div class="d-flex flex-wrap align-content-center">..</div>
<div class="d-flex flex-wrap align-content-around">..</div>
<div class="d-flex flex-wrap align-content-stretch">..</div>
Kiểm soát align đối với single rows của flex items với class dạng .align-items-*
. Các class hợp lệ gồm .align-items-start
, .align-items-end
, .align-items-center
, .align-items-baseline
, và .align-items-stretch
(mặc định).
.align-items-start:
.align-items-end:
.align-items-center:
.align-items-baseline:
.align-items-stretch (mặc định):
<div class="d-flex align-items-start">..</div>
<div class="d-flex align-items-end">..</div>
<div class="d-flex align-items-center">..</div>
<div class="d-flex align-items-baseline">..</div>
<div class="d-flex align-items-stretch">..</div>
Kiểm soát align đối với một đích danh flex item với class dạng .align-self-*
. Các class hợp lệ gồm .align-self-start
, .align-self-end
, .align-self-center
, .align-self-baseline
, và .align-self-stretch
(mặc định).
.align-self-start:
.align-self-end:
.align-self-center:
.align-self-baseline:
.align-self-stretch (mặc định):
<div class="d-flex bg-light" style="height:150px">
<div class="p-2 border">Flex item 1</div>
<div class="p-2 border align-self-start">Flex item 2</div>
<div class="p-2 border">Flex item 3</div>
</div>
Dấu
*
có thể thay thế bởi sm, md, lg hoặc xl.
Class | Description |
---|---|
Flex Container | |
.d-*-flex | Tạo một flexbox container cho các màn hình khác nhau |
.d-*-inline-flex | Tạo một inline flexbox container cho các màn hình khác nhau |
Direction | |
.flex-*-row | Hiển thị flex items theo chiều ngang trên các màn hình khác nhau |
.flex-*-row-reverse | Hiển thị flex items theo chiều ngang và right-aligned, trên các màn hình khác nhau |
.flex-*-column | Hiển thị flex items theo chiều dọc trên các màn hình khác nhau |
.flex-*-column-reverse | Hiển thị flex items theo chiều dọc với thứ tự đảo ngược, trên các màn hình khác nhau |
Justified Content | |
.justify-content-*-start | Hiển thị flex items left-aligned trên các màn hình khác nhau |
.justify-content-*-end | Hiển thị flex items right-aligned trên các màn hình khác nhau |
.justify-content-*-center | Hiển thị flex items center đối với flex container trên các màn hình khác nhau |
.justify-content-*-between | Hiển thị flex items "between" trên các màn hình khác nhau |
.justify-content-*-around | Hiển thị flex items "around" trên các màn hình khác nhau |
Fill / Equal Width | |
.flex-*-fill | Khiến flex items có chiều rộng bằng nhau trên các màn hình khác nhau |
Grow | |
.flex-*-grow-0 | Không làm items tràn nốt đoạn còn lại trên các màn hình khác nhau |
.flex-*-grow-1 | Làm items tràn nốt đoạn còn lại trên các màn hình khác nhau |
Shrink | |
.flex-*-shrink-0 | Không làm items co lại trên các màn hình khác nhau |
.flex-*-shrink-1 | Làm items co lại trên các màn hình khác nhau |
Order | |
.order-*-0-12 | Thay đổi thứ tự từ 0 - 12 trên màn hình nhỏ (small) |
Wrap | |
.flex-*-nowrap | Không wrap items trên các màn hình khác nhau |
.flex-*-wrap | Wrap items trên các màn hình khác nhau |
.flex-*-wrap-reverse | Wrap và đảo ngược items trên các màn hình khác nhau |
Align Content | |
.align-content-*-start | Align tập hợp items từ đầu trên các màn hình khác nhau |
.align-content-*-end | Align tập hợp items từ cuối trên các màn hình khác nhau |
.align-content-*-center | Align tập hợp items center trên các màn hình khác nhau |
.align-content-*-around | Align tập hợp items "xung quanh" trên các màn hình khác nhau |
.align-content-*-stretch | Stretch tập hợp items trên các màn hình khác nhau |
Align Items | |
.align-items-*-start | Align single rows của items từ đầu trên các màn hình khác nhau |
.align-items-*-end | Align single rows của items từ cuối trên các màn hình khác nhau |
.align-items-*-center | Align single rows của items center trên các màn hình khác nhau |
.align-items-*-baseline | Align single rows của items trên baseline trên các màn hình khác nhau |
.align-items-*-stretch | Stretch single rows của items trên các màn hình khác nhau |
Align Self | |
.align-self-*-start | Align một flex item từ đầu trên các màn hình khác nhau |
.align-self-*-end | Align một flex item từ cuối trên các màn hình khác nhau |
.align-self-*-center | Align một flex item center trên các màn hình khác nhau |
.align-self-*-baseline | Align một flex item trên baseline trên các màn hình khác nhau |
.align-self-*-stretch | Stretch một flex item trên các màn hình khác nhau |
Ứng Dụng Học
Theo dõi cập nhật nội dung học trên Youtube & Facebook
Thông Tin Liên Hệ
Công Ty Cổ Phần Công nghệ ZicZac Việt Nam.
Website: https://gozic.vn
SĐT: 096 - 70 25 996
Email: ziczacgroup@gmail.com
Thiết kế webiste chuyên nghiệp
Thiết kế phần mềm quản trị
Thiết kế ứng dụng Android
Thiết kế ứng dụng IOS
Thiết kế Web App
Hỗ trợ Digital Marketing
Hỗ trợ quảng cáo Google Ads
Hỗ trợ quảng cáo Facebook Ads
Hỗ trợ SEO Website