console
<div class="container">
<a class="btn-0" href="#">滑动</a>
<a class="btn-1" href="#">斜向滑动</a>
<a class="btn-1-2" href="#">两侧滑动</a>
</div>
body {
text-align: center;
background-color: #eeeeee;
}
.container *,
.container *:before,
.container *:after {
box-sizing: border-box;
transition: 0.5s ease-in-out;
}
.container *:before,
.container *:after {
z-index: -1;
}
a {
text-decoration: none;
line-height: 80px;
color: black;
}
[class^="btn-"] {
position: relative;
display: block;
width: 100%;
max-width: 250px;
height: 80px;
margin: 2rem auto;
text-transform: uppercase;
overflow: hidden;
border: 1px solid currentColor;
background-color: transparent;
}
.btn-0 {
color: #44c33c;
}
.btn-0:before {
content: '';
position: absolute;
top: 0;
right: 0;
bottom: 0;
left: 0;
background-color: #156e10;
transform: translateX(-100%);
}
.btn-0:hover {
color: #c8edc6;
}
.btn-0:hover:before {
transform: translateX(0);
}
.btn-1 {
color: #7937a5;
}
.btn-1:before {
content: '';
position: absolute;
top: 0;
right: -50px;
bottom: 0;
left: 0;
border-right: 50px solid transparent;
border-bottom: 80px solid #3a0c59;
transform: translateX(-100%);
}
.btn-1:hover {
color: #d8c4e5;
}
.btn-1:hover:before {
transform: translateX(0);
}
.btn-1-2 {
color: #5e85b4;
}
.btn-1-2:before, .btn-1-2:after {
content: '';
position: absolute;
top: 0;
right: 0;
bottom: 0;
left: 0;
border-bottom: 80px solid #274364;
}
.btn-1-2:before {
right: -50px;
border-right: 50px solid transparent;
transform: translateX(-100%);
}
.btn-1-2:after {
left: -50px;
border-left: 50px solid transparent;
transform: translateX(100%);
}
.btn-1-2:hover {
color: #d0dbe9;
}
.btn-1-2:hover:before {
transform: translateX(-40%);
}
.btn-1-2:hover:after {
transform: translateX(40%);
}