Hướng dẫn display: flex css - hiển thị: flex css

  • Trang chủ
  • Hướng dẫn học
  • Hướng dẫn học CSS3
  • Display flex

display: flex là gì?

CSS3 ra mắt 2 giá trị mới cho thuộc tính displayflexinline-flex, giúp sắp xếp, bố cục các thành phần khối (block) một cách dễ dàng, linh hoạt hơn trước.

display: flexdisplay: inline-flex và các thuộc tính đi kèm được sử dụng khá nhiều trong việc xử lý các cấu trúc, nếu như trước đây đôi lúc cần Javascript để hỗ trợ, thì giờ đây display flex sẽ giúp xử lý nhiều cấu trúc phức tạp một cách dễ dàng.

Cấu trúc cơ bản

Giá trịVDMô tả
flex display flex: flex; Giúp các thành phần linh hoạt.
inline-flex display flex: inline-flex; Giúp các thành phần linh hoạt dưới dạng các inline.

Cách sử dụng

HTML viết:





1
2
3

CSS viết - khi chưa sử dụng

.box { 
    border: 1px solid #ccc; 
    min-height: 300px; 
} 
.box div { 
    margin: 5px; 
    text-align: center; 
    background-color: #72C953;
} 
.box div:nth-child(1) { 
    height: 70px; 
    width: 70px; 
    line-height: 70px;
} 
.box div:nth-child(2) { 
    height: 50px; 
    width: 50px; 
    line-height: 50px;
} 
.box div:nth-child(3) { 
    height: 30px; 
    width: 30px; 
    line-height: 30px;
}
0:

.box { 
    border: 1px solid #ccc; 
    min-height: 300px; 
} 
.box div { 
    margin: 5px; 
    text-align: center; 
    background-color: #72C953;
} 
.box div:nth-child(1) { 
    height: 70px; 
    width: 70px; 
    line-height: 70px;
} 
.box div:nth-child(2) { 
    height: 50px; 
    width: 50px; 
    line-height: 50px;
} 
.box div:nth-child(3) { 
    height: 30px; 
    width: 30px; 
    line-height: 30px;
}

Hiển thị trình duyệt:

Bây giờ ta sẽ lần lượt áp dụng display: flexdisplay: inline-flex để hiểu hơn cách hoạt động của các thuộc tính này:

display: flex

.box { 
    border: 1px solid #ccc; 
    min-height: 300px;
    display: flex;
} 
.box div { 
    margin: 5px; 
    text-align: center; 
    background-color: #72C953;
} 
.box div:nth-child(1) { 
    height: 70px; 
    width: 70px; 
    line-height: 70px;
} 
.box div:nth-child(2) { 
    height: 50px; 
    width: 50px; 
    line-height: 50px;
} 
.box div:nth-child(3) { 
    height: 30px; 
    width: 30px; 
    line-height: 30px;
}

Hiển thị trình duyệt:

Bây giờ ta sẽ lần lượt áp dụng display: flexdisplay: inline-flex để hiểu hơn cách hoạt động của các thuộc tính này:

display: flex

.box { 
    border: 1px solid #ccc; 
    min-height: 300px;
    display: inline-flex;
} 
.box div { 
    margin: 5px; 
    text-align: center; 
    background-color: #72C953;
} 
.box div:nth-child(1) { 
    height: 70px; 
    width: 70px; 
    line-height: 70px;
} 
.box div:nth-child(2) { 
    height: 50px; 
    width: 50px; 
    line-height: 50px;
} 
.box div:nth-child(3) { 
    height: 30px; 
    width: 30px; 
    line-height: 30px;
}

Hiển thị trình duyệt:

Bây giờ ta sẽ lần lượt áp dụng display: flexdisplay: inline-flex để hiểu hơn cách hoạt động của các thuộc tính này:

display: flex

Ta thấy display: flex đã giúp cho các thành phần được hiển thị linh hoạt hơn.

.box {
    Viết ở chỗ này ^^
}

display: inline-flex

Ta thấy
.box { 
    border: 1px solid #ccc; 
    min-height: 300px; 
} 
.box div { 
    margin: 5px; 
    text-align: center; 
    background-color: #72C953;
} 
.box div:nth-child(1) { 
    height: 70px; 
    width: 70px; 
    line-height: 70px;
} 
.box div:nth-child(2) { 
    height: 50px; 
    width: 50px; 
    line-height: 50px;
} 
.box div:nth-child(3) { 
    height: 30px; 
    width: 30px; 
    line-height: 30px;
}
4 đã đối xử với thành phần như dạng inline.
Điểm mạnh của
.box { 
    border: 1px solid #ccc; 
    min-height: 300px; 
} 
.box div { 
    margin: 5px; 
    text-align: center; 
    background-color: #72C953;
} 
.box div:nth-child(1) { 
    height: 70px; 
    width: 70px; 
    line-height: 70px;
} 
.box div:nth-child(2) { 
    height: 50px; 
    width: 50px; 
    line-height: 50px;
} 
.box div:nth-child(3) { 
    height: 30px; 
    width: 30px; 
    line-height: 30px;
}
0 và
.box { 
    border: 1px solid #ccc; 
    min-height: 300px; 
} 
.box div { 
    margin: 5px; 
    text-align: center; 
    background-color: #72C953;
} 
.box div:nth-child(1) { 
    height: 70px; 
    width: 70px; 
    line-height: 70px;
} 
.box div:nth-child(2) { 
    height: 50px; 
    width: 50px; 
    line-height: 50px;
} 
.box div:nth-child(3) { 
    height: 30px; 
    width: 30px; 
    line-height: 30px;
}
4 là khi 2 giá trị này được dùng kết hợp với các thuộc tính khác, các bạn xem chi tiết kết hợp Flex box để hiểu thêm nhé.
Bên dưới đây sẽ cho các bạn thấy một số kết hợp thường dùng, giá trị được viết bên trong class
.box { 
    border: 1px solid #ccc; 
    min-height: 300px; 
} 
.box div { 
    margin: 5px; 
    text-align: center; 
    background-color: #72C953;
} 
.box div:nth-child(1) { 
    height: 70px; 
    width: 70px; 
    line-height: 70px;
} 
.box div:nth-child(2) { 
    height: 50px; 
    width: 50px; 
    line-height: 50px;
} 
.box div:nth-child(3) { 
    height: 30px; 
    width: 30px; 
    line-height: 30px;
}
7:

1

2

3

Kết hợp 1 giá trị
flex-direction: row-reverse;

1

2

3

Ví dụ
justify-content: center;

1

2

3

Kết quả
justify-content: flex-end;

1

2

3

display: flex;
justify-content: space-between;

1

2

3

display: flex;flex-direction: row-reverse;
justify-content: space-around;

1

2

3

display: flex;justify-content: center;
align-items: flex-end;

1

2

3

display: flex;justify-content: flex-end;
align-items: center;

1

2

3

display: flex;justify-content: space-between;
align-items: baseline;

1

2

3

display: flex;justify-content: space-around;

Ta thấy
.box { 
    border: 1px solid #ccc; 
    min-height: 300px; 
} 
.box div { 
    margin: 5px; 
    text-align: center; 
    background-color: #72C953;
} 
.box div:nth-child(1) { 
    height: 70px; 
    width: 70px; 
    line-height: 70px;
} 
.box div:nth-child(2) { 
    height: 50px; 
    width: 50px; 
    line-height: 50px;
} 
.box div:nth-child(3) { 
    height: 30px; 
    width: 30px; 
    line-height: 30px;
}
4 đã đối xử với thành phần như dạng inline.
Điểm mạnh của
.box { 
    border: 1px solid #ccc; 
    min-height: 300px; 
} 
.box div { 
    margin: 5px; 
    text-align: center; 
    background-color: #72C953;
} 
.box div:nth-child(1) { 
    height: 70px; 
    width: 70px; 
    line-height: 70px;
} 
.box div:nth-child(2) { 
    height: 50px; 
    width: 50px; 
    line-height: 50px;
} 
.box div:nth-child(3) { 
    height: 30px; 
    width: 30px; 
    line-height: 30px;
}
0 và
.box { 
    border: 1px solid #ccc; 
    min-height: 300px; 
} 
.box div { 
    margin: 5px; 
    text-align: center; 
    background-color: #72C953;
} 
.box div:nth-child(1) { 
    height: 70px; 
    width: 70px; 
    line-height: 70px;
} 
.box div:nth-child(2) { 
    height: 50px; 
    width: 50px; 
    line-height: 50px;
} 
.box div:nth-child(3) { 
    height: 30px; 
    width: 30px; 
    line-height: 30px;
}
4 là khi 2 giá trị này được dùng kết hợp với các thuộc tính khác, các bạn xem chi tiết kết hợp Flex box để hiểu thêm nhé.
Bên dưới đây sẽ cho các bạn thấy một số kết hợp thường dùng, giá trị được viết bên trong class
.box { 
    border: 1px solid #ccc; 
    min-height: 300px; 
} 
.box div { 
    margin: 5px; 
    text-align: center; 
    background-color: #72C953;
} 
.box div:nth-child(1) { 
    height: 70px; 
    width: 70px; 
    line-height: 70px;
} 
.box div:nth-child(2) { 
    height: 50px; 
    width: 50px; 
    line-height: 50px;
} 
.box div:nth-child(3) { 
    height: 30px; 
    width: 30px; 
    line-height: 30px;
}
7:
flex-direction: row-reverse;
justify-content: center;

1

2

3

Kết hợp 1 giá trị
justify-content: space-between;
align-items: center;

1

2

3

Ví dụ
flex-direction: row-reverse;
justify-content: flex-end;

1

2

3

Kết quả
flex-direction: center;
align-items: center;

1

2

3

display: flex;
flex-direction: column;

1

2

3

display: flex;
flex-direction: column;

1

2

3

display: flex;flex-direction: row-reverse;
flex-direction: column;
justify-content: center;

1

2

3

display: flex;justify-content: center;
flex-direction: column;
justify-content: space-between;

1

2

3

display: flex;justify-content: flex-end;
flex-direction: column;
justify-content: space-around;

1

2

3

display: flex;justify-content: space-between;
flex-direction: column;
justify-content: space-around;
align-items: center;

1

2

3

display: flex;justify-content: space-around;
flex-direction: column-reverse;
justify-content: space-around;
align-items: center;

1

2

3

display: flex;align-items: flex-end;