效果
原理
一眼看上去, background 有渐变颜色 linear-gradient.
当 hover in 的时候有一束白光, 从右边移动到左边. hover out 则是反过来.
它其实是通过 background-size, background-position 来实现的. 如果不熟悉 background size, position 请看这篇先 CSS – background and styling img
上面这 2 个, 分别是 hover in/out 的背景
关键:
1. 背景比 button 大. background-size: 300%
2. linear-gradient 中有 4 个颜色, 其中 1 个是白色
3. 通过 background-position 移动, 产生白光移动的效果
移动起来大概是上面这个感觉.
代码
HTML
<button>Register</button>
CSS
button { padding: 1rem 2.5rem; border-width: 0; background-image: linear-gradient( to right, hsl(354, 57%, 53%), hsl(342, 57%, 53%), white, hsl(354, 57%, 53%) ); background-size: 300% 100%; color: white; transition: background-position 1s; &:hover { background-image: linear-gradient( to right, hsl(354, 57%, 53%), white, hsl(342, 57%, 53%), hsl(354, 57%, 53%) ); background-position: 100% 0; } }