如何使用CSS实现外扩弧形边缘的特殊白色背景形状
实现内凹圆角背景的方案
现有代码问题排查
你写的基础逻辑是正确的,缺失了四个角容器的定位、伪元素的背景色和对应偏移属性,补全即可生效。
可选实现方案
方案1:多DOM实现(兼容性好)
需要搭配对应HTML结构:
<div class="concave-box"> <div id="curved-corner-topleft"></div> <div id="curved-corner-topright"></div> <div id="curved-corner-bottomleft"></div> <div id="curved-corner-bottomright"></div> <!-- 写入你的内容 --> </div>
完整CSS代码:
.concave-box { width: 500px; height: 300px; background: #fff; position: relative; padding: 24px; box-sizing: border-box; } #curved-corner-bottomleft, #curved-corner-bottomright, #curved-corner-topleft, #curved-corner-topright { width: 24px; height: 24px; overflow: hidden; position: absolute; } #curved-corner-topleft { top: 0; left: 0; } #curved-corner-topright { top: 0; right: 0; } #curved-corner-bottomleft { bottom: 0; left: 0; } #curved-corner-bottomright { bottom: 0; right: 0; } #curved-corner-bottomleft:before, #curved-corner-bottomright:before, #curved-corner-topleft:before, #curved-corner-topright:before { content: ""; display: block; width: 200%; height: 200%; position: absolute; border-radius: 50%; /* 背景色与外层页面背景色保持一致即可 */ background: #000; } #curved-corner-topleft:before { transform: translate(-50%, -50%); } #curved-corner-topright:before { transform: translate(50%, -50%); } #curved-corner-bottomleft:before { transform: translate(-50%, 50%); } #curved-corner-bottomright:before { transform: translate(50%, 50%); }
方案2:径向渐变实现(代码更简洁)
不需要额外DOM元素,仅用CSS即可实现:
.concave-box { width: 500px; height: 300px; padding: 24px; box-sizing: border-box; /* 24px为内凹圆角尺寸,#fff为容器背景色,#000为外层页面背景色,可按需调整 */ background: radial-gradient(circle at top left, transparent 24px, #fff 0) top left, radial-gradient(circle at top right, transparent 24px, #fff 0) top right, radial-gradient(circle at bottom left, transparent 24px, #fff 0) bottom left, radial-gradient(circle at bottom right, transparent 24px, #fff 0) bottom right; background-size: 50% 50%; background-repeat: no-repeat; }
注意事项
- 方案1兼容低版本IE,适合需要兼容旧浏览器的场景
- 方案2代码量更少,无需额外DOM,支持所有现代浏览器
- 两种方案的内凹尺寸、背景色都可以根据你的实际需求调整
内容的提问来源于stack exchange,提问作者ololo
相关产品推荐
相关产品推荐

