渐变边框按钮(渐变描边/流动渐变边/悬停填充 3 款源码)

CSS 许可:自研原创

3 款纯 CSS 渐变边框按钮:padding 双重背景描边、流动渐变边动画、悬停渐变填充,兼容性好、无需图片资源,复制即用。

效果演示(真实可交互)

渐变描边兼容性最好;流动渐变边支持现代浏览器

完整代码

HTML 结构:

<button class="gb-btn gb-padding">渐变描边</button>
<button class="gb-btn gb-flow">流动渐变边</button>
<button class="gb-btn gb-hover">悬停渐变填充</button>

CSS 核心代码:

/* 1 padding 双重背景法:内层实色裁出 2px 透明边 */
.gb-padding {
  border: 2px solid transparent;
  background:
    linear-gradient(#1b1f2e, #1b1f2e) padding-box,
    linear-gradient(120deg, #ff6b6b, #ffd93d, #4d96ff, #c084fc) border-box;
}

/* 2 流动渐变边:大尺寸背景平移 */
.gb-flow {
  border: 2px solid transparent;
  background:
    linear-gradient(#1b1f2e, #1b1f2e) padding-box,
    linear-gradient(90deg, #ff6b6b, #ffd93d, #6bcb77, #4d96ff, #c084fc, #ff6b6b) border-box;
  background-size: 100% 100%, 300% 100%;
  animation: gb-flow-move 3s linear infinite;
}
@keyframes gb-flow-move { to { background-position: 0 0, 300% 0; } }

/* 3 悬停渐变填充 */
.gb-hover {
  border: 2px solid transparent; color: #ffb3c1;
  background:
    linear-gradient(#10121a, #10121a) padding-box,
    linear-gradient(135deg, #ff6b6b, #ffd93d) border-box;
}
.gb-hover:hover {
  color: #1a0a0d;
  background: linear-gradient(135deg, #ff6b6b, #ffd93d) padding-box,
    linear-gradient(135deg, #ff6b6b, #ffd93d) border-box;
}

参数说明

实现方式关键参数说明
padding 双重背景border: 2px solid transparent边框宽度即渐变可见宽度
padding 双重背景linear-gradient(...) padding-box / border-boxpadding-box 管内层,border-box 管边框
流动渐变边background-size: 300% 100%越大流动越明显,建议 200%~400%
流动渐变边animation: 3s linear infinite周期越短流动越快
悬停填充两组 background 互换悬停时把渐变同时铺到 padding-box

兼容性与性能

常见问题

Q: 为什么按钮里看不到渐变? 检查是否漏写 border: 2px solid transparent,border-box 层的渐变要靠透明边框区才露出来;另外 background 的顺序不能反,padding-box 要在前面。

Q: 能做出带渐变描边的圆角胶囊按钮吗? 可以,把 border-radius 调大到按钮高度一半即可,双重背景法天然支持圆角,不会像 border-image 那样被拉伸变形。

Q: 渐变描边可以加 hover 变色吗? 可以,hover 时整体替换 background 的渐变颜色即可,配合 transition: background .3s 需要同时过渡两组渐变,建议直接改颜色变量实现平滑切换。

Q: 支持透明背景的渐变边框吗? 支持,把 padding-box 那层实色改成 rgba(0,0,0,0) 即可得到镂空渐变描边按钮。

许可与来源

  • 许可证:自研原创 —— 粤喵自研原创,可免费用于个人与商业项目,无需署名。查看来源公示与许可清单
  • 来源:粤喵团队原创自研(从效果思路到代码实现均为独立完成,未直接复制第三方代码)
  • 首次发布:2026-09-01 · 最近更新:2026-09-01
  • 修改日志:2026-09-01 首次发布;2026-09-13 补充许可证与来源标注、复制按钮说明与法务页入口
  • 纠错:联系页面 / min@cactus.asia,2 个工作日内核实处理

常见问题

这个组件可以商用吗?

可以。本组件为粤喵自研原创,可免费用于个人和商业项目,无需署名。

浏览器兼容性如何?

支持所有现代浏览器(Chrome / Firefox / Safari / Edge 最新版本)。旧版 IE 不支持 CSS 动画相关特性。

怎么修改动画参数?

直接调整 CSS 中的 animation-duration(时长)、animation-timing-function(缓动曲线)等属性即可,代码中有注释说明。

✍️ 作者与审核