效果如下:

<!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>