Là một phần tử trong grid (grid-item cũng có thể là 1 grid-cell hoặc 1 grid-area tuỳ định nghĩa)
Row và column
Chính là các phần tử (grid cell) được sắp xếp theo chiều ngang hoặc theo chiều dọc.
Track
Là các rãnh lưới (khoảng không gian giữa các đường lưới)
Grid line
Là một đường lưới
Grid cell
Là đơn vị nhỏ nhất trong grid
Grid area
Là một vùng chứa trong grid bao gồm các grid-cell gần nhau.
Grid area phải là một hình chữ nhật
Grid container
Display: grid
Column-gap, row-gap, gap
là cách thiết lập các khoảng cách giữa các hàng, cột
Bao gồm 3 tư duy phân bổ chính
Phân bổ theo các hàng và cột
Phân bổ theo line
Phân bổ theo vùng (area)
Cách 1: Phân bổ theo rows và columns
Grid-template-columns/Grid-template-rows: Chỉ định cụ thể số lượng và kích thước của hàng, cột.
VD: grid-template-columns: 200px 100px 300px.
Grid-auto-rows/Grid-auto-columns: Khi không chỉ định cụ thể chiều cao hoặc chiều rộng cho từng hàng cột, ta sử dụng giá trị "auto" để thiết lập kích thước tự động theo nội dung.
Hàm và đơn vị sử dụng và giá trị đặc biệt
fr = fraction -> đơn vị tương đối sử dụng trong grid với ý nghĩa là 1 phần. (khá giống với flex-grow, flex-shrink)
repeat(3, 1fr) -> cú pháp giúp giảm viết code lặp lại cho các phân đoạn bằng nhau.
VD: repeat(3 1fr, 2fr)
minmax(min-value, max-value) -> hàm chỉ định giá trị min và giá trị max. VD: grid-auto-rows: minmax(60px, auto)
Auto-fill
Tự động tạo thêm tối đa các cột trên cùng một hàng để lấp đầy hàng.
Ngược với auto-fill, auto-fit sẽ cố gắng co giãn để lấp đầy không gian trống với phần content có sẵn.
min-content, max-content
Xác định kích thước phần từ phụ thuộc vào việc tối đa nội dung hoặc tối thiểu không gian khả dụng của nội dung
Phân bổ theo Grid-line (Viết trong grid-item)
Giải pháp phân bổ theo grid-line sẽ giới hạn chặn đầu và chặn cuối các area bởi các line.
Grid-column-start: 2
Grid-column-end: 4
Grid-row-start: 2
Grid-row-end: 4
Short-hand: Grid-column: 2 / 4, hoặc grid-row: 2 / 4.
Đôi khi sử dụng span để khai báo phần mở rộng của một hàng hoặc cột.
VD 1: grid-column: 2 / span 4. /*có nghĩa là bắt đầu từ cột 2 và kéo dài 4 cột */
VD 2: grid-column: span 2; /* Chiếm 2 cột */
Khi truyền chỉ số âm, Grid sẽ được đánh index ngược từ cuối lên (Giá trị -1 là grid-line cuối cùng)
Phân bổ theo grid-area (kết hợp trong grid-container và grid-item)
Định nghĩa tên area trong grid-container
Grid-template-area:
"aa aa"
"bb bb"
Sử dụng trong grid-item
Grid-area: aa
Không nhất thiết sử dụng "" khi dùng grid-item.
Sử dụng cách đặt tên biến theo kebab case
Short-hand: Grid-template
là cú pháp rút gọn kết hợp cả 3 thuộc tính grid-template-columns, grid-template-rows, grid-area
Grid CSS là chiến lược xây dựng layout hiện đại và rất mạnh mẽ, tuy nhiên tránh lạm dụng và sử dụng một cách phức tạp dẫn đến việc code khó hiểu, khó bảo trì và dài dòng không cần thiết.
Nên sử dụng kết hợp Grid CSS và Flexbox để đạt được hiệu quả cao nhất.