Đăng nhập

Bài 11: Sử dụng Flexbox trong Tailwind CSS

Một trong những bước ngoặt quan trọng trong thiết kế giao diện web hiện đại là Flexbox. Nó giúp bạn sắp xếp các phần tử theo hàng ngang hoặc dọc, căn giữa dễ dàng, chia đều khoảng cách, và hơn thế nữa.

Nếu trong CSS thuần, bạn cần viết một loạt thuộc tính như display: flex, justify-content, align-items… thì với Tailwind, bạn chỉ cần gán các class ngắn gọn ngay trong HTML, không cần viết CSS riêng.

Bài học liên quan flexbox trong môn học lập trình CSS:

Trong bài học này, chúng ta sẽ cùng nhau khám phá cách sử dụng Flexbox bằng Tailwind CSS để:

  • Canh giữa các phần tử
  • Chia layout theo chiều ngang hoặc dọc
  • Sắp xếp nội dung linh hoạt trên mọi thiết bị

Flex là gì? Nhắc lại một chút lý thuyết

Flexbox (Flexible Box Layout) là một mô hình bố cục trong CSS giúp bạn:

  • Dễ dàng căn chỉnh phần tử con trong một khối cha
  • Linh hoạt về chiều ngang (row) và chiều dọc (column)
  • Giải quyết nhiều vấn đề mà float hay inline-block từng gặp phải

Các class Flexbox trong Tailwind

ClassTác dụng
flexKích hoạt chế độ flex cho phần tử cha
flex-rowXếp con theo hàng ngang (mặc định)
flex-colXếp con theo cột dọc
items-centerCăn giữa theo chiều dọc
justify-centerCăn giữa theo chiều ngang
justify-betweenDàn đều các phần tử
gap-x-*, gap-y-*Khoảng cách giữa các cột/hàng
flex-wrapCho phép xuống dòng khi tràn

Ví dụ 1: Căn giữa nội dung

<div class="flex items-center justify-center h-screen bg-gray-100">
  <div class="bg-white p-8 rounded shadow text-center">
    <h2 class="text-2xl font-bold text-gray-800">Chào bạn!</h2>
    <p class="text-gray-600 mt-2">Nội dung này được căn giữa bằng Flexbox.</p>
  </div>
</div>
  • flex: kích hoạt flex
  • items-center: căn giữa theo chiều dọc
  • justify-center: căn giữa theo chiều ngang
  • h-screen: chiều cao = 100% chiều cao màn hình

Ví dụ 2: Chia bố cục theo hàng ngang

<div class="flex space-x-4 p-4 bg-gray-200">
  <div class="bg-white p-4 rounded shadow flex-1">Cột 1</div>
  <div class="bg-white p-4 rounded shadow flex-1">Cột 2</div>
  <div class="bg-white p-4 rounded shadow flex-1">Cột 3</div>
</div>

Ở đây:

  • flex: kích hoạt flex theo hàng
  • space-x-4: tạo khoảng cách ngang giữa các cột
  • flex-1: chia đều chiều rộng các phần tử con

Ví dụ 3: Flex column trên mobile, row trên desktop

<div class="flex flex-col md:flex-row gap-4">
  <div class="flex-1 bg-blue-100 p-4">Nội dung trái</div>
  <div class="flex-1 bg-blue-200 p-4">Nội dung phải</div>
</div>

Giải thích:

  • Mobile: flex-col → xếp dọc
  • Desktop: md:flex-row → xếp ngang

Rất phù hợp khi bạn muốn layout responsive mà không cần viết media query.


So sánh với CSS thuần

Ý tưởng thiết kếCSS truyền thốngTailwind CSS
Bật flexdisplay: flex;flex
Xếp dọcflex-direction: column;flex-col
Căn giữa chiều ngangjustify-content: center;justify-center
Căn giữa chiều dọcalign-items: center;items-center
Khoảng cách giữa các khốimargin-right, margin-left, gapspace-x-*, gap-x-*
Tự co giãn phần tửflex: 1;flex-1

Tương tác thực hành

Hãy thử viết một card gồm 2 phần:

  • Bên trái là hình ảnh (hoặc placeholder)
  • Bên phải là tiêu đề và đoạn mô tả

Trên mobile: xếp dọc
Trên desktop: xếp ngang

<div class="flex flex-col md:flex-row items-center bg-white shadow rounded p-4 max-w-4xl mx-auto">
  <img src="https://via.placeholder.com/200x150" class="rounded mb-4 md:mb-0 md:mr-6" />
  <div>
    <h3 class="text-xl font-bold text-gray-800 mb-2">Giới thiệu khóa học</h3>
    <p class="text-gray-600">Khóa học này giúp bạn thành thạo Tailwind CSS với ví dụ thực tế, rõ ràng và dễ học.</p>
  </div>
</div>

Tổng kết kiến thức

ClassChức năng
flexKích hoạt Flexbox
flex-rowSắp xếp hàng ngang (mặc định)
flex-colSắp xếp theo cột dọc
justify-centerCăn giữa theo chiều ngang
items-centerCăn giữa theo chiều dọc
space-x-4Khoảng cách ngang giữa các phần tử con
flex-1Chia đều không gian
md:flex-rowResponsive: đổi hướng khi màn hình đủ lớn

Tóm tắt bài học

  • Tailwind giúp bạn sử dụng Flexbox nhanh chóng với các class tiện ích ngắn gọn.
  • Bạn có thể dễ dàng chia bố cục hàng/cột, canh giữa, chia đều phần tử, và phản hồi responsive mà không cần viết CSS tay.
  • Flex là công cụ cực kỳ quan trọng trong việc xây dựng layout linh hoạt.

Flex giúp bạn sắp xếp nội dung một cách linh hoạt theo dòng và cột, nhưng nếu bạn muốn chia layout thành lưới nhiều hàng – nhiều cột một cách chính xác hơn (ví dụ như bảng sản phẩm, gallery ảnh…), thì Grid layout sẽ là lựa chọn hoàn hảo.

Trong bài 12, chúng ta sẽ học cách sử dụng Grid layout trong Tailwind CSS – vừa đơn giản, vừa mạnh mẽ.


Bạn đã quen với chiều ngang, chiều dọc, căn giữa và chia cột linh hoạt. Giờ là lúc mở rộng sang bố cục dạng lưới — hẹn gặp bạn ở bài 12: Sử dụng Grid layout trong Tailwind CSS.

Thảo luận

Email của bạn sẽ không được hiển thị công khai. Các trường bắt buộc được đánh dấu *

Đăng ký nhận tin mới

Nhận bài học, tài nguyên và cơ hội việc làm qua email hàng tuần.

Chúng tôi cam kết không spam. Bạn có thể hủy bất cứ lúc nào.