I have a button that is split diagonally. I want to add a different gradient to each side. I've tried splitting in two using :before and :after but that requires a rotate or skew which means changing the deg which isn't very responsive. Basically I need the cut off in the center to stay top left and bottom right at different breakpoints regardless of the width and height. Is there a better way to do this?
.btn {
background-image: linear-gradient(47deg, #f09 0%, #A09 100%);
display: inline-block;
font-size: 1.6rem;
text-decoration: none;
text-align: center;
cursor: pointer;
max-width: 32rem;
width: 100%;
padding: 2.6rem 1rem;
color: $white;
text-transform: uppercase;
vertical-align: middle;
overflow: hidden;
position: relative;
z-index: 1;
}
.btn:after {
content: '';
width: 100%;
left: 0%;
right: 0;
bottom: 0;
top: 48%;
background-image: linear-gradient(47deg, #A09 0%, #f09 100%);
position: absolute;
transform: skewY(14deg);
height: 200%;
z-index: -1;
}
<a href="" class="btn">Button</a>
See Question&Answers more detail:
os 与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…