Tôi đang tìm kiếm các chiến lược của mọi người để đối phó với nhu cầu không thể tránh khỏi để thay đổi hoặc điều chỉnh lớp CSS để thích ứng với các phần tử HTML mới. Tôi thấy mình trong tình huống này khá thường xuyên vì vậy tôi hy vọng những người khác chia sẻ nỗi đau của tôi và có thể tư vấn ở đây.Làm thế nào để đối phó với sự cần thiết phải thay đổi tên lớp CSS
Hãy tưởng tượng bạn có một bảng các sản phẩm có tên lớp ngữ nghĩa đẹp products
. Điều này được tạo kiểu một cách thích hợp trong biểu định kiểu của bạn. Một vài tháng xuống dòng, sếp của bạn yêu cầu bạn tạo danh sách nhân viên trên trang web, "được tạo kiểu chính xác giống như danh sách sản phẩm".
Điều này ngay lập tức đặt ra một câu hỏi quan trọng: những gì cần gọi cho bảng nhân viên mới. Các tùy chọn duy nhất tôi có thể nghĩ đến là:
- Đặt tên lớp là
products
. Đây là giải pháp nhanh nhất nhưng phá hủy ngữ nghĩa. Việc đặt tên có ý nghĩa rất ít đặc biệt đối với các nhà phát triển trong tương lai. - Thay đổi tên lớp thành tên có thể bao gồm cả danh sách sản phẩm và danh sách nhân viên. Điều này sẽ phủ nhận tiện ích tách biệt đánh dấu khỏi kiểu như HTML sẽ cần thay đổi. Ngoài ra, tôi không thể nghĩ ra một tên lớp không mang tính hiện tại có thể áp dụng cho các sản phẩm và một danh sách nhân viên.
- Giới thiệu tên lớp mới và chỉnh sửa tệp CSS sao cho
.products { ... }
trở thành.products, .staff { ... }
và.products thead th.number { font-weight: bold }
trở thành.products thead th.number, .staff thead th.number { font-weight: bold }
, v.v. Một giải pháp xấu xí khác sẽ chỉ phức tạp hơn theo thời gian.
Hành động tốt nhất để thực hiện ở đây là gì?
N.B. Tôi chắc chắn rằng vấn đề này dễ dàng được giải quyết bằng cách sử dụng các khung như LESS (tôi đã không sử dụng nó một cách cá nhân) nhưng giải pháp này tấn công tôi nhiều hơn như một “sự che đậy” hơn là một biện pháp khắc phục thực tế.
Ah, đó là tùy chọn thứ tư mà tôi không thể nhớ lại! Nó không phải là một giải pháp mà tôi đặc biệt thích. Nó phá vỡ nguyên tắc DRY và, một lần nữa, phủ nhận lợi ích được thực hiện bằng cách tách nội dung và kiểu dáng. Và ngay bây giờ nó là giải pháp hấp dẫn nhất ... –
Đó là một chút tương lai-bằng chứng là tốt. –