×

Cách sử dụng grid-template-areas - Thiết lập khu vực trong lưới CSS

CSS Grid Layout là một công cụ mạnh mẽ trong CSS giúp bạn tạo ra các bố cục phức tạp một cách dễ dàng và nhanh chóng. Một trong những tính năng đặc biệt của CSS Grid là grid-template-areas, cho phép bạn định nghĩa rõ ràng các khu vực trong lưới. Với grid-template-areas, bạn có thể đặt tên và xác định vị trí cho các phần tử khác nhau trong lưới một cách trực quan.

Tổng quan về Grid Layout

Trước khi đi sâu vào chi tiết về grid-template-areas, cần hiểu rõ khái niệm cơ bản về Grid Layout. Để sử dụng Grid Layout, bạn cần thiết lập một container là lưới bằng thuộc tính display: grid hoặc display: inline-grid.

.container {
  display: grid;
}

Thiết lập Grid với grid-template-areas

Khi đã tạo ra một container lưới, bạn có thể sử dụng grid-template-areas để định nghĩa các khu vực trong lưới. Hãy bắt đầu với một ví dụ đơn giản:

.container {
  display: grid;
  grid-template-columns: 1fr 1fr 1fr;
  grid-template-rows: auto;
  grid-template-areas: 
    "header header header"
    "sidebar content content"
    "footer footer footer";
}

Ở ví dụ trên, chúng ta đã tạo ra một lưới với ba cột và ba hàng. Các khu vực trong lưới được đặt tên là header, sidebar, contentfooter. Cụ thể:

  • Hàng đầu tiên: ba cột đều được gán cho header
  • Hàng thứ hai: cột đầu tiên là sidebar, hai cột còn lại là content
  • Hàng thứ ba: ba cột đều được gán cho footer

Sử dụng các khu vực đã định nghĩa

Bây giờ sau khi đã định nghĩa các khu vực trong lưới, bạn có thể gán các phần tử trong HTML vào các khu vực tương ứng bằng cách sử dụng thuộc tính grid-area.

<div class="container">
  <div class="header">Header</div>
  <div class="sidebar">Sidebar</div>
  <div class="content">Content</div>
  <div class="footer">Footer</div>
</div>
.header {
  grid-area: header;
}

.sidebar {
  grid-area: sidebar;
}

.content {
  grid-area: content;
}

.footer {
  grid-area: footer;
}

Linh hoạt trong thiết lập khu vực

Một trong những lợi ích chính của việc sử dụng grid-template-areas là tính linh hoạt. Bạn có thể dễ dàng thay đổi bố cục bằng cách chỉnh sửa giá trị của grid-template-areas. Ví dụ, nếu bạn muốn đặt sidebar ở phía dưới content, bạn chỉ cần thay đổi như sau:

.container {
  display: grid;
  grid-template-columns: 1fr 1fr 1fr;
  grid-template-rows: auto auto auto;
  grid-template-areas: 
    "header header header"
    "content content content"
    "sidebar sidebar sidebar"
    "footer footer footer";
}

Trong trường hợp này, sidebar sẽ nằm ở hàng thứ ba.

Những lưu ý khi sử dụng grid-template-areas

  • Tên khu vực: Tên khu vực phải là một từ duy nhất, không chứa ký tự đặc biệt và không bắt đầu bằng số.
  • Ký tự dấu chấm: Dùng dấu chấm (.) để chỉ ra ô trống trong lưới.
  • Độ phức tạp của lưới: Sử dụng grid-template-areas cho các bố cục đơn giản đến trung bình. Đối với các bố cục phức tạp hơn, bạn có thể cần kết hợp thêm các thuộc tính khác của Grid Layout hoặc sử dụng Flexbox.

Kết luận

Sử dụng grid-template-areas là một phương thức mạnh mẽ và trực quan để thiết lập và điều chỉnh bố cục trong CSS Grid Layout. Bằng cách đặt tên và xác định vị trí cho các khu vực trong lưới, bạn có thể tạo ra các bố cục phức tạp một cách dễ dàng và hiệu quả. Hãy tận dụng sức mạnh của CSS Grid và grid-template-areas để nâng cao thiết kế của bạn!

Comments