Trong chapter 3, chúng ta đã thực hiện thêm Bootstrap 5 vào dự án Google Apps Script. Bài viết hôm nay tiếp tục sử dụng bootstrap để layout cho dự án.
Trong bài trước mình có đề cập về cây DOM với thành phần cấu tạo từ những element (node). Thì lên layout là việc sắp xếp những node này một cách hợp lý, phù hợp với nhu cầu thể hiện nội dung ra web-app. Trong css có nhiều thuộc tính phục vụ nhu cầu này, cơ mà bootstrap 5 có tổng hợp lại rồi, nên trong khuôn khổ series này chỉ dừng lại ở việc tìm hiểu cơ bản cách dùng bootstrap thôi nha.
Trước tiên, chúng ta lưu ý qua 3 loại class chính để layout trong bootstrap:
Ví dụ như hình dưới đây (detail ở Grid system - Bootstrap 5):
Giải thích:
Spacing trong css nói chung và trong bootstrap nói riêng, là một thuộc tính quan trọng để tinh chỉnh styling cho từng node, giúp giãn cách hợp lý hơn. Spacing bao gồm 2 phần chính:
All great and precious things are lonely. - John Steinbeck, East of Eden
{property}{sides}-{breakpoint}-{size}
Trong đó:
Ví dụ:
Tìm hiểu thêm ở trang document về Spacing của Bootstrap
Quay lại dự án nhỏ của chúng ta ở https://script.google.com/home/
Quay lại với đề bài
Team HR cần 1 trang web hiển thị thông tin của từng staff trong cty, có ảnh, staff-id, tên, chức vụ.
Với đề tài tương ứng trên, ta có thể tưởng tượng layout bao gồm:
Tương ứng ta hình thành nên code như sau:
<!-- một container chứa 2 dòng --> <div class="container"> <div class="row"> </div> <div class="row"> </div> </div>
Tiếp
<!-- một container chứa 2 dòng, mỗi dòng 2 cột --> <div class="container"> <div class="row"> <div class="col-2"> <!-- cột hình ảnh --> </div> <div class="col-8"> <!-- cột thông tin --> </div> </div> <div class="row"> ... tương tự... </div> </div>
Ở phần hình ảnh, chúng ta tạm thời dùng hình random trên mạng, với chiều rộng x cao là 150 x150.
<img src="https://picsum.photos/seed/1/300/300" height="150" width="150"> <img src="https://picsum.photos/seed/2/300/300" height="150" width="150">
Khoan hẵng đọc tiếp và bắt tay vào thử tạo cho mình layout nhé. Áp dụng cả những kiến thức spacing đã trình bày ở trên.
Mình demo trước kết quả ở thời điểm hiện tại. Code sẽ được đính kèm ở chaper kế tiếp.
Bằng việc thêm layout và spacing, chúng ta đã có thể styling để ra output theo yêu cầu của đề. Trong chapter tiếp theo (cũng là chương cuối), chúng ta sẽ tiếp tục với việc kết hợp lấy dữ liệu từ Google sheet thông qua GAS với vai trò back-end.
Cám ơn các bạn đã đọc bài.