Изменение цвета полигона SVG и текста при наведении на родительский элемент

У меня есть небольшая загадка, которую я изо всех сил пытаюсь решить... пытаясь заставить и цвет заливки многоугольника, и цвет текста измениться, когда вы наводите курсор на родительский div. Это возможно с помощью CSS? Хотелось бы избежать JavaScript и поддерживать его совместимость с разными браузерами.

Пример Codepen здесь:

http://codepen.io/okass/pen/OXAXkY

<svg viewBox="-1 -1 255 53"><a href="#">
<g id="cta-button">
  <polygon class="polygon-cta" points="252.72209 0 197.614579 51 0 51 0 0"></polygon>
  <text class="text-cta">
      <tspan x="22" y="34">Learn more</tspan>
  </text>
</g>
</a>

Я не могу понять, как изменить текстовую заливку на белый, когда вы наводите курсор мыши на кнопку #cta... она работает, как и ожидалось, когда вы наводите курсор на текст, но текст скрывается при наведении курсора на многоугольник.

1 ответ

Решение

Переместите изменение цвета текста, чтобы вызвать состояние наведения родительской группы.

svg #cta-button:hover text{
  fill: #fff;
}

#cta-button {
  fill: transparent;
  stroke: #e9004b;
}
svg text {
  font-weight: bold;
  font-size: 26px;
  font-family: lato;
  fill: #E9004B;
  stroke: none;
}
#cta-button:hover {
  fill: #e9004b;
}
svg #cta-button:hover text {
  fill: #fff;
}
<svg viewBox="-1 -1 255 53">
  <a href="#">
    <g id="cta-button">
      <polygon class="polygon-cta" points="252.72209 0 197.614579 51 0 51 0 0"></polygon>
      <text class="text-cta">
        <tspan x="22" y="34">Learn more</tspan>
      </text>
    </g>
  </a>
</svg>

Другие вопросы по тегам