@Dorothy

Как каскадировать с БЭМ?

Здравствуйте. Пытаюсь использовать БЭМ в верстке.
Иногда нужно реагировать на события родительских элементов и от этого менять свойства у дочерних элементов. В моих руках с БЭМ это выглядит немного уродливо. Приведу пример:

Есть элемент товара с картинкой и описанием. По умолчанию картинка товара полупрозрачная на 90%. При наведении курсора на карточку, картинка должна становиться непрозрачной.

Я использую LESS, код выглядит примерно так:
<div class="cart">
   <div class="cart__avatar"><img src="./pic.jpg" /></div>
   <div class="cart__body">
      Описание позиции
   </div>
</div>


.cart {
   &__avatar {
      img {
         opacity: .9;
      }
   }

   &__body {
      width: 50px;
   }

   &:hover {
      .cart__avatar img {
         opacity: 1;
      }
   }
}


Правильно ли я делаю с :hover селектором картинки при наведении?
Действительно ли он должен так плохо выглядеть?
  • Вопрос задан
  • 199 просмотров
Решения вопроса 1
Если вы придерживаетесь методологии БЭМ ваш код должен выглядеть так

<div class="cart">
   <div class="cart__avatar">
     <img class="cart__img" src="./pic.jpg" />
   </div>
   <div class="cart__body">
      Описание позиции
   </div>
</div>


.cart {
   &__img{
      opacity: .9;
    }

   &__body {
      width: 50px;
   }

   &:hover {
      .cart__img {
         opacity: 1;
      }
   }
}
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

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

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