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

如何在单个div内实现带圆角的多色渐变效果?

实现单个Div内带圆角末端的多色进度条

你可以通过组合线性渐变和径向渐变来实现绿色末端的圆角效果,不需要额外嵌套元素。以下是修改后的代码:

CSS代码

.bar {
  height: 20px;
  border-radius: 2.5rem;
  /* 三层背景叠加:绿色左侧矩形 + 绿色右侧半圆 + 灰色底色 */
  background: 
    linear-gradient(green, green) left / calc(50% - 10px) 100%,
    radial-gradient(circle at left center, green 50%, transparent 50%) right / 20px 100%,
    gray;
  background-repeat: no-repeat;
}

HTML代码

<div class='bar'></div>

原理说明

  • 原来的线性渐变在50%处直接切换颜色,导致边缘尖锐。我们把绿色区域拆分为两部分:
    • 左侧的绿色矩形:宽度为总宽度的50%减去10px(半圆的半径),高度100%;
    • 右侧的绿色半圆:用径向渐变实现,直径等于进度条高度(20px),定位在绿色区域的右端,刚好填补矩形的缺口,形成圆角;
  • 最底层的灰色背景作为底色,确保右侧区域正常显示。

这样就能实现绿色末端平滑圆角的多色进度条效果,同时保持整个div的左右圆角样式。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.19 12:10:36