Этот пример анимации градиента в чисто CSS прекрасно работает , когда текст или объект не переносятся, как текст в конце строки .Но когда происходит обтекание, градиент нарушается и не анимируется.Вот немного измененный пример для демонстрации.Сожмите экран, чтобы вы могли видеть второй блок текста, обернутый вокруг края, наведите на него курсор и заметите, что он не анимируется.
.button {
background-size: 100%;
background-image: linear-gradient(#fff, #ccc);
border-radius: 0.45rem;
border: 1px solid #ddd;
cursor: pointer;
color: #333;
font-size: 1.25rem;
font-weight: 300;
position: relative;
}
.button:before {
border-radius: inherit;
background-image: linear-gradient(#ccc, #fff);
content: '';
display: block;
height: 100%;
position: absolute;
top: 0; left: 0;
opacity: 0;
width: 100%;
z-index: 100;
transition: opacity 0.45s;
}
.button:hover:before {
opacity: 1;
}
<span class='button'>hello</span> i am some text and then <span class='button'>i wrap around the edges</span> and go all the way around
Интересно, есть ли способ заставить это работать без использования JS.