При верстке на придумывание осмысленных названий классов уходит много времени. Читал всякие списки популярных названий, имеется личный список. Но этого недостаточно, чтобы быстро дать имя блоку (который не menu и не header) без block1, block2. Какими методиками пользуетесь? Что посоветуете?(знаю, что блоки должны называться абстрактно, согласно своему содержимому)
Каждый день сталкиваюсь с этой проблемой, когда делаю стили для блоков, где нет обфускации, styled components и т. п.
Методов именно придумывания названий нет ни одного нормального, только опыт, ваш личный словарный запас и умение им воспользоваться. Можно идеально понимать и применять тот же BEM, но при этом называть ваши компоненты упорото.
Например, мой коллега идеально использует BEM, но даёт компонентам такие названия — просто беда.
Roweb, когда карточку в слайдере «наш блог» или же сетки для вывода таких карточек называют не, например, .blog-article-card или .blog-article-preview-card, а как-нибудь типа .blog-el.
Вроде бы и нормальный второй вариант, но сразу не поймёшь, что это именно карточка для сетки, слайдера, а не для не просто элемент блога. Т. е. когда название ни туда, ни сюда.
Более того, из-за этого теряется специфичность, которая важна, ибо в CSS нет зоны видимости стилей, что может привести к «конфликту» стилей из-за одинаковых селекторов. Такие проблемы частично решаются styled components, CSS-in-JS, обфускацией, но они не всегда доступы.
У меня кстати тоже появился вопрос. Насколько хорош\плохо вообще не давать класс\айди ,то есть есть блок ,как на скриншоте выше ,внутри него 3 тега p ,а обращение к ним будет как div p:nth-child(n). Это хорошо\плохо?
VegasChickiChicki, не самый хороший метод, но если вы знаете, что структура DOM меняться не будет, она очевидна и изолирована — почему бы и не использовать. Главное, не использовать везде это.
Рустам Байназаров, Да нет ,я это стараюсь использовать там ,где DOM структура замыкается ,в конечном или пред последнем вложенном блоке ,довольно удобно ,но не знаю на сколько правильно.
VegasChickiChicki, любая привязка к структуре DOM — это не очень хорошо, потому что это может сломаться при малейшем перемещении блоков. Но что поделать, этот функционал используется и будет использоваться. Просто использовать его желательно реже.
Меньше думаешь над благозвучностью.
Даешь по смыслу, первое, что в голову пришло.
Будешь думать долго - будешь заниматься не продуктивными вещами. Времени на это - жаль.