Email Doanh NghiệpSSLFirewall Anti DDoS

NỘI DUNG

Banner blog lễ 30.4 và 1.5

CSS Grid Layout là gì? Hướng dẫn sử dụng CSS Grid cơ bản

Hưng Nguyễn

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

Ngày đăng:08/12/2025
Lượt xem

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

Đánh giá

[esi kkstarratings cache="private" ttl="3"]
Speed optimizer 2

CSS Grid Layout là một hệ thống bố cục mạnh mẽ trong CSS, cho phép các nhà phát triển thiết kế giao diện web dựa trên một hệ thống lưới gồm các hàng và cột. Trong bài viết này, mình sẽ giúp bạn biết thêm về những lợi ích nổi bật của CSS Grid, các khái niệm cơ bản, cách sử dụng, các thuộc tính chính và so sánh với các phương pháp layout CSS khác.

Những điểm chính

  1. Khái niệm: Biết được CSS Grid Layout là hệ thống bố cục trong CSS cho phép bạn thiết kế giao diện web dựa trên hệ thống lưới gồm các hàng và cột.
  2. Lợi ích nổi bật: Hiểu được những lợi ích nổi bật khi sử dụng CSS Grid Layout trong thiết kế web.
  3. Các khái niệm cơ bản: Nắm rõ các khái niệm cơ bản cần nắm khi bắt đầu làm việc với CSS Grid Layout.
  4. Cách sử dụng cơ bản: Được hướng dẫn cách sử dụng cơ bản với CSS Grid.
  5. Các thuộc tính chính: Biết được các thuộc tính có trong CSS Grid.
  6. Tạo bố cục nâng cao: Nắm được các cách tạo bố cục nâng cao trong CSS Grid.
  7. Ví dụ thực tế: Biết thêm một số ví dụ thực tế để dễ dàng triển khai và áp dụng.
  8. So sánh CSS Grid với các phương pháp layout khác: Biết được ưu nhược điểm nổi bật giữa các phương pháp layout phổ biến.
  9. Biết đến Vietnix là nhà cung cấp dịch vụ Hosting, VPS uy tín.
  10. Câu hỏi thường gặp: Giải đáp các thắc mắc liên quan đến CSS Grid Layout.
những điểm chính

CSS Grid Layout là gì?

CSS Grid Layout là một hệ thống bố cục trong CSS cho phép bạn thiết kế giao diện web dựa trên hệ thống lưới gồm các hàng và cột. Công cụ này giúp nhà phát triển dễ dàng chia nhỏ không gian trang web và sắp xếp các thành phần một cách trực quan, linh hoạt, phù hợp với mọi dạng bố cục từ đơn giản đến phức tạp. CSS Grid Layout rất phù hợp để xây dựng các giao diện web hiện đại, tối ưu cho cả desktop và mobile.

CSS Grid Layout là một hệ thống bố cục trong CSS
CSS Grid Layout là một hệ thống bố cục trong CSS

Lợi ích nổi bật khi sử dụng CSS Grid

Dưới đây là những lợi ích nổi bật khi sử dụng CSS Grid Layout trong thiết kế web:

  • Hỗ trợ bố cục hai chiều (hàng và cột): Giúp bạn thiết kế giao diện web một cách linh hoạt cả theo chiều dọc và ngang.​
  • Dễ dàng tạo các layout phức tạp: Cho phép build nhiều dạng lưới, dashboard, gallery hiện đại mà không cần hack code.​
  • Tối ưu cho responsive: Dễ dàng thích ứng với nhiều kích thước màn hình chỉ với một vài dòng CSS.​
  • Đơn giản hóa việc quản lý layout: Giảm phụ thuộc vào float, position hay inline-block, tiết kiệm thời gian viết CSS.​
  • Kiểm soát vị trí phần tử chính xác: Từng phần tử có thể đặt chính xác vào vị trí mong muốn trên lưới.​
  • Tăng tính bảo trì và mở rộng: Cấu trúc code rõ ràng, dễ bảo trì, mở rộng và chỉnh sửa khi cần thiết.​
  • Hỗ trợ tốt trình duyệt hiện đại: Được các trình duyệt lớn hỗ trợ đầy đủ, nên dễ ứng dụng trong dự án thực tế.​

Tất nhiên, một giao diện hiện đại và tối ưu sẽ không thể hoàn hảo nếu thiếu đi một nền tảng vận hành ổn định. Để website của bạn phát huy tối đa sức mạnh, việc lựa chọn một gói hosting cho WordPress tốc độ cao từ Vietnix sẽ đảm bảo trang web luôn hoạt động mượt mà và nhanh chóng.

CSS Grid Layout giúp kiểm soát vị trí phần tử chính xác
CSS Grid Layout giúp kiểm soát vị trí phần tử chính xác (Nguồn: Internnet)

Các khái niệm cơ bản trong CSS Grid

Dưới đây là các khái niệm cơ bản cần nắm khi bắt đầu làm việc với CSS Grid Layout:

  • Grid Container: Là phần tử cha mà bạn áp dụng thuộc tính display: grid hoặc display: inline-grid. Khi khai báo, tất cả các phần tử con trực tiếp của nó sẽ trở thành grid item và được quản lý trong hệ lưới.​
  • Grid Item: Là phần tử con trực tiếp nằm trong grid container. Đây là những thành phần sẽ được xếp đặt vào các ô của lưới theo cấu trúc hàng và cột bạn đã định nghĩa.
  • Grid Line: Là các đường phân chia dọc hoặc ngang trong grid, xác định ranh giới giữa các hàng hoặc các cột. Các grid line giúp định vị chính xác vị trí bắt đầu và kết thúc của mỗi grid item trên lưới.​
  • Grid Track: Là khoảng không gian nằm giữa hai grid line liên tiếp, có thể là một hàng hoặc một cột trong hệ lưới. Các track này sẽ xác định số lượng và kích thước các hàng/cột của grid.
  • Grid Cell: Là một ô duy nhất trên lưới, hình thành bởi giao điểm giữa hai grid line ngang và hai grid line dọc liền kề. Đây là đơn vị nhỏ nhất trong hệ thống CSS Grid.
  • Grid Area: Grid Area là vùng không gian lớn hơn, được bao quanh bởi bốn grid line (trên, dưới, trái, phải), có thể chứa một hoặc nhiều grid cell. Grid area được dùng để gom nhóm nhiều ô thành một vùng lớn cho một grid item.
Grid Container là phần tử mà bạn áp dụng thuộc tính display: grid
Grid Container là phần tử mà bạn áp dụng thuộc tính display: grid (Nguồn: Internet)

Khai báo display: grid cho container

Bạn chọn một phần tử cha (container) và thiết lập display: grid hoặc display: inline-grid trong CSS để kích hoạt chế độ grid cho các phần tử con.

.container {
  display: grid;
}
Khai báo display: grid cho container
Khai báo display: grid cho container

Tạo hàng và cột với grid-template-rows, grid-template-columns

Bạn định nghĩa số lượng và kích thước hàng/cột bằng thuộc tính grid-template-rows và grid-template-columns.

Ví dụ, tạo 3 cột tự động và 2 dòng có chiều cao khác nhau:

.container {
  grid-template-columns: 1fr 2fr 1fr;
  grid-template-rows: 100px 200px;
}
Tạo hàng và cột với grid-template-rows, grid-template-columns
Tạo hàng và cột với grid-template-rows, grid-template-columns

Sắp xếp grid item theo dòng/cột

Bạn sắp xếp từng grid item vào vị trí mong muốn bằng thuộc tính grid-column, grid-row hoặc grid-area.

Ví dụ, di chuyển một phần tử tới cột thứ hai, dòng thứ nhất:

.item {
  grid-column: 2;
  grid-row: 1;
}

Sử dụng các đơn vị đo: px, %, fr

Khi khai báo kích thước hàng/cột, bạn có thể dùng các đơn vị như px (pixel), % (phần trăm) hoặc fr (fraction – chia đều không gian còn lại cho các cột/hàng).

Ví dụ, tạo 3 cột với kích thước tự động chia đều không gian sử dụng đơn vị fr:​

.container {
  grid-template-columns: 1fr 1fr 2fr;
}
Sử dụng đơn vị đo fr
Sử dụng đơn vị đo fr

Các bước này sẽ giúp bạn khởi tạo và triển khai bố cục web cơ bản bằng CSS Grid một cách dễ dàng, trực quan.

Các thuộc tính chính của CSS Grid

Thuộc tínhChức năng
align-contentCăn chỉnh toàn bộ lưới theo chiều dọc trong container, khi kích thước lưới nhỏ hơn vùng chứa
align-itemsXác định căn chỉnh mặc định của các phần tử con theo trục dọc trong grid container
align-selfCăn chỉnh vị trí một grid item cụ thể theo trục dọc, ghi đè giá trị align-items
displayXác định kiểu hiển thị (grid, inline-grid) để kích hoạt hệ lưới
column-gapQuy định khoảng cách giữa các cột trong grid
gapViết tắt cho khoảng cách giữa hàng và cột (row-gap, column-gap)
gridViết tắt cho các thuộc tính: grid-template-rows, grid-template-columns, grid-template-areas, grid-auto-rows, grid-auto-columns, grid-auto-flow
grid-areaĐặt tên hoặc viết tắt cho vị trí và phạm vi mà item chiếm trên lưới
grid-auto-columnsThiết lập kích thước mặc định cho các cột tạo tự động trong grid
grid-auto-flowĐiều khiển cách các phần tử tự động được sắp xếp trong lưới
grid-auto-rowsThiết lập chiều cao mặc định cho các hàng tạo tự động
grid-columnViết tắt cho grid-column-start và grid-column-end
grid-column-endChỉ định vị trí kết thúc của một grid item theo cột
grid-column-startChỉ định vị trí bắt đầu của một grid item theo cột
grid-rowViết tắt cho grid-row-start và grid-row-end
grid-row-endChỉ định vị trí kết thúc của một grid item theo hàng
grid-row-startChỉ định vị trí bắt đầu của một grid item theo hàng
grid-templateViết tắt cho grid-template-rows, grid-template-columns, grid-template-areas
grid-template-areasĐịnh nghĩa cách sắp xếp các hàng và cột dựa trên tên khu vực (area)
grid-template-columnsChỉ định kích thước và số lượng các cột trong grid
grid-template-rowsChỉ định kích thước các hàng trong grid
justify-contentCăn chỉnh toàn bộ lưới theo chiều ngang trong container
justify-selfCăn chỉnh một grid item cụ thể theo trục ngang trong cell
place-selfViết tắt cho align-self và justify-self
place-contentViết tắt cho align-content và justify-content
row-gapQuy định khoảng cách giữa các hàng trong grid

Đặt nhiều grid item vào cùng một khu vực (overlap item)

CSS Grid cho phép bạn đặt nhiều phần tử vào cùng một vùng lưới, tạo hiệu ứng chồng lấp (overlap) nhờ chỉ định các thuộc tính vị trí giống nhau cho nhiều item.

Ví dụ, hai phần tử cùng đặt tại vị trí dòng 1 đến 3 và cột 2 đến 4:

.item1, .item2 {
  grid-row: 1 / 3;
  grid-column: 2 / 4;
}

Các grid item này sẽ chồng lên nhau theo thứ tự xuất hiện trong HTML. Bạn có thể dùng thêm thuộc tính z-index để kiểm soát thứ tự hiển thị.

Đặt tên cho grid area và sử dụng grid-template-areas

CSS Grid hỗ trợ đặt tên cho các khu vực bố cục bằng thuộc tính grid-area, rất lý tưởng để quản lý layout phức tạp.

Khai báo grid-template-areas trên container:

.container {
  display: grid;
  grid-template-areas:
    "header header header"
    "sidebar content content"
    "footer footer footer";
}
.header   { grid-area: header; }
.sidebar  { grid-area: sidebar; }
.content  { grid-area: content; }
.footer   { grid-area: footer; }
Đặt tên cho grid area và sử dụng grid-template-areas
Đặt tên cho grid area và sử dụng grid-template-areas

Việc gán tên giúp nhóm và sắp xếp các grid item thuận tiện, dễ thay đổi bố cục.

Responsive layout với media query và Grid

CSS Grid dễ dàng kết hợp với media query để tạo layout linh hoạt cho nhiều thiết bị. Ví dụ, đổi số cột khi màn hình nhỏ hơn 600px:

.container {
  display: grid;
  grid-template-columns: 1fr 1fr 1fr;
}
@media (max-width: 600px) {
  .container {
    grid-template-columns: 1fr;
  }
}

Nhờ media query, layout sẽ tự động biến đổi theo độ rộng màn hình, tối ưu trải nghiệm trên mọi thiết bị.

Sử dụng các function repeat(), minmax(), auto-fill, auto-fit

CSS Grid cung cấp các hàm mạnh mẽ để tạo bố cục linh hoạt:

  • repeat(): Lặp lại số lượng cột/hàng, ví dụ tạo 4 cột:
grid-template-columns: repeat(4, 1fr);
  • minmax(): Quy định phạm vi kích thước cột/hàng:
grid-template-columns: minmax(200px, 1fr);
  • auto-fill, auto-fit: Tự động lấp đầy hoặc điều chỉnh số lượng cột phù hợp với chiều ngang container:
grid-template-columns: repeat(auto-fill, minmax(150px, 1fr));

Các function này giúp tự động hóa và tối ưu hóa bố cục, tăng khả năng responsive và kiểm soát layout tốt hơn.

Tạo bố cục lưới trang chủ

CSS Grid rất phù hợp để tạo các layout lưới cho gallery ảnh, landing page hiện đại hoặc dashboard quản trị nhờ khả năng kiểm soát bố cục hai chiều dễ dàng. Bạn có thể khai báo nhiều cột và hàng linh hoạt, trình bày các thành phần như hình ảnh, card sản phẩm, widget,… theo đúng thứ tự mong muốn.

Ví dụ tạo gallery đơn giản:

.gallery {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 20px;
}
.gallery-item {
  background: #eee;
  padding: 10px;
}
Tạo bố cục lưới trang chủ
Tạo bố cục lưới trang chủ

CSS Grid giúp đảm bảo các thành phần luôn đều nhau và tự động căn chỉnh khi thay đổi kích thước trình duyệt.

Tích hợp CSS Grid với Flexbox cho giao diện phức tạp

Kết hợp CSS Grid và Flexbox giúp giải quyết nhiều trường hợp layout đa dạng, như: sử dụng Grid cho bố cục tổng thể và Flexbox cho nhóm con (hàng ngang, thanh menu, list sản phẩm).

Ví dụ, dùng Grid để tạo khung tổng thể dashboard, bên trong mỗi widget lại dùng Flexbox căn chỉnh nội dung:

.dashboard {
  display: grid;
  grid-template-areas: 
    "menu main"
    "menu stats";
  grid-template-columns: 200px 1fr;
  grid-template-rows: auto 300px;
}
.menu     { grid-area: menu; }
.main     { grid-area: main; display: flex; flex-direction: column; }
.stats    { grid-area: stats; display: flex; justify-content: space-around; }
Tích hợp CSS Grid với Flexbox cho giao diện phức tạp
Tích hợp CSS Grid với Flexbox cho giao diện phức tạp

Phương pháp này mang lại sự linh hoạt tối ưu cho phát triển giao diện hiện đại.

Code mẫu

Ví dụ hướng dẫn tạo bố cục lưới 3 cột đơn giản:

<div class="container">
  <div>1</div>
  <div>2</div>
  <div>3</div>
  <div>4</div>
  <div>5</div>
</div>
.container {
  display: grid;
  grid-template-columns: auto auto auto;
  gap: 16px;
}

Nhờ đó, bạn có thể từng bước thử nghiệm, chỉnh sửa, áp dụng vào các dự án thực tế một cách trực quan và hiệu quả.

So sánh CSS Grid với các phương pháp layout khác

Các phương pháp bố cục trong CSS như Grid, Flexbox, Float, Inline-Block hay Table layout đều có chung một mục tiêu: giúp nhà phát triển sắp xếp, căn chỉnh và kiểm soát vị trí phần tử trên giao diện web một cách trực quan và linh hoạt. Chúng đều cho phép tạo cấu trúc trang rõ ràng, hỗ trợ responsive và tối ưu trải nghiệm người dùng trên nhiều kích thước màn hình khác nhau. Tuy nhiên, mỗi phương pháp lại phù hợp với các tình huống thiết kế nhất định, thể hiện qua bảng so sánh dưới đây.

Phương phápƯu điểmNhược điểmTrường hợp sử dụng
CSS GridQuản lý bố cục hai chiều (hàng, cột), phù hợp cho layout phức tạp, dễ responsive, kiểm soát vị trí item chi tiếtĐôi khi dư thừa cho bố cục đơn giản một chiều, chưa hỗ trợ tốt trình duyệt cũBố cục lưới tổng thể trang, dashboard, gallery ảnh
FlexboxSắp xếp item theo một chiều (ngang/ dọc), căn chỉnh linh hoạt, dễ lồng với item độngKhông tối ưu cho bố cục hai chiều, khó kiểm soát vị trí trên nhiều dòng/cộtThanh menu, list sản phẩm, nhóm nút chức năng đơn giản
Float, Inline-BlockTương thích trình duyệt cũ, dễ dùng cho bố cục cơ bản dạng hàng/cộtKhó kiểm soát spacing, khó responsive, cần hack khi layout phức tạpBố cục legacy, trường hợp cần hỗ trợ trình duyệt rất cũ
Table layoutQuản lý dữ liệu bảng hiệu quả, dễ kiểm soát kết cấu hàng/cộtKhông phù hợp trình bày giao diện, không tối ưu SEO, khó responsiveHiển thị dữ liệu bảng, trang quản lý dữ liệu

Vietnix – Nhà cung cấp nền tảng Hosting và VPS mạnh mẽ cho các dự án web hiện đại

Để xây dựng và triển khai các giao diện web phức tạp, tối ưu với CSS Grid Layout, việc sở hữu một hạ tầng lưu trữ mạnh mẽ và đáng tin cậy là điều kiện tiên quyết. Vietnix tự hào cung cấp các dịch vụ HostingVPS uy tín tại Việt Nam, được tối ưu hóa để đáp ứng mọi yêu cầu của các dự án web hiện đại. Với tốc độ tải trang nhanh, băng thông ổn định và khả năng xử lý mạnh mẽ, nền tảng của Vietnix đảm bảo rằng các website sử dụng CSS Grid của bạn sẽ hoạt động mượt mà, nhanh chóng và hiệu quả. Liên hệ ngay!

Thông tin liên hệ:

  • Website: https://vietnix.vn/
  • 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

Thuộc tính gap trong CSS Grid có lợi ích gì so với việc sử dụng margin?

Thuộc tính gap (trước đây là grid-gap) giúp định nghĩa khoảng cách giữa các hàng và cột trong lưới một cách đồng nhất và dễ quản lý hơn. Không giống như margin, gap chỉ tạo khoảng trống giữa các item, không thêm khoảng trống ở các cạnh ngoài của container, giúp tránh các vấn đề về spacing không mong muốn.

Khi thiết kế giao diện cho trình duyệt cũ không hỗ trợ CSS Grid, có giải pháp thay thế nào không?

Đối với các trình duyệt cũ không hỗ trợ CSS Grid, giải pháp thay thế là sử dụng các phương pháp layout truyền thống như Flexbox (nếu trình duyệt đó hỗ trợ), Float, hoặc Inline-Block. Thường sẽ cần sử dụng @supports trong CSS hoặc các thư viện polyfill để cung cấp layout dự phòng.

Thuộc tính grid-template-areas có ưu điểm gì khi làm việc với các bố cục phức tạp?

Thuộc tính grid-template-areas cho phép đặt tên cho các khu vực bố cục và sắp xếp chúng bằng cách vẽ trực quan trong CSS. Điều này giúp dễ dàng hiểu cấu trúc tổng thể của layout, đặc biệt cho các bố cục phức tạp và dễ dàng thay đổi cấu trúc responsive bằng cách định nghĩa lại các khu vực này trong media query.

CSS Grid Layout là một công cụ đột phá trong thiết kế web, cung cấp khả năng tạo bố cục hai chiều mạnh mẽ, linh hoạt và tối ưu cho responsive. Grid giúp nhà phát triển dễ dàng kiểm soát vị trí phần tử và xây dựng giao diện phức tạp một cách trực quan. Việc kết hợp CSS Grid với Flexbox và các kỹ thuật nâng cao khác sẽ mở ra vô số khả năng sáng tạo, mang lại trải nghiệm người dùng vượt trội trên mọi thiết bị và định hình tương lai của web design.

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

Hưng Nguyễn

Co-Founder
tại

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