@MRcracker

Как избавиться от вложенности в соответствии с БЭМ?

Есть небольшой код на js и css
(function($){
  $(function() {
    $('.menu__icon').on('click', function() {
      $(this).closest('.menu').toggleClass('menu_state_open');
    });
  });
})(jQuery);


.menu.menu_state_open .menu__icon span:nth-child(1) {
    top: 18px;
    width: 0%;
    left: 50%;
}

.menu.menu_state_open .menu__icon span:nth-child(2) {
    transform: rotate(45deg);
}

.menu.menu_state_open .menu__icon span:nth-child(3) {
    transform: rotate(-45deg);
}

.menu.menu_state_open .menu__icon span:nth-child(4) {
    top: 18px;
    width: 0%;
    left: 50%;
}

.menu.menu_state_open .menu__links {
    opacity: 1;  
}


Если следовать модели БЭМ, то не должно быть вложенности, но тогда js не работает. Скажите, как исправить в соответствии с БЭМ,
  • Вопрос задан
  • 356 просмотров
Решения вопроса 1
Machinez
@Machinez
При модификации блока вполне можно воспользоваться каскадом. БЭМ не запрещает каскад, но рекомендует его избегать, и использовать там где ты уверен что это не выльется в проблему. В твоем случае это валидный бэм.
Из кода яндекса
cuzVGCx.jpg
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 1
@LiguidCool
По моему тут просто препроцессор CSS напрашивается типа SASS. Будет идеально соответствовать
ПИШИ МЕНЬШЕ, ПОЛУЧАЙ БОЛЬШЕ
Ответ написан
Ваш ответ на вопрос

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

Войти через центр авторизации
Похожие вопросы