Всем привет!
Долгое время используем БЭМ в качестве CSS методологии. Очень удобно. Возникло пару вопросов:
- Есть ситуация, когда нужно скрывать/показывать элементы блока или сам блок. Для этого пишется класс утилита, например d-none. Так же есть небольшое количество других утилит. Утилита как вы знаете представляет собой что-то вида:
.d-none {
display: none !important;
}
т.е. выполняют одну единственную функцию, но при этом используют некрасивый прием с !important. Отчасти, это похоже на использование глобальных переменных, которые затирают основное поведение блока. Хотелось бы узнать, что делать если есть много блоков, состояние которых нужно как-то одинаково менять (ну тот же display: none). Создавать для этого у каждого блока отдельный модификатор типа block_hidden? Какие правильные практики для этого использовать?
- Где-то читал, что в методологии БЭМ не очень приветствуется создание адаптивных блоков. Хотя не очень пойму почему. Ведь можно просто реализовывать адаптивную составляющую через media-queries. Что можно на этот счет почитать? И какие есть на этот счет рекомендации?
Заранее благодарю за ответы.
Достаточно сложно что-то рекомендовать без конкретных примеров. В целом есть два подхода: модификаторы и миксы, при чем без
!important
. Моя практика говорит, что конкретно для видимости чаще всего модификатор уместнее, но всегда бывают исключения.Возможно речь о рекомендации по проектированию универсальных библиотек компонент? Если так, то тут важно понимать, что задача разработки универсальной библиотеки очень отличается от задачи разработки проекта.
БЭМ методология не имеет ничего против адаптивной разработки на проекте.
Спасибо большое!