You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何使用CSS渐变属性实现按钮半背景色且渐变边缘带圆角效果

实现方案

该效果完全可以通过CSS Gradient属性实现,无需新增额外DOM节点,仅需要调整原有渐变逻辑、叠加径向渐变做圆弧过渡即可。

核心思路

  • 保留原有的斜向分色逻辑,将硬边缘的色标替换为带小范围过渡的配置
  • 叠加4个定位在分界转角位置的径向渐变,模拟圆润的弧形边缘
  • 新增CSS变量控制圆弧半径,可灵活调整边缘圆润度

完整实现代码

HTML

<button class='triangle'>Linear Check </button>

CSS

.triangle{
  padding: 20px 40px;
  border: none;
  font-size: 16px;
  cursor: pointer;
  /* 可自定义变量 */
  --color1: red;
  --color2: yellow;
  --split-offset: 30%; /* 分界左右偏移量 */
  --arc-radius: 6px; /* 边缘圆弧半径,数值越大圆弧越明显 */
  background: 
    /* 上左圆弧 */
    radial-gradient(circle at calc(50% + var(--split-offset)) calc(var(--arc-radius) * -1), transparent var(--arc-radius), var(--color2) calc(var(--arc-radius) + 1px)) top left,
    /* 上右圆弧 */
    radial-gradient(circle at calc(50% - var(--split-offset)) calc(var(--arc-radius) * -1), transparent var(--arc-radius), var(--color1) calc(var(--arc-radius) + 1px)) top right,
    /* 下左圆弧 */
    radial-gradient(circle at calc(50% + var(--split-offset)) calc(100% + var(--arc-radius)), transparent var(--arc-radius), var(--color1) calc(var(--arc-radius) + 1px)) bottom left,
    /* 下右圆弧 */
    radial-gradient(circle at calc(50% - var(--split-offset)) calc(100% + var(--arc-radius)), transparent var(--arc-radius), var(--color2) calc(var(--arc-radius) + 1px)) bottom right,
    /* 基础斜向分色层 */
    linear-gradient(135deg, var(--color1) 50%, var(--color2) 50%);
  background-size: 51% 51%, 51% 51%, 51% 51%, 51% 51%, 100% 100%;
  background-repeat: no-repeat;
}

参数调整说明

  • 修改--color1和--color2可更换两种分色的颜色
  • 修改--split-offset可调整斜向分界的左右偏移程度
  • 修改--arc-radius可调整边缘圆弧的大小,数值越大圆弧越圆润

内容的提问来源于stack exchange,提问作者devangular

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.27 10:24:03