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

如何用CSS实现矩形侧边中间的Inverted border-radius(内凹圆角)?

矩形侧边中间内凹圆角的CSS实现方案

完全可以用CSS实现这种侧边中间的内凹圆角效果,下面提供几种实用的实现方案:

方法一:径向渐变+伪元素补边

通过径向渐变在侧边中心创建透明内凹区域,再用伪元素补全内凹处的边框,模拟内凹效果。

.inverted-box {
  width: 300px;
  height: 200px;
  background: #fff;
  /* 左侧中间内凹,20px为内凹半径 */
  background-image: radial-gradient(circle at left center, transparent 20px, #fff 20px);
  border: 2px solid #333;
  border-left: none;
  position: relative;
}
/* 补全左侧内凹处的边框 */
.inverted-box::before {
  content: '';
  position: absolute;
  left: 0;
  top: calc(50% - 20px);
  width: 2px;
  height: 40px;
  background: #333;
  border-radius: 0 2px 2px 0;
}

调整代码中的20px参数可改变内凹的大小;若需要右侧也实现内凹,复制一份径向渐变并将left center改为right center,同时对应补充右侧边框的伪元素即可。

方法二:伪元素叠加模拟内凹

利用上下两个伪元素覆盖矩形侧边的上下区域,中间露出的背景形成内凹效果,伪元素的圆角配合背景色实现内凹圆角。

.inverted-box {
  width: 300px;
  height: 200px;
  background: #333;
  position: relative;
  overflow: hidden;
}
.inverted-box::before,
.inverted-box::after {
  content: '';
  position: absolute;
  width: 100%;
  height: calc(50% - 20px);
  background: #fff;
}
.inverted-box::before {
  top: 0;
  border-radius: 0 0 0 20px;
}
.inverted-box::after {
  bottom: 0;
  border-radius: 0 20px 0 0;
}

父元素的深色背景在中间露出,配合伪元素的圆角形成内凹;若要实现右侧内凹,只需调整伪元素的border-radius方向为右侧圆角即可。

方法三:clip-path路径裁剪

直接使用CSS的clip-path属性绘制带有内凹的多边形路径,精准定义矩形的形状。

.inverted-box {
  width: 300px;
  height: 200px;
  background: #fff;
  border: 2px solid #333;
  /* 左侧中间内凹,20px为内凹半径,内凹高度为40px */
  clip-path: polygon(
    20px 0, 
    100% 0, 
    100% 100%, 
    20px 100%, 
    0 calc(50% + 20px), 
    0 calc(50% - 20px)
  );
}

通过调整路径中的20px和calc(50% ±20px)参数,可灵活改变内凹的大小和高度;若需要右侧内凹,修改路径的左侧顶点参数为右侧对应位置即可。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.26 16:52:20