Đăng nhập

Bài 12: Sử dụng Grid layout trong Tailwind CSS

Nếu Flexbox giúp bạn sắp xếp phần tử theo hàng hoặc cột, thì Grid layout lại là công cụ mạnh mẽ để chia bố cục theo lưới hai chiều, với khả năng kiểm soát cao hơn: chia hàng, chia cột, khoảng cách giữa các ô, và tùy biến từng vùng.

Với Tailwind CSS, bạn không cần viết grid-template-columns hay grid-gap phức tạp. Bạn chỉ cần áp dụng các class như grid, grid-cols-3, gap-4… và bố cục dạng lưới sẽ hiện ra rõ ràng, trực quan.

Hôm nay, chúng ta sẽ cùng học cách:

  • Tạo lưới với nhiều cột và hàng
  • Điều chỉnh khoảng cách giữa các ô
  • Làm layout responsive bằng grid
  • Tùy chỉnh từng phần tử trong lưới

Nhắc lại một chút về Grid trong CSS thuần

Trong CSS truyền thống, bạn viết:

.container {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 16px;
}

Với Tailwind, bạn chỉ cần:

<div class="grid grid-cols-3 gap-4">...</div>

Ngắn gọn, dễ hiểu, không cần viết file CSS riêng.


Các class Grid cơ bản trong Tailwind

ClassTác dụng
gridKích hoạt chế độ lưới (grid layout)
grid-cols-nTạo lưới với n cột
grid-rows-nTạo lưới với n hàng
gap-nKhoảng cách giữa các ô (hàng & cột)
gap-x-nKhoảng cách ngang giữa các cột
gap-y-nKhoảng cách dọc giữa các hàng
col-span-nMột ô chiếm n cột
row-span-nMột ô chiếm n hàng

Ví dụ 1: Tạo lưới 3 cột đơn giản

<div class="grid grid-cols-3 gap-4 p-4">
  <div class="bg-blue-100 p-4 rounded">1</div>
  <div class="bg-blue-200 p-4 rounded">2</div>
  <div class="bg-blue-300 p-4 rounded">3</div>
  <div class="bg-blue-400 p-4 rounded">4</div>
  <div class="bg-blue-500 p-4 rounded">5</div>
  <div class="bg-blue-600 p-4 rounded">6</div>
</div>
  • grid-cols-3: chia thành 3 cột đều nhau
  • gap-4: khoảng cách giữa các ô
  • Tự động xuống hàng nếu vượt quá số cột

Ví dụ 2: Responsive grid – 1 cột trên mobile, 3 cột trên desktop

<div class="grid grid-cols-1 md:grid-cols-3 gap-6 p-4">
  <div class="bg-white shadow rounded p-6">Card 1</div>
  <div class="bg-white shadow rounded p-6">Card 2</div>
  <div class="bg-white shadow rounded p-6">Card 3</div>
</div>
  • grid-cols-1: trên mobile hiển thị 1 cột
  • md:grid-cols-3: từ tablet trở lên hiển thị 3 cột
  • Rất tiện cho các layout sản phẩm, bài viết, ảnh…

Ví dụ 3: Một phần tử chiếm nhiều cột

<div class="grid grid-cols-3 gap-4 p-4">
  <div class="col-span-2 bg-green-200 p-4 rounded">Chiếm 2 cột</div>
  <div class="bg-green-400 p-4 rounded">Chiếm 1 cột</div>
  <div class="col-span-3 bg-green-600 p-4 rounded">Chiếm cả hàng</div>
</div>
  • col-span-2: chiếm 2/3 cột
  • col-span-3: chiếm toàn bộ hàng

So sánh nhanh: Grid vs Flex

Tình huốngDùng FlexDùng Grid
Canh hàng/dòng đơn giảnKhông
Chia layout dạng bảng 2 chiềuKhông
Giao diện card, sản phẩm, gallery ảnh
Điều chỉnh từng phần tử theo hàng/cộtKhông (khó làm)Có (dễ hơn)
Responsive layout đa cột

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

ClassTác dụng
gridKích hoạt lưới
grid-cols-3Tạo 3 cột
gap-4Tạo khoảng cách đều giữa các ô
col-span-2Một ô chiếm 2 cột
md:grid-cols-1Responsive: đổi số cột theo màn hình

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

  • Grid layout là công cụ mạnh để chia bố cục dạng bảng nhiều hàng nhiều cột.
  • Tailwind cung cấp cú pháp đơn giản như grid-cols-3, gap-4, col-span-2
  • Grid rất phù hợp khi cần layout dạng gallery, bảng sản phẩm, blog list, hoặc khu vực content phức tạp.

Giờ bạn đã làm chủ hai công cụ bố cục mạnh mẽ: FlexGrid. Nhưng trong layout thực tế, bạn còn cần điều chỉnh những thứ như:

  • Hiển thị hay ẩn phần tử theo tình huống
  • Xử lý thứ tự hiển thị, độ sâu (z-index)
  • Làm cho layout chồng lớp, nổi lên, ẩn xuống…

Tất cả những điều đó sẽ được giới thiệu trong bài 13: Các lớp hiển thị – display, visibility, z-index trong Tailwind CSS.


Bạn đã sẵn sàng để điều khiển cái gì hiện – cái gì ẩn – cái gì nổi lên trên chưa?
Hẹn gặp bạn trong bài tiếp theo!

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.