hartmannieru
@hartmannieru
Front-end Developer

Styled-components Как изменить background дочернего элемента по hover на родителе?

Есть карточки
62dcff6cc7bb2967142608.jpeg

Нужно при наведение на карточку, менять иконку, код вида
const MissionIcon = styled.div`
  width: ${rem(80)};
  height: ${rem(80)};
  margin-bottom: ${rem(24)};
  display: block;
  background: url(${(props) => `images/mission/${props.img}.svg`}) no-repeat center center;
  transition: background 100ms linear;
  ${MissionWrap}:hover & {
    background: url(${(props) => `images/mission/${props.imgHover}.svg`}) no-repeat center center;
    transition: background 100ms linear;
  }
`;


Отрабатывает не корректно и 6 раз навешивает background и для всех иконок при наведение отображается последняя картинка
62dd000c2f3c7107971921.jpeg

Если изменить код и сделать его вида
const MissionIcon = styled.div`
  width: ${rem(80)};
  height: ${rem(80)};
  margin-bottom: ${rem(24)};
  display: block;
  background: url(${(props) => `images/mission/${props.img}.svg`}) no-repeat center center;
  transition: background 100ms linear;
  &:hover {
    background: url(${(props) => `images/mission/${props.imgHover}.svg`}) no-repeat center center;
    transition: background 100ms linear;
  }
`;


Я получаю нужную иконку, но только при наведение на нее, а надо при наведение на весь блок
  • Вопрос задан
  • 516 просмотров
Решения вопроса 1
Alexandroppolus
@Alexandroppolus
кодир
${MissionWrap}:hover &


Попробуй так:
${MissionWrap}:hover &&
Ответ написан
Пригласить эксперта
Ответы на вопрос 1
hartmannieru
@hartmannieru Автор вопроса
Front-end Developer
Сделала, через добавление className, но может есть способ более изысканный, чтобы без классов
Раз
62dd034caf199205840643.jpeg

Два
62dd0375c0513864695762.jpeg
Ответ написан
Комментировать
Ваш ответ на вопрос

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

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