效果如下:

<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<meta http-equiv="X-UA-Compatible" content="ie=edge">
<title>hover渐变</title>
<style>
* {
margin: 0;
padding: 0;
}
.container {
position: absolute;
left: 50%;
top:50%;
transform: translate(-50%, -50%);
}
.btn {
font-family: 'montserrat', sans-serif;
border: none;
margin: 20px;
padding: 20px;
width: 220px;
text-transform: uppercase;
cursor: pointer;
border-radius: 5px;
color: white;
background-size: 200%;
transition: 0.6s;
}
.btn:hover {
background-position: right;
}
.btn1 {
background-image: linear-gradient(to left, #f1c40f, #e67e22, #f1c40f)
}
.btn2 {
background-image: linear-gradient(to left, #2ecc71, #1abc9c, #2ecc71)
}
.btn3 {
background-image: linear-gradient(to left, #9b59b6, #8e44ad, #9b59b6)
}
.btn4 {
background-image: linear-gradient(to left, #e74c3c, #c0392b, #e74c3c)
}
</style>
</head>
<body>
<div class="container">
<button class="btn btn1">hover me</button>
<button class="btn btn2">hover me</button>
<button class="btn btn3">hover me</button>
<button class="btn btn4">hover me</button>
</div>
</body>
</html>