通过CSS实现渐变色边框

通过CSS实现渐变色边框的几种方法:

1. 使用border-image实现渐变色边框,边框圆角

.box{

	border-radius: 16px;
	
	border: 10px solid;
	
	border-image: linear-gradient(#8f41e9, #578aef,#ff5277)30 30;

}

这种方式虽然简单但有个明显的缺陷,不支持设置border-radius ,外框想设置成圆角需要加

clip-path: inset(0 round 10px);

优点: 内容背景可以透明

2. 使用 background-image实现渐变色边框,边框圆角

.box{

	border: 4px solid transparent;
	
	border-radius: 16px;
	
	background-clip: padding-box, border-box;
	
	background-origin: padding-box, border-box;
	
	background-image: linear-gradient(to right, #222, #222), linear-gradient(90deg, #8F41E9, #578AEF);

}

缺点:

  • 内容背景不能半透明
  • 实现复杂
  • 不能使用padding
  • 不是内圆角

3、border-image + overflow: hidden实现

.radius-gradient-border3{
    max-width: 300px;
    border-radius: 5px;
    margin-bottom: 20px;
    overflow: hidden;
}
.radius-gradient-border3 .inner{
    padding: 8px;
    border: 5px solid transparent;
    border-image: linear-gradient(90deg, #387EE8, #f60) 1;
    color: #f60;
    background-color: rgba(255,255,255,0.7);
}

缺点: 需要多嵌套一层父元素,并且还需要设置overflow: hidden;

4、动态边框

.box{

	border-radius: 16px;
	
	border: 10px solid;
	
	border-image: linear-gradient(#8f41e9, #578aef,#ff5277)30 30;
	
	animation: light 3s linear infinite;

}

@keyframes light {

	0% {filter: hue-rotate(0deg);/*色调旋转*/}
	
	20% {filter: hue-rotate(100deg);/*色调旋转*/}
	
	40% {filter: hue-rotate(200deg);/*色调旋转*/}
	
	100% {filter: hue-rotate(360deg);/*色调旋转*/}

}

你可能感兴趣的:(css,前端,css3)