@sysaknikolay

Не перегружает ли style.css пространство имён классов по принципам БЭМ?

Когда контекст не используется ввиду прямого обращения к нужному блоку или элементу.

например
<ul class="nav-menu nav-theme__name">
    <li class="nav-menu__item"><a class="nav-menu__link" href="#">item</a></li>
    <li class="nav-menu__item"><a class="nav-menu__link" href="#">item</a></li>
</ul>


Я считаю, что БЭМ весьма удобен. Но стоит ли его использовать вплоть до прямого указания стилевых правил для элементов независимого блока? и примешивать контекст в БЭМ не стоит (ведь выходит и БЭМ уже нет)?
  • Вопрос задан
  • 464 просмотра
Решения вопроса 1
@ilyarsoftware
БЭМ не догма и только про css, как любой другой паттерн проектирования он помогает управлять сложностью, ограничение которые можно увидеть это субъективное восприятие наблюдателя.

Если я правильно понял вопрос, ничто не мешает использовать глобальную нормализацию (именно нормализацию, а не сброс) для элементов и это слетает конечные блоки более независимыми от их окружения. Когда использование стилевых правил для элементов делает блок зависимым от элемента или контекста это нарушает только один из принципов методологии по аспекту реализации блока и соответственно наоборот. И только самостоятельно возможно принять решения стоит ли это делать и как это может повлиять на общий процесс.

Дополнение по примеру, если nav-theme__name это модификатор со значением name, то следуя классическому наименованию правильно будет nav-menu_theme_name (block_mod_value).

Соглашение об наименовании является конкретикой и в этом аспекте важно не отходить от договоренностей.

Дополнительно рекомендую посмотреть https://ru.bem.info/forum/?labels=css

И все таки использовать глобальные стили (normalize/reset) противоречит прицепу: "Блок — независимый компонент", подробнее: опыт и рекомендация.
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 1
@vafarulez
Верстаю сайты
Если вы будете использовать bem tools то у вас появится возможность для каждой страницы собирать свой css. С бэм вы редактируете блоки на странице а не страницу.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы