By GokiSoft.Com| 19:26 12/10/2020|
Tài Liệu Bootstrap

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ụ

Flex item 1
Flex item 2
Flex item 3

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ụ

Flex item 1
Flex item 2
Flex item 3

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ụ

Flex item 1
Flex item 2
Flex item 3
Flex item 1
Flex item 2
Flex item 3

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ụ

Flex item 1
Flex item 2
Flex item 3
Flex item 1
Flex item 2
Flex item 3

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), endcenterbetween hoặc around:

Ví dụ

Flex item 1
Flex item 2
Flex item 3
Flex item 1
Flex item 2
Flex item 3
Flex item 1
Flex item 2
Flex item 3
Flex item 1
Flex item 2
Flex item 3
Flex item 1
Flex item 2
Flex item 3

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ụ

Flex item 1
Flex item 2
Flex item 3

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 1
Flex item 2
Flex 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ụ

Flex item 1
Flex item 2
Flex item 3

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ụ

Flex item 1
Flex item 2
Flex item 3
Flex item 1
Flex item 2
Flex item 3

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 item 1
Flex item 2
Flex item 3
Flex item 4
Flex item 5
Flex item 6
Flex item 7
Flex item 8
Flex item 9
Flex item 10
Flex item 11
Flex item 12
Flex item 13
Flex item 14
Flex item 15
Flex item 16
Flex item 17
Flex item 18
Flex item 19
Flex item 20
Flex item 21
Flex item 22
Flex item 23
Flex item 24
Flex item 25


.flex-wrap-reverse:

Flex item 1
Flex item 2
Flex item 3
Flex item 4
Flex item 5
Flex item 6
Flex item 7
Flex item 8
Flex item 9
Flex item 10
Flex item 11
Flex item 12
Flex item 13
Flex item 14
Flex item 15
Flex item 16
Flex item 17
Flex item 18
Flex item 19
Flex item 20
Flex item 21
Flex item 22
Flex item 23
Flex item 24
Flex item 25


.flex-nowrap (mặc định - và sẽ gây tràn nếu có quá nhiều items):

Flex item 1
Flex item 2
Flex item 3
Flex item 4
Flex item 5
Flex item 6
Flex item 7
Flex item 8
Flex item 9
Flex item 10
Flex item 11
Flex item 12
Flex item 13
Flex item 14
Flex item 15
Flex item 16
Flex item 17
Flex item 18
Flex item 19
Flex item 20
Flex item 21
Flex item 22
Flex item 23
Flex item 24
Flex item 25
Flex item 26
Flex item 27
Flex item 28
Flex item 29
Flex item 30
Flex item 31
Flex item 32
Flex item 33
Flex item 34
Flex item 35

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):

Flex item 1
Flex item 2
Flex item 3
Flex item 4
Flex item 5
Flex item 6
Flex item 7
Flex item 8
Flex item 9
Flex item 10
Flex item 11
Flex item 12
Flex item 13
Flex item 14
Flex item 15
Flex item 16
Flex item 17
Flex item 18
Flex item 19
Flex item 20
Flex item 21
Flex item 22
Flex item 23
Flex item 24
Flex item 25


.align-content-end:

Flex item 1
Flex item 2
Flex item 3
Flex item 4
Flex item 5
Flex item 6
Flex item 7
Flex item 8
Flex item 9
Flex item 10
Flex item 11
Flex item 12
Flex item 13
Flex item 14
Flex item 15
Flex item 16
Flex item 17
Flex item 18
Flex item 19
Flex item 20
Flex item 21
Flex item 22
Flex item 23
Flex item 24
Flex item 25


.align-content-center:

Flex item 1
Flex item 2
Flex item 3
Flex item 4
Flex item 5
Flex item 6
Flex item 7
Flex item 8
Flex item 9
Flex item 10
Flex item 11
Flex item 12
Flex item 13
Flex item 14
Flex item 15
Flex item 16
Flex item 17
Flex item 18
Flex item 19
Flex item 20
Flex item 21
Flex item 22
Flex item 23
Flex item 24
Flex item 25


.align-content-around:

Flex item 1
Flex item 2
Flex item 3
Flex item 4
Flex item 5
Flex item 6
Flex item 7
Flex item 8
Flex item 9
Flex item 10
Flex item 11
Flex item 12
Flex item 13
Flex item 14
Flex item 15
Flex item 16
Flex item 17
Flex item 18
Flex item 19
Flex item 20
Flex item 21
Flex item 22
Flex item 23
Flex item 24
Flex item 25


.align-content-stretch:

Flex item 1
Flex item 2
Flex item 3
Flex item 4
Flex item 5
Flex item 6
Flex item 7
Flex item 8
Flex item 9
Flex item 10
Flex item 11
Flex item 12
Flex item 13
Flex item 14
Flex item 15
Flex item 16
Flex item 17
Flex item 18
Flex item 19
Flex item 20
Flex item 21
Flex item 22
Flex item 23
Flex item 24
Flex item 25

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:

Flex item 1
Flex item 2
Flex item 3


.align-items-end:

Flex item 1
Flex item 2
Flex item 3


.align-items-center:

Flex item 1
Flex item 2
Flex item 3


.align-items-baseline:

Flex item 1
Flex item 2
Flex item 3


.align-items-stretch (mặc định):

Flex item 1
Flex item 2
Flex item 3

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:

Flex item 1
Flex item 2
Flex item 3


.align-self-end:

Flex item 1
Flex item 2
Flex item 3


.align-self-center:

Flex item 1
Flex item 2
Flex item 3


.align-self-baseline:

Flex item 1
Flex item 2
Flex item 3


.align-self-stretch (mặc định):

Flex item 1
Flex item 2
Flex item 3

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.

ClassDescription
Flex Container 
.d-*-flexTạo một flexbox container cho các màn hình khác nhau
.d-*-inline-flexTạo một inline flexbox container cho các màn hình khác nhau
Direction 
.flex-*-rowHiển thị flex items theo chiều ngang trên các màn hình khác nhau
.flex-*-row-reverseHiển thị flex items theo chiều ngang và right-aligned, trên các màn hình khác nhau
.flex-*-columnHiển thị flex items theo chiều dọc trên các màn hình khác nhau
.flex-*-column-reverseHiể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-*-startHiển thị flex items left-aligned trên các màn hình khác nhau
.justify-content-*-endHiển thị flex items right-aligned trên các màn hình khác nhau
.justify-content-*-centerHiển thị flex items center đối với flex container trên các màn hình khác nhau
.justify-content-*-betweenHiển thị flex items "between" trên các màn hình khác nhau
.justify-content-*-aroundHiển thị flex items "around" trên các màn hình khác nhau
Fill / Equal Width 
.flex-*-fillKhiế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-0Khô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-1Là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-0Không làm items co lại trên các màn hình khác nhau
.flex-*-shrink-1Làm items co lại trên các màn hình khác nhau
Order 
.order-*-0-12Thay đổi thứ tự từ 0 - 12 trên màn hình nhỏ (small)
Wrap 
.flex-*-nowrapKhông wrap items trên các màn hình khác nhau
.flex-*-wrapWrap items trên các màn hình khác nhau
.flex-*-wrap-reverseWrap và đảo ngược items trên các màn hình khác nhau
Align Content 
.align-content-*-startAlign tập hợp items từ đầu trên các màn hình khác nhau
.align-content-*-endAlign tập hợp items từ cuối trên các màn hình khác nhau
.align-content-*-centerAlign  tập hợp items center trên các màn hình khác nhau
.align-content-*-aroundAlign tập hợp items "xung quanh" trên các màn hình khác nhau
.align-content-*-stretchStretch tập hợp items trên các màn hình khác nhau
Align Items 
.align-items-*-startAlign single rows của items từ đầu trên các màn hình khác nhau
.align-items-*-endAlign single rows của items từ cuối trên các màn hình khác nhau
.align-items-*-centerAlign single rows của items center trên các màn hình khác nhau
.align-items-*-baselineAlign single rows của items trên baseline trên các màn hình khác nhau
.align-items-*-stretchStretch single rows của items trên các màn hình khác nhau
Align Self 
.align-self-*-startAlign một flex item từ đầu trên các màn hình khác nhau
.align-self-*-endAlign một flex item từ cuối trên các màn hình khác nhau
.align-self-*-centerAlign một flex item center trên các màn hình khác nhau
.align-self-*-baselineAlign một flex item trên baseline trên các màn hình khác nhau
.align-self-*-stretchStretch một flex item trên các màn hình khác nhau