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

如何用CSS实现上下渐变背景底部居中轻微弯曲的效果

你可以通过两种方案实现底部居中内凹的渐变效果,都不需要修改现有HTML结构:

方案1:伪元素实现(兼容性更好)

原理是用一个超宽的白色圆形伪元素遮挡渐变区域底部中心位置,刚好形成内凹效果,兼容绝大多数浏览器:

.content-container {
  position: relative;
  height: 150px;
  background: linear-gradient(180deg, #FAFDFF 0%, #E8F3F9 100%);
  overflow: hidden;
}
/* 内凹弧度实现 */
.content-container::after {
  content: '';
  position: absolute;
  left: 50%;
  bottom: 0;
  transform: translateX(-50%);
  width: 200vw; /* 宽度足够大即可,保证覆盖容器全宽 */
  height: 20px; /* 调整这个数值可以控制内凹的深度 */
  border-radius: 50%;
  background: #fff; /* 和渐变衔接的外部背景色保持一致即可 */
  z-index: 0;
}
/* 容器内内容如果被遮挡,给内容添加相对定位提高层级即可 */
.content-container p {
  position: relative;
  z-index: 1;
}

方案2:mask遮罩实现(代码更简洁)

利用CSS mask属性直接裁剪渐变区域的形状,代码更精简:

.content-container {
  height: 150px;
  background: linear-gradient(180deg, #FAFDFF 0%, #E8F3F9 100%);
  /* 核心遮罩代码 */
  -webkit-mask: 
    linear-gradient(to bottom, #fff 0, #fff 0) content-box,
    radial-gradient(circle at 50% 100%, transparent 20px, #fff 20px);
  mask: 
    linear-gradient(to bottom, #fff 0, #fff 0) content-box,
    radial-gradient(circle at 50% 100%, transparent 20px, #fff 20px);
  -webkit-mask-composite: xor;
  mask-composite: exclude;
  padding-bottom: 20px; /* 和radial-gradient里的20px保持一致,控制内凹深度 */
  box-sizing: border-box;
}

两个方案都可以调整弧度相关数值适配你的设计需求。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.26 18:15:10