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

如何使用CSS实现指定形状及div内圆形背景裁剪效果

CSS特殊形状及圆形背景裁剪实现方案

一、图示目标形状实现

你提到的图示为单侧带内凹半圆的矩形标签,这里提供两种可直接落地的实现方案:

  • 方案1:clip-path实现(代码最简,现代浏览器全兼容)
    直接用路径定义裁剪区域即可,可根据实际需求调整尺寸、半圆位置和半径参数:
.target-shape {
  width: 200px;
  height: 80px;
  background: #2563eb;
  /* 路径参数可根据实际尺寸按需调整 */
  clip-path: path('M0,0 H160 A20,20 0 0 1 180,0 H200 V80 H0 Z');
}
  • 方案2:伪元素实现(兼容更低版本浏览器)
    通过和父级背景同色的绝对定位伪元素覆盖出内凹效果,适合需要兼容IE11的场景:
.target-shape {
  position: relative;
  width: 200px;
  height: 80px;
  background: #2563eb;
  overflow: hidden;
}
.target-shape::after {
  content: '';
  position: absolute;
  right: 0;
  top: -20px;
  width: 40px;
  height: 40px;
  border-radius: 50%;
  /* 颜色和形状所在页面的背景色保持一致即可 */
  background: #fff;
}

二、div内圆形背景裁剪实现

根据不同使用场景有三种常用方案:

  • 方案1:基础圆角裁剪(最通用)
    给div设置圆角+溢出隐藏,背景、子元素都会被统一裁剪为圆形:
.circle-container {
  width: 200px;
  height: 200px;
  border-radius: 50%;
  overflow: hidden;
  background: url(你的背景资源地址) center / cover no-repeat;
}
  • 方案2:clip-path自定义裁剪
    适合需要动态调整圆形位置、半径的场景,灵活度更高:
.circle-container {
  width: 300px;
  height: 200px;
  background: url(你的背景资源地址) center / cover no-repeat;
  /* circle参数规则:半径 at 圆心X坐标 圆心Y坐标 */
  clip-path: circle(80px at center);
}
  • 方案3:仅裁剪背景不限制子元素
    如果只需要背景裁剪为圆形,子元素可以超出圆形区域显示,用mask属性实现:
.circle-container {
  width: 300px;
  height: 200px;
  background: url(你的背景资源地址) center / cover no-repeat;
  /* 径向渐变控制显示区域,黑色为显示、透明为隐藏 */
  mask: radial-gradient(circle at center, black 80px, transparent 80px);
  -webkit-mask: radial-gradient(circle at center, black 80px, transparent 80px);
}

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.03 08:27:02