css的渐变边框可以用下面方式实现
border-image: linear-gradient(rgb(89, 0, 255),pink) 30 30;
css的圆角边框可以用下面方式实现
border-radius: 20px;
那想要实现一个圆角的渐变边框呢,可能会以为,两个都用上不就可以了,但事实是,这两个属性并不兼容,所以要实现一个圆角的渐变边框,就得需要曲线救国的方法了
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8" />
<meta http-equiv="X-UA-Compatible" content="IE=edge" />
<meta name="viewport" content="width=device-width,initial-scale=1.0,user-scalable=no" />
<!-- <link rel="icon" href="<%= BASE_URL %>favicon.ico" /> -->
<title>渐变边框</title>
</head>
<style>
body{
background: linear-gradient(60deg, #dfdee1, #edabb5);
}
.demo{
width: 200px;
height: 60px;
position: relative;
border-radius: var(--border-radius);
--border-width: 3px;
--border-radius: 10px;
--border-color: linear-gradient(270deg, rgba(148, 135, 253, 1), rgba(143, 246, 226, 1));
background: transparent;
}
.demo::after {
content: "";
position: absolute;
left: 0;
top: 0;
width: 100%;
height: 100%;
padding: var(--border-width);
border-radius: var(--border-radius);
background: var(--border-color);
--mask-bg: linear-gradient(red, red);
--mask-clip: content-box, padding-box;
-webkit-mask-image: var(--mask-bg), var(--mask-bg);
-webkit-mask-clip: var(--mask-clip);
-webkit-mask-composite: destination-out;
}
</style>
<body>
<div class="demo"></div>
</body>
</html>
最终效果图