BEM và cách đặt tên Class cho element

Lập trình CSS và SASS nâng cao với dự án website Landing Page

5.0 (3 đánh giá)
Tạo bởi Nguyễn Minh Chí Cập nhật lần cuối 5 năm trước 10.539 lượt xem 0 bình luận
Tác giả/Dịch giả: Nguyễn Minh Chí
Học nhanh

Danh sách bài học

01. Code header của project Landingpage 2019 02. Tạo hình cho background image với CSS Clip-path 03. Tạo Button và hiệu ứng của nó cho Website Landing Page 2019 04. Tạo hiệu ứng zoom in, zoom out cho button khi hover 05. Hiệu ứng Animation cho Header website Landing Page 2019 06. Tổng quan cách hoạt động của CSS 07. Xử lý trùng lặp khi khai báo các Features hay Properties của CSS 08. Tìm hiểu quá trình xử lý cuối cùng của CSS 09. Chuyển px sang rem trong CSS 10. BEM và cách đặt tên Class cho element 11. Thực hành BEM vào project website Landing Page 12. Giới thiệu SASS 13. Tìm hiểu về Variables và Nesting trong SASS 14. Tìm hiểu về Mixins, functions, extends trong SASS 15. Set up môi trường để Compile SASS sang CSS 16. Áp dụng SASS vào project website landing page 17. Convert CSS code sang SASS và chia code thành các components 18. Code grid system trong dự án web landing page 19. Tạo text gradient và hiệu ứng hover cho text cho About Section trong web landing page 20. Hoàn thiện composition component và button-text cho About Section 21. Code Skills section cho website Landing Page 22. Tạo hiệu ứng Rotate cho Card Component trong Courses Section 23. Hoàn thiện các thuộc tính CSS Card Component trong Courses Section 24. Kết thúc quá trình code phần courses section 25. Bắt đầu code Testimonials Section trong dự án web landing page 26. Tạo hiệu ứng hover image và set video background cho testimonials section 27. Code HTML và CSS cho Enroll Section 28. Hoàn thiện CSS cho form Component 29. Code Footer Section 30. Giao diện popup component 31. Code hoàn thiện hiệu ứng cho pop up component 32. Code giao diện Navigation 33. Code hoàn thiện navigation _icon 34. Sử dụng Mixin tạo Media Query 35. Code responsive cho các Section 36. Code responsive image

BEM và cách đặt tên Class cho element

Dẫn nhập

Ở bài học trước chúng ta đã cùng nhau CONVERT PX SANG REM , từ đó dễ dàng khi tạo responsive webpage hơn nhiều so với việc sử dụng px.

Trong bài này chúng ta sẽ tìm hiểu về BEM và cách đặt tên class cho element.


Nội dung

Để nắm vững bài này các bạn cần:

Trong bài này chúng ta sẽ cùng nhau tìm hiểu

  • Think – Build – Architect Mindset
  • Think (nghĩ về layout trước)
  • Build (Đặt tên classes)
  • Architect ( Tổ chức folder, sử dụng Sass)

Think – Build – Architect Mindset

Như chúng ta đã nói ở bài TỔNG QUAN CÁCH HOẠT ĐỘNG CỦA CSS VÀ 3 THỨ ĐỂ TẠO 1 WEBSITE TỐT., việc code CSS nên được làm thỏa mãn các tiêu chí: Rõ ràng (Clean), Chia nhỏ thành các phần (Modular), dễ tái sử dụng  (Reusable), dễ mở rộng (Ready for growth).

Để làm được điều đó ta cần 3 bước:

  • Bước 1: THINK suy nghĩ về cách tổ chức code, các layout hiển thị lên webpage và thường sẽ sử dụng wireframe.
  • Bước 2: BUILD: Xây dựng code HTML dựa trên wireframe và đặt tên class 1 cách có cấu trúc.
  • Bước 3: ARCHITECT: Chia nhỏ các phần CSS thành các file và folder 1 các logic

Think about the layout

  • Website sẽ xây dựng dựa trên các component nhỏ (Component - Driven design).
  • Những component gắn kết với nhau dựa vào layout của webpage.
  • Các component này được xây dựng độc lập và có thể tái sử dụng ở các page khác nhau trong cùng 1 project hoặc các project khác nhau.

Build( Đặt tên class)

Ở đây chúng ta làm quen với BEM (Block Element Modifier)

  • Block: tên của component, có nghĩa mô tả tổng thể của component đó
  • Element: nó dùng để đặt tên các phần từ bổ trợ cho component (Block)
  • Modifier: Các dạng khác biến thể của 1 block hoặc element

Chúng ta sẽ hiểu rõ hơn qua ví dụ sau:  

Trong đó, chúng ta thấy:

  • Block (card) là mô tả toàn bộ component.
  • Element (heading, content) chỉ các bộ phận của component này.
  • Modifier (sub, main) chỉ ra có 2 loại element (heading) gồm heading chính và heading phụ

Trong Sass sẽ hỗ trợ chúng ta rất nhiều trong việc sử dụng BEM ( chúng ta sẽ tìm hiểu ở những bài học sau)

Vậy qua các phần trên, chúng ta đã thấy được lợi ích của việc sử dụng BEM là giúp tổ chức tốt code CSS, dễ bảo trì, tái sử dụng, tránh tình trạng code chồng chéo lên nhau. Ví dụ như cùng là heading nhưng card heading và header heading khác nhau, …


Architect (Tổ chức folders, Sass)

Sass sẽ hỗ trợ chúng ta trong việc chia code CSS thành các folder và các file chứa các component nhỏ.

Nôm na của mô hình tổ chức chúng ta sẽ chia làm 7 folders và 1 file main.sass chính import tất cả các files trong các folder để compile thành CSS

7 folder ở đây chia thành từng mảng:

  1. Base/ (chứa các setting ban đầu)
  2. Components/ ( chứa các bộ phận nhỏ dễ tái sử dụng như button, card, …)
  3. Layout/ ( chứa footer, navbar,…)
  4. Pages/ (chứa tên các page nếu project web của bạn có nhiều page khác nhau vd: home, login, …)
  5. Abstracts/ (chứa animation, các function, mixin khi sử dụng sass sẽ được đề cập kĩ hơn khi chúng ta làm quen với sass)
  6. Themes/ (các mẫu có sẵn)
  7. Vendors/ (code CSS bên ngoài như bootstrap, …)

Lưu ý: Không phải lúc nào chúng ta cũng sử dụng hết 7 folders này ( ví dụ themes/ sẽ không được sử dụng trong khóa học của chúng ta) nhưng chúng sẽ đều sẽ được chia thành các phần nhỏ vào 1 trong 7 folders này.


Kết luận

Ở bài học này chúng ta đã cùng nhau tìm hiểu về BEM và cách cấu trúc code CSS.

Ở bài học sau, để hiểu rõ hơn cách sử dụng BEM, chúng ta sẽ ỨNG DỤNG NÓ VÀO PROJECT CỦA CHÚNG TA.

Cảm ơn các bạn đã theo dõi bài viết. Hãy để lại bình luận và góp ý của mình để giúp phát triển bài viết tốt hơn. Đừng quên: "Luyện tập – Thử thách – Không ngại khó".


Tải xuống

Tài liệu

Nhằm phục vụ mục đích học tập Offline của cộng đồng, Kteam hỗ trợ tính năng lưu trữ nội dung bài học BEM và cách đặt tên Class cho element dưới dạng file PDF trong link bên dưới.

Ngoài ra, bạn cũng có thể tìm thấy các tài liệu được đóng góp từ cộng đồng ở mục TÀI LIỆU trên thư viện Howkteam.com

Đừng quên likeshare để ủng hộ Kteam và tác giả nhé!


Thảo luận

Nếu bạn có bất kỳ khó khăn hay thắc mắc gì về khóa học, đừng ngần ngại đặt câu hỏi trong phần bên dưới hoặc trong mục HỎI & ĐÁP trên thư viện Howkteam.com để nhận được sự hỗ trợ từ cộng đồng.

Tác giả/Dịch giả

Khóa học

Lập trình CSS và SASS nâng cao với dự án website Landing Page

Qua khóa FRONT END CƠ BẢN , Kteam đã hướng dẫn các bạn đã có được những kiến thức cơ bản về  HTML và CSS.

Trong combo Front End 2019, chúng ta sẽ cùng nhau tìm hiểu và áp dụng những kiến thức chuyên sâu về CSS. Do kiến thức về CSS trong khóa học khá lớn và chi tiết nên Kteam đã chia làm 2 phần.

  • Phần 1: CSS và SASS Nâng Cao
  • Phần 2: Flexbox và CSS grid layouts

Ở khóa học này chúng ta sẽ cũng nhau tìm hiểu tổng quát về phần 1: CSS và SASS Nâng Cao với dự án Website Landing Page.

Bạn cũng có thể truy cập vào đường link bên dưới để xem bản PRIEVIEW của website landing page Selftaught 2019 mà chúng ta sẽ cùng thực hiện nhé! 

LANDING PAGE WEBSITE SELFTAUGHT 2019

Đánh giá

5.0
3 đánh giá
Đánh giá
5
3
4
3
2
1
kteamidol đã đánh giá 3 năm trước

nguyen diep thanh thao đã đánh giá 5 năm trước

loveyuki147 đã đánh giá 6 năm trước

Bình luận

Để bình luận, bạn cần đăng nhập bằng tài khoản Howkteam.

Đăng nhập
Không có video.