使用background-clip: text结合@keyframes动画,通过设置渐变背景、透明文字颜色和循环移动背景位置,可实现流水般渐变的文字效果,再配合opacity变化增强动态视觉表现。
想让文字颜色像流水一样渐变?用CSS的 @keyframes 搭配 background-clip: text 和 opacity 控制,能做出非常流畅的视觉效果。关键在于把渐变背景“剪”成文字形状,并通过动画让它动起来。
纯文本本身不能直接设置多个颜色,但我们可以借助背景图和裁剪技巧:
background-image: linear-gradient(...))background-clip: text 把背景“限制”在文字轮廓内color: transparent),让背景透出来.gradient-text {
background-image: linear-gradient(90deg, #ff7e5f, #feb47b);
background-clip: text;
-webkit-background-clip: text;
color: transparent;
font-size: 2.5rem;
font-weight: bold;
}为了让渐变“流动”,需要让背景位置不断变化。通过 @keyframes 改变 background-position:
@keyframes gradientShift {
0% {
background-position: 0% 50%;
}
50% {
background-position: 100% 50%;
}
100% {
background-position: 0% 50%;
}
}
.gradient-text {
animation: gradientShift 3s ease infinite;
background-size: 20
0% 100%; / 背景更大,滑动更平滑 /
}
这里 background-size: 200% 100% 让渐变拉宽一倍,配合位置变化产生循环滑动效果。
如果希望文字有明暗呼吸感,可以在动画中加入 opacity 变化:
@keyframes pulseGradient {
0%, 100% {
opacity: 0.8;
background-position: 0% 50%;
}
50% {
opacity: 1;
background-position: 100% 50%;
}
}
.pulse-text {
animation: pulseGradient 4s ease-in-out infinite;
}
这样文字会在最亮时稍微“闪一下”,增强动态表现力。
这个技术在现代浏览器中支持良好,但仍需注意:
-webkit- 前缀确保 Safari 和旧版 Chrome 支持will-change: background-position 提升动画流畅度基本上就这些。掌握 background-clip + keyframes 的组合,就能轻松做出高级感十足的文字渐变动画,而且代码并不复杂。