Как изменить цвет текста слева направо вместе с фоном?

У меня есть элемент, который при наведении меняет цвет фона постепенно слева направо. Однако я хотел изменить не только цвет фона, но и цвет текста, точно в то же время / темп. Как мне этого добиться?

Это мой соответствующий CSS:

.left-to-right {
  color: white;
  background-size: 200% 100%;
  background-image: linear-gradient(to right, #011228 50%, #FF7800 50%);
  transition: background-position 1s;
}

.left-to-right:hover {
    background-position: -100% 0;
    color: #011228;
}

Вот скрипка

1 ответ

Решение

Одна возможность - использовать background-clip: text. Но, к сожалению, поддержка очень плохая.

.test {
  height: 66px;
  width: 200px;
  background-size: 200% 100%;
  background-image: linear-gradient(to right, lightblue 50%, blue 50%), linear-gradient(to right, green 50%, lightgreen 50%);
  transition: background-position 6s;
    text-indent: 28px;
    font-size: 60px;
    background-size: 200% 100%;
    background-repeat: no-repeat;
    background-position: 100% top, 100% top;
    -webkit-background-clip: text, border-box;
    background-clip: text, border-box;
    color: transparent;
}

.test:hover {
 background-position: 0% top, 0% top;
}
<div class="test">TEST</div>

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