Email Doanh NghiệpSSLFirewall Anti DDoS

NỘI DUNG

Banner blog lễ 30.4 và 1.5

Flex box CSS là gì? Hướng dẫn CSS Flexible Box đầy đủ nhất

Cao Lê Viết Tiến

Đã kiểm duyệt nội dung

Ngày đăng:12/03/2026
Lượt xem

Quy trình sản xuất nội dung

Đánh giá

[esi kkstarratings cache="private" ttl="3"]

Flex box CSS là module bố cục cho phép bạn sắp xếp, căn chỉnh và phân chia không gian giữa các phần tử trong trang web một cách linh hoạt, dễ dàng tạo layout responsive mà không cần quá nhiều thủ thuật phức tạp. Trong bài viết này, chúng ta sẽ cùng tìm hiểu khái niệm, các thuộc tính quan trọng và cách áp dụng Flex box CSS vào thực tế để xây dựng giao diện hiện đại, tối ưu trải nghiệm người dùng.

Những điểm chính

  • Khái niệm CSS Flexbox: Hiểu rõ CSS Flexbox là một mô hình bố cục một chiều, giúp bạn sắp xếp các phần tử theo một trục duy nhất một cách linh hoạt và tối ưu.
  • Cấu trúc cơ bản: Nắm được các thành phần cốt lõi như Flex Container, Flex Items và các khái niệm trục/kích thước, giúp bạn hiểu rõ nền tảng và cách hoạt động của Flexbox.
  • Các thuộc tính cơ bản của flex container: Nắm vững các thuộc tính quan trọng như display, flex-direction, flex-wrap, justify-content và align-items, giúp bạn điều khiển cách các phần tử con hiển thị và phân bố không gian bên trong.
  • Các thuộc tính Flex items thường dùng: Biết được các thuộc tính áp dụng trực tiếp lên flex items như order, flex-grow và align-self, giúp bạn kiểm soát chi tiết từng phần tử con.
  • Các trường hợp sử dụng phổ biến: Biết được các ứng dụng phổ biến như căn giữa hoàn hảo, cột có chiều cao bằng nhau và xây dựng menu responsive, giúp bạn hình dung cách Flexbox giải quyết các bài toán layout hiện đại.
  • Biết thêm dịch vụ VPS Vietnix giúp triển khai dự án linh hoạt.
  • Câu hỏi thường gặp: Được giải đáp các thắc mắc về display: flex, các công cụ học tập như Flexbox Froggy và ý nghĩa của các thuộc tính, giúp củng cố kiến thức và làm rõ các vấn đề thực tế.
những điểm chính

Flex Box CSS là gì?

CSS Flexbox (Flexible Box Layout) là một mô hình bố cục một chiều trong CSS dùng để phân bổ không gian giữa các phần tử trong một vùng chứa (container) và căn chỉnh chúng một cách hiệu quả.

Với flexbox, bạn có thể dễ dàng bố trí các item lần lượt theo hàng ngang hoặc cột dọc, đồng thời điều chỉnh khoảng cách, thứ tự hiển thị và vị trí của từng item trong container tùy theo nhu cầu thiết kế giao diện. Flexbox đặc biệt mạnh mẽ khi xây dựng các giao diện đáp ứng (responsive), cho phép các phần tử tự động co giãn, lấp đầy khoảng trống hoặc điều chỉnh kích thước ngay cả khi kích thước ban đầu của chúng không xác định.

CSS Flexbox là mô hình bố cục 1 chiều giúp phân bổ không gian và căn chỉnh các phần tử trong container
CSS Flexbox là mô hình bố cục 1 chiều giúp phân bổ không gian và căn chỉnh các phần tử trong container

Để trang web hoạt động mượt mà, ngoài việc dùng Flexbox tối ưu bố cục, bạn rất cần một hạ tầng máy chủ mạnh mẽ. Giải pháp VPS NVMe tại Vietnix giúp hệ thống bứt phá tốc độ tải trang nhờ sự kết hợp giữa CPU AMD EPYC và ổ cứng NVMe Enterprise. Cấu hình này đem lại khả năng truy xuất dữ liệu nhanh gấp 10 lần SSD thông thường, đi kèm cam kết uptime 99.9% và tự động sao lưu an toàn mỗi tuần.

Bùng Nổ Doanh Thu Với VPS NVMe

Website nhanh hơn – Bán được nhiều hàng hơn

  • Chiếm lĩnh TOP Google, hút traffic.
  • Mua sắm mượt mà, tăng tỷ lệ chốt đơn.
  • Chuyên gia kỹ thuật đồng hành 24/7.
Tăng tốc doanh thu ngay
template vps nvme

Cấu trúc cơ bản của Flex Box CSS

Mô hình Flexbox bao gồm hai thành phần chính:

  • Flex Container: Phần tử cha bao quanh có thuộc tính display: flex, nơi thiết lập ngữ cảnh định dạng flex.
  • Flex Items: Các phần tử con trực tiếp nằm bên trong container.

Bên cạnh đó, bạn cũng nên nắm một số khái niệm trục và kích thước sau:

  • main start, main end: Điểm bắt đầu của container theo trục main được gọi là main start, điểm kết thúc theo trục này là main end
  • cross start, cross end: Tương tự, cross start và cross end là điểm đầu và cuối của container theo trục cross.
  • main axis: Đây là trục chính quyết định hướng sắp xếp của các item, mặc định các phần tử sẽ xếp từ trái sang phải theo trục này.
  • cross axis: Là trục vuông góc với main axis, thường hướng từ trên xuống dưới.
  • main size: Kích thước của mỗi item được đo dọc theo trục main axis.
  • cross size: Kích thước của mỗi item được tính theo trục cross axis.
Cấu trúc cơ bản của CSS Flexbox
Cấu trúc cơ bản của CSS Flexbox

Khi làm việc với flex container, bạn sẽ thường xuyên sử dụng các thuộc tính sau để điều khiển cách các phần tử con hiển thị và phân bố không gian bên trong: display, flex-direction, flex-wrap, flex-flow, justify-content, align-items và align-content.

Không dùng flexbox

Trước khi kích hoạt Flexbox, pPhần tử .box chỉ là một container thông thường, các phần tử <div> box-item bên trong sẽ xếp chồng lên nhau theo chiều dọc (từ trên xuống dưới), chiếm toàn bộ chiều rộng có sẵn. Còn các phần tử (inline elements) sẽ xếp cùng một dòng nhưng hạn chế về khả năng tùy chỉnh kích thước và khoảng cách.

<!-- Không sử dụng flexbox -->
<div class="box">
    <div class="box-item">1</div>
    <div class="box-item">2</div>
    <div class="box-item">3</div>
</div>

Khai báo display để kích hoạt flexbox

Để bắt đầu sử dụng Flexbox, bạn cần biến phần tử cha .box thành một Flex Container bằng cách đặt thuộc tính display là flex (hoặc inline-flex). Từ thời điểm này, mọi phần tử con trực tiếp sẽ trở thành flex items và tuân theo quy tắc bố cục của flexbox.

/* Kích hoạt flexbox bằng display */
.box {
    display: flex;
}

Thuộc tính flex-direction

flex-direction xác định trục chính và hướng sắp xếp của các flex item trong container. Việc thay đổi giá trị này cũng làm thay đổi thứ tự hiển thị item theo main axis:

  • flex-direction: row: Giá trị mặc định, item xếp theo hàng ngang từ trái sang phải.
.box {
    display: flex;
    flex-direction: row;
}
  • flex-direction: row-reverse: Các item vẫn xếp ngang nhưng đảo chiều, đi từ phải sang trái.
.box {
    display: flex;
    flex-direction: row-reverse;
}
  • flex-direction: column: Trục chính quay dọc, item xếp chồng từ trên xuống dưới.
.box {
    display: flex;
    flex-direction: column;
}
  • flex-direction: column-reverse: Item vẫn xếp theo cột nhưng thứ tự đảo ngược, hiển thị từ dưới lên trên.
.box {
    display: flex;
    flex-direction: column-reverse;
}
Thuộc tính flex-direction
Thuộc tính flex-direction

Thuộc tính flex-wrap

Theo mặc định, Flexbox sẽ cố gắng ép tất cả các item vào một dòng duy nhất. Thuộc tính này kiểm soát việc xuống dòng. Cụ thể flex-wrap quyết định các flex item có được xuống dòng mới khi không đủ chỗ trên một dòng hay không:

  • nowrap (mặc định): Tất cả item cố gắng nằm trên một dòng, có thể bị co lại để vừa container.
  • wrap: Khi tràn, item sẽ tự động xuống dòng mới để nằm gọn trong container.
  • wrap-reverse: Xuống dòng tương tự wrap nhưng theo hướng ngược lại.
/* flex-wrap: nowrap | wrap | wrap-reverse */
.box {
    display: flex;
    flex-wrap: nowrap;
}
Thuộc tính flex-wrap
Thuộc tính flex-wrap

Thuộc tính flex-flow

flex-flow là dạng viết rút gọn cho flex-direction và flex-wrap. Trong đó, giá trị đầu là hướng sắp xếp, giá trị thứ hai là cách xuống dòng.

.box {
  display: flex;
  flex-flow: row-reverse wrap;
}
Thuộc tính flex-flow
Thuộc tính flex-flow

Thuộc tính justify-content

justify-content dùng để căn chỉnh vị trí các flex item dọc theo trục chính (main axis) khi còn khoảng trống thừa trong container. Các giá trị thường dùng:

  • flex-start: Dồn item về đầu trục chính (giá trị mặc định).
  • flex-end: Dồn item về cuối trục chính.
  • center: Gom tất cả item vào giữa trục chính.
  • space-between: Trải đều khoảng trống giữa các item, item đầu sát mép main start, item cuối sát main end.
  • space-around: Mỗi item có khoảng đệm hai bên, mép container có khoảng cách bằng một nửa so với khoảng giữa hai item.
  • space-evenly: Chia đều khoảng trống giữa item với item và item với mép container.
/* justify-content: căn theo trục chính */
.box {
  display: flex;
  justify-content: flex-start; /* flex-end, center, space-between, space-around, space-evenly */
}
Thuộc tính justify-content
Thuộc tính justify-content

Thuộc tính align-items

align-items điều khiển cách các flex item được căn chỉnh theo trục phụ (cross axis) trong một dòng flex. Các giá trị phổ biến:

  • stretch: Kéo giãn chiều dài item để lấp đầy toàn bộ trục cross (mặc định khi không đặt chiều cao cụ thể).
  • flex-start: Căn item về phía đầu trục cross.
  • flex-end: Căn item về phía cuối trục cross.
  • center: Căn item vào giữa trục cross.
  • baseline: Căn theo baseline văn bản bên trong mỗi item.
/* align-items: căn item theo trục cross */
.box {
  height: 300px;
  display: flex;
  align-items: stretch; /* flex-start, flex-end, center, baseline */
}
Thuộc tính align-items
Thuộc tính align-items

Thuộc tính align-content

align-content hoạt động tương tự justify-content nhưng áp dụng cho tập các dòng flex và căn theo trục cross. Thuộc tính này chỉ có hiệu lực khi container có nhiều hơn một dòng item (flex-wrap bật). Các giá trị chính: stretch, flex-start, flex-end, center, space-between, space-around, giúp bạn phân bố khoảng trống giữa các dòng item theo chiều cross.

/* align-content: căn các dòng flex theo trục cross */
.box {
  height: 300px;
  display: flex;
  flex-wrap: wrap;
  align-content: stretch; /* flex-start, flex-end, center, space-between, space-around */
}
Thuộc tính align-content
Thuộc tính align-content

Thuộc tính gap

Thuộc tính gap dùng để tạo khoảng cách giữa các phần tử mà không cần dùng đến margin. Các giá trị chính bao gồm:

  • row-gap: Tạo khoảng cách giữa các hàng.
  • column-gap: Tạo khoảng cách giữa các cột.
  • gap: Tạo khoảng cách cho cả hàng và cột (ví dụ: gap: 10px 20px;).
.box {
  display: flex;
  ...
  gap: 20px;
  gap: 20px 10px; /* row-gap column gap */
  row-gap: 20px;
  column-gap: 10px;
}
Thuộc tính gap
Thuộc tính gap

Các thuộc tính Flex items thường dùng

Dưới đây là các thuộc tính áp dụng trực tiếp lên các phần tử con nằm bên trong Flex Container:

Thuộc tínhChức năng chínhGiá trị và lưu ý
orderKiểm soát thứ tự hiển thị của các phần tử. Mặc định các phần tử hiển thị theo thứ tự mã nguồn HTML. Phần tử có order nhỏ hơn sẽ xếp trước.– Mặc định: 0
– Số âm được phép sử dụng (ví dụ: -1).
– Nếu trùng order, xếp theo HTML.
flex-growXác định khả năng phình to của phần tử để lấp đầy không gian thừa trong container.– Mặc định: 0 (không phình to).
– Nhận giá trị số nguyên không âm (Ví dụ: 1, 2).
flex-shrinkXác định khả năng co lại của phần tử khi vùng chứa không đủ không gian (ngăn tình trạng tràn layout).– Mặc định: 1 (cho phép co lại).
– Không chấp nhận số âm.
flex-basisĐặt kích thước mặc định (chiều dài/rộng) của phần tử trước khi không gian còn lại được phân bổ.– Mặc định: auto
– Nhận giá trị độ dài (20%, 5rem, 200px…) hoặc từ khóa.
flexLà cú pháp viết tắt cho cả 3 thuộc tính: flex-grow, flex-shrink và flex-basis. Được khuyến khích sử dụng thay vì viết rời rạc.– Mặc định: 0 1 auto.
– Cú pháp: flex:
– Ví dụ flex: 5; tương đương với flex: 5 1 0%;.
align-selfCho phép một phần tử con cụ thể ghi đè lại quy tắc căn chỉnh align-items đã thiết lập ở thẻ cha.Có các giá trị giống align-items (auto, center, flex-start, stretch…).

Các trường hợp sử dụng phổ biến của Flexbox CSS

Flexbox là giải pháp tối ưu cho các bài toán layout hiện đại:

  • Căn giữa hoàn hảo: Việc căn giữa nội dung theo cả hai chiều (ngang và dọc) vào chính giữa vùng chứa cha trở nên cực kỳ đơn giản (chỉ cần justify-content: center và align-items: center).
  • Cột có chiều cao bằng nhau: Tự động làm cho tất cả các cột trong bố cục nhiều cột có cùng chiều cao, bất kể dung lượng nội dung bên trong khác nhau (nhờ align-items: stretch).
  • Xây dựng menu điều hướng responsive: Tạo thanh menu tự động dàn hàng ngang trên máy tính và chuyển thành cột dọc trên điện thoại, hoặc đảo ngược thứ tự logo/menu dễ dàng.
  • Phân bổ không gian đồng đều: Dễ dàng chia khoảng cách giữa các phần tử (như các thẻ sản phẩm, icon) bằng cách sử dụng space-between hoặc space-around mà không cần tính toán margin thủ công, lý tưởng cho danh sách sản phẩm hoặc bộ sưu tập ảnh.
Các trường hợp sử dụng phổ biến của Flexbox
Các trường hợp sử dụng phổ biến của Flexbox

Triển khai dự án linh hoạt với máy chủ ảo VPS Vietnix

Khi đã hoàn thiện giao diện bằng Flexbox, bạn sẽ cần nền tảng lưu trữ ổn định để đưa dự án vào hoạt động thực tế. Dịch vụ thuê VPS tại Vietnix mang đến môi trường máy chủ ảo tốc độ cao với 100% ổ cứng SSD/NVMe Enterprise cùng vi xử lý thế hệ mới từ Intel Xeon và AMD EPYC. Khách hàng được cấp toàn quyền quản trị Root Access, dễ dàng mở rộng tài nguyên theo nhu cầu và hoàn toàn yên tâm với tính năng sao lưu tự động miễn phí hàng tuần.

Thông tin liên hệ:

  • Website: https://stag.vietnix.dev/
  • Hotline: 1800 1093
  • Email: sales@vietnix.com.vn
  • Địa chỉ: 265 Hồng Lạc, Phường Bảy Hiền, Thành Phố Hồ Chí Minh

Câu hỏi thường gặp

Khi đặt display: flex cho một phần tử thì điều gì xảy ra?

Khi bạn khai báo display: flex hoặc display: inline-flex, phần tử đó trở thành flex container và toàn bộ phần tử con trực tiếp của nó trở thành flex items. Lúc này, bạn có thể dùng các thuộc tính như flex-direction, justify-content, align-items, flex-wrap… để điều khiển bố cục, thứ tự và cách căn chỉnh các item.

Flexbox Froggy là gì?

Flexbox Froggy là một game tương tác giúp bạn luyện Flexbox bằng cách viết CSS để điều khiển những chú ếch nhảy về đúng lá sen, mỗi màn chơi tương ứng với một thuộc tính hoặc tổ hợp thuộc tính Flexbox. Đây là cách học trực quan, vui và dễ nhớ, rất phù hợp cho người mới hoặc người muốn ôn lại kiến thức Flexbox qua thực hành nhanh.

Flexbox Labs là gì?

Flexbox Labs là một playground trực quan cho phép bạn chỉnh các thuộc tính Flexbox (flex-direction, flex-wrap, justify-content, align-items, align-content, gap,…) và xem trước kết quả theo thời gian thực. Công cụ này cũng hỗ trợ lưu layout, dùng template có sẵn và xuất mã HTML/CSS để bạn mang vào dự án thật.

flex-direction trong CSS dùng để làm gì?

flex-direction xác định trục chính (main axis) và hướng sắp xếp của các flex item trong container, với bốn giá trị phổ biến là row, row-reverse, column và column-reverse. Tùy chọn này quyết định item xếp theo hàng ngang hay cột dọc, cũng như thứ tự hiển thị từ trái sang phải, phải sang trái, trên xuống dưới hoặc dưới lên trên.

Tóm lại, nếu bạn đang tìm một giải pháp gọn nhẹ để xây dựng bố cục hiện đại, linh hoạt và dễ bảo trì thì Flex box CSS là lựa chọn rất đáng ưu tiên trong front-end. Khi hiểu rõ cách hoạt động của flex container và flex item bạn sẽ dễ dàng kiểm soát layout, tối ưu trải nghiệm người dùng trên nhiều thiết bị và rút ngắn thời gian tải trang.

THEO DÕI VÀ CẬP NHẬT CHỦ ĐỀ BẠN QUAN TÂM

Đăng ký ngay để nhận những thông tin mới nhất từ blog của chúng tôi. Đừng bỏ lỡ cơ hội truy cập kiến thức và tin tức hàng ngày

Đánh giá mức độ hữu ích của bài viết

icon 1 sao

Thất vọng

icon 2 sao

Chưa hữu ích

icon 3 sao

Bình thường

icon 4 sao

Hữu ích

icon 5 sao

Rất hữu ích

Kết nối với mình qua

Kết nối với mình qua

Theo dõi
Thông báo của
guest
0 Comments
Phản hồi nội tuyến
Xem tất cả bình luận

BÀI VIẾT LIÊN QUAN

aapanel

ai

ai-va-data

api-va-giao-thuc-mang

bao-mat

bao-mat-va-mang

bao-mat-va-vpn

bao-mat-website

bao-mat-wordpress

bash-script

cai-dat-chung

cap-nhat-san-pham

co-so-du-lieu

cong-cu-ai

cong-cu-va-ide

cong-nghe-server

control-panel

cpanel

cyberpanel

devops-va-cong-cu

devops-he-thong-va-server

directadmin

doanh-nghiep

dinh-huong-nghe-nghiep

email

giai-phap-bao-mat

giao-thuc-va-quan-tri

google

google-analytics-4

google-search-console

ha-tang-va-thiet-bi

hardware

he-dieu-hanh-linux

huong-dan

khai-niem

khuyen-mai

kiem-thu-phan-mem

kien-thuc-cloud

kien-thuc-dich-vu

kien-thuc-hosting

kien-thuc-kubernetes

kien-thuc-luu-tru

kien-thuc-pagespeed

kien-thuc-server

kien-thuc-ssl

kien-thuc-ten-mien-va-dns

kien-thuc-tong-quan

kien-thuc-va-thuat-ngu-ai

kien-thuc-vps

lap-trinh

lap-trinh-game-app

lap-trinh-va-framework

lap-trinh-web

lenh-linux

linux

lo-hong-va-ky-thuat-tan-cong

loi-server

loi-website

loi

ma-doc

marketing

n8n

network

ngon-ngu-lap-trinh

phat-trien-va-tich-hop-ai

plugin

quan-tri-server

quan-tri-server-va-he-dieu-hanh

security

seo

server

su-kien

sua-loi

system

tai-lieu-ky-thuat

tan-cong-ddos-va-dos

theme

thiet-ke-web-wordpress

thiet-ke-web

thong-bao

thuat-ngu-it

toi-uu-web

toi-uu-website

web-server-va-database

website

woocommerce

wordpress

xac-thuc-va-ma-hoa

xu-ly-loi

text
icon popup single post

CẢM ƠN BẠN ĐÃ ĐÁNH GIÁ BÀI VIẾT

Vietnix sẽ luôn cố gắng cải thiện chất lượng dịch vụ mỗi ngày

ĐÓNG

Đánh giá mức độ hữu ích của bài viết

icon 1 sao

Thất vọng

icon 2 sao

Chưa hữu ích

icon 3 sao

Bình thường

icon 4 sao

Hữu ích

icon 5 sao

Rất hữu ích

Icon
ĐĂNG KÝ NHẬN TÀI LIỆU THÀNH CÔNG
Cảm ơn bạn đã đăng ký nhận tài liệu mới nhất từ Vietnix!
ĐÓNG

ĐĂNG KÝ DÙNG THỬ HOSTING

Asset

7 NGÀY MIỄN PHÍ

Asset 1

ĐĂNG KÝ DÙNG THỬ HOSTING

Asset

7 NGÀY MIỄN PHÍ

Asset 1
Icon
XÁC NHẬN ĐĂNG KÝ DÙNG THỬ THÀNH CÔNG
Cảm ơn bạn đã đăng ký thông tin thành công. Đội ngũ CSKH sẽ liên hệ trực tiếp để kích hoạt dịch vụ cho bạn nhanh nhất!
ĐÓNG