Я ищу стратегии людей для решения неизбежной необходимости изменить или иным образом адаптировать класс CSS для размещения новых элементов HTML. Я часто встречаюсь в этой ситуации, поэтому я надеюсь, что другие люди разделят мою боль и могут посоветовать здесь.Как бороться с необходимостью менять имена классов CSS
Представьте, что у вас есть таблица продуктов с хорошим семантическим именем класса products
. Это правильно оформлено в вашей таблице стилей. Через несколько месяцев ваш босс попросит вас создать список сотрудников на сайте, «в точности такой же, как и список продуктов».
Это немедленно поднимает важный вопрос: что назвать новым штатным расписанием. Единственными вариантами, которые я могу придумать, являются:
- Дайте ему название класса
products
. Это самое быстрое решение, но разрушает семантику. Именование не имеет особого значения, особенно для будущих разработчиков. - Измените имя класса на то, что может охватывать как продукты, так и списки персонала. Это будет отрицать полезность разделения разметки из стиля, поскольку HTML будет нуждаться в изменении. Кроме того, я не могу придумать ни одного не-презентационного класса, которое могло бы быть применимо к продуктам и список сотрудников.
- Введите новое имя класса и отредактируйте файл CSS таким образом, чтобы
.products { ... }
стал.products, .staff { ... }
, а.products thead th.number { font-weight: bold }
стал.products thead th.number, .staff thead th.number { font-weight: bold }
и т. Д. Еще одно уродливое решение, которое со временем будет усложняться.
Каков наилучший способ действий здесь?
N.B. Я уверен, что эту проблему легко решить с помощью таких фреймворков, как LESS (я не использовал ее лично), но это решение меня больше привлекает как «прикрытие», чем реальное средство.
А, это был четвертый вариант, который я не мог вспомнить! Это не решение, которое мне особенно нравится. Он нарушает СУХИЕ принципы и, опять же, отрицает преимущества, связанные с разделением контента и стилей. И все же прямо сейчас это самое привлекательное решение ... –
Это еще немного будущего. –