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

如何制作如图所示的自定义容器?用border-radius尝试未果求助

实现自定义内凹圆角容器的方案

仅用单一元素的border-radius无法实现你要的这种带内凹角的容器,因为border-radius只能生成外凸的圆角。下面提供两种可行的实现方案:

方案一:伪元素模拟内凹(兼容性好)

这种方法通过伪元素覆盖容器的角落,配合背景色和外凸圆角,模拟出内凹效果,适配绝大多数现代浏览器及部分老版本浏览器。

HTML代码

<div class="custom-container">
  <p>容器内的内容示例</p>
</div>

CSS代码

.custom-container {
  position: relative;
  width: 320px;
  padding: 40px 20px 20px;
  background-color: #4a90e2;
  color: #ffffff;
  /* 底部设置外凸圆角 */
  border-radius: 0 0 16px 16px;
}

/* 左上角内凹伪元素 */
.custom-container::before {
  content: "";
  position: absolute;
  top: 0;
  left: 0;
  width: 40px;
  height: 40px;
  /* 使用页面背景色填充,模拟内凹 */
  background-color: #ffffff;
  border-radius: 0 0 16px 0;
}

/* 右上角内凹伪元素 */
.custom-container::after {
  content: "";
  position: absolute;
  top: 0;
  right: 0;
  width: 40px;
  height: 40px;
  background-color: #ffffff;
  border-radius: 0 0 0 16px;
}

方案二:clip-path 直接裁剪(代码简洁)

使用CSS的clip-path属性直接定义容器的形状,代码更简洁,但兼容性稍差(不支持IE浏览器)。

CSS代码

.custom-container {
  width: 320px;
  padding: 20px;
  background-color: #4a90e2;
  color: #ffffff;
  /* 定义多边形路径,实现顶部内凹、底部外凸的效果 */
  clip-path: polygon(
    16px 0,
    calc(100% - 16px) 0,
    100% 16px,
    100% calc(100% - 16px),
    calc(100% - 16px) 100%,
    16px 100%,
    0 calc(100% - 16px),
    0 16px
  );
}

你可以根据需求和浏览器兼容性要求选择方案,调整border-radius或clip-path中的数值可改变圆角大小。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.02 20:10:32