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

如何实现带2px边框的内凹圆角(inverted corners)效果?

内凹圆角加边框实现方案

你目前用径向渐变实现内凹圆角的逻辑非常简洁,加2px边框可以用以下两种无额外DOM节点的方案实现:


方案1:多层径向渐变叠加(兼容性最好)

原理是在原有背景层上叠加一层更小的填充渐变,两层渐变的差值就是边框宽度,示例代码如下:

/* 以左上角内凹圆角为例,其余方位参数可根据需求调整 */
.target-element {
  width: 300px;
  height: 200px;
  background: 
    /* 内层填充渐变,比边框渐变的终止位小2px */
    radial-gradient(circle at top left, transparent 4vw, #ffffff 4.1vw, #ffffff calc(4vw + 2px)),
    /* 外层边框渐变,颜色为你需要的边框色 */
    radial-gradient(circle at top left, transparent 4vw, darkblue 4.1vw);
}

如果需要四个角都做内凹圆角,只需要按上述规则新增两组渐变分别对应top left/top right/bottom left/bottom right四个方位即可,把vw单位也可以替换为固定px值,尺寸控制更精准。


方案2:padding+outline配合实现(代码更精简)

如果你的元素需要全边框覆盖,这个方案代码量更少:

.target-element {
  width: 300px;
  height: 200px;
  background: radial-gradient(circle at top left,transparent 4vw, darkblue 4.1vw);
  /* 背景仅填充内容区,预留边框位置 */
  background-clip: content-box;
  /* padding值对应边框宽度 */
  padding: 2px;
  /* outline颜色为边框色 */
  outline: 2px solid darkblue;
}

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.27 05:54:03