Bootstrap 4 Flex
Bootstrap 4 Flex
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.
Flexbox
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
:
Ví dụ
Code
<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
:
Ví dụ
Code
<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>
Horizontal Direction
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:
Ví dụ
Code
<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>
Vertical Direction
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:
Ví dụ
Code
<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>
Justify Content
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
:
Ví dụ
Code
<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>
Fill / Equal Widths
Sử dụng .flex-fill
ở flex items để buộc chúng có chiều rộng bằng nhau:
Ví dụ
Code
<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>
Grow
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:
Ví dụ
Flex item 1Flex item 2Flex item 3
Code
<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.
Order
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..):
Ví dụ
Code
<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>
Auto Margins
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):
Ví dụ
Code
<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>
Wrap
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
.
Ví dụ
.flex-wrap:
.flex-wrap-reverse:
.flex-nowrap (mặc định - và sẽ gây tràn nếu có quá nhiều items):
Code
<div class="d-flex flex-wrap">..</div>
<div class="d-flex flex-wrap-reverse">..</div>
<div class="d-flex flex-nowrap">..</div>
Align Content
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.
Ví dụ
.align-content-start (mặc định):
.align-content-end:
.align-content-center:
.align-content-around:
.align-content-stretch:
Code
<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>
Align Items
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).
Ví dụ
.align-items-start:
.align-items-end:
.align-items-center:
.align-items-baseline:
.align-items-stretch (mặc định):
Code
<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>
Align Self
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).
Ví dụ
.align-self-start:
.align-self-end:
.align-self-center:
.align-self-baseline:
.align-self-stretch (mặc định):
Code
<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>
Responsive Flex Class
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 |
Tags:
Phản hồi từ học viên
5
(Dựa trên đánh giá ngày hôm nay)