CSS实现圆角内部透明的渐变边框

65 阅读1分钟
  .gradient-border::after {
    content: '';
    box-sizing: border-box;
    position: absolute;
    top: -50%;
    right: -50%;
    bottom: -50%;
    left: -50%;
    transform: scale(0.5);

    /* 圆角大小,注意scale的缩放*/
    border-radius: 12px;
    /* 边框大小,不能小于0.5,注意scale的缩放 */
    padding: 2px;
    /* 边框颜色 */
    background: linear-gradient(#804cff, #3b63ff);

    /* 核心,兼容性 ios2+ android2+ */
    -webkit-mask: linear-gradient(#fff 0 100%) content-box,
      linear-gradient(#fff 0 100%);
    mask: linear-gradient(#fff 0 100%) content-box,
      linear-gradient(#fff 0 100%);
    -webkit-mask-composite: xor;
    mask-composite: exclude;

    pointer-events: none;
  }

不用透明背景

clip-gradient-border {
        border: 1px solid transparent;
        border-radius: 6px;
        background-clip: padding-box, border-box;
        background-origin: padding-box, border-box;
        /* 第一个渐变为内部背景色,第二个渐变为边框渐变色 */
        background-image: linear-gradient(to right, #fff, #fff),
          linear-gradient(90deg, #8f41e9, #578aef);
}