Có một số phương pháp được công nhận để định dạng CSS của bạn. Cuối cùng tùy thuộc vào bạn những gì bạn cảm thấy thoải mái nhất khi viết nhưng những điều này sẽ giúp quản lý CSS của bạn cho các dự án lớn hơn phức tạp hơn. Điều đó không quan trọng, nhưng tôi có xu hướng sử dụng kết hợp BEM và SMACSS.
BEM là một quy ước đặt tên rất hữu ích, mạnh mẽ và đơn giản để làm cho mã giao diện người dùng của bạn dễ đọc và dễ hiểu, dễ làm việc hơn, dễ mở rộng quy mô, mạnh mẽ và rõ ràng và nghiêm ngặt hơn rất nhiều.
Khối
Thực thể độc lập tự nó có ý nghĩa như:
header, container, menu, checkbox, input
Thành phần
Các phần của một khối và không có ý nghĩa độc lập. Chúng được gắn về mặt ngữ nghĩa với khối của nó:
menu item, list item, checkbox caption, header title
bổ nghĩa
Cờ trên các khối hoặc phần tử. Sử dụng chúng để thay đổi ngoại hình hoặc hành vi:
disabled, highlighted, checked, fixed, size big, color yellow
Mục đích của OOCSS là khuyến khích sử dụng lại mã và cuối cùng là các bảng định kiểu nhanh hơn và hiệu quả hơn, dễ dàng thêm vào và duy trì.
OOCSS dựa trên hai nguyên tắc chính:
- Tách cấu trúc khỏi da
Điều này có nghĩa là xác định các tính năng hình ảnh lặp lại (như kiểu nền và đường viền) như những “giao diện” riêng biệt mà bạn có thể trộn và kết hợp với các đối tượng khác nhau của mình để đạt được lượng lớn hình ảnh đa dạng mà không cần nhiều mã. Xem đối tượng mô-đun và các giao diện của nó.
- Tách vùng chứa và nội dung
Về cơ bản, điều này có nghĩa là “hiếm khi sử dụng các kiểu phụ thuộc vào vị trí”. Một đối tượng phải trông giống nhau cho dù bạn đặt nó ở đâu. Vì vậy, thay vì tạo kiểu cụ thể với .myObject h2 {...}, hãy tạo và áp dụng một lớp mô tả câu hỏi được đề cập, chẳng hạn như. Điều này cung cấp cho bạn sự đảm bảo rằng: (1) tất cả các s chưa được phân loại sẽ trông giống nhau; (2) tất cả các phần tử có lớp danh mục (được gọi là mixin) sẽ trông giống nhau; và 3) bạn sẽ không cần tạo kiểu ghi đè cho trường hợp khi bạn thực sự muốn .myObject h2 trông giống như bình thường.
SMACSS là một cách để kiểm tra quy trình thiết kế của bạn và là một cách để điều chỉnh các khuôn khổ cứng nhắc đó thành một quy trình suy nghĩ linh hoạt. Đây là một nỗ lực để ghi lại một cách tiếp cận nhất quán để phát triển trang web khi sử dụng CSS.
Cốt lõi của SMACSS là phân loại. Bằng cách phân loại các quy tắc CSS, chúng ta bắt đầu thấy các mẫu và có thể xác định các phương pháp thực hành tốt hơn xung quanh mỗi mẫu này.
Có năm loại danh mục:
Cơ sở
Chứa các kiểu phần tử đặt lại và mặc định. Nó cũng có thể có các kiểu cơ sở cho các điều khiển như nút, lưới, v.v. có thể được ghi đè sau này trong tài liệu trong các trường hợp cụ thể.
Bố cục
Sẽ chứa tất cả điều hướng, đường dẫn, sơ đồ trang web, v.v.
Mô-đun
Chứa các kiểu khu vực cụ thể như kiểu biểu mẫu liên hệ, ô trang chủ, danh sách sản phẩm, v.v. v.v.
State
Chứa các lớp trạng thái như isSelected, isActive, hasError, wasSuccessful, v.v.
Chủ đề
Chứa bất kỳ kiểu nào có liên quan đến chủ đề.
Có quá nhiều thứ để chi tiết ở đây nhưng hãy xem những cái khác: