
本文详解如何通过 CSS Grid 与 border-radius 组合技巧,无需 JavaScript 或 SVG,仅用纯 CSS 构建可精确控制重叠区域颜色的四瓣花朵图形。
本文详解如何通过 css grid 与 `border-radius` 组合技巧,无需 javascript 或 svg,仅用纯 css 构建可精确控制重叠区域颜色的四瓣花朵图形。
在传统布局中,多个绝对定位
正确解法:将整个花朵视为一个整体容器,用子元素模拟“四分之一圆弧”,并通过 grid 精确布局与 border-radius 控制弧形方向,使四块弧形在中心无缝交汇——此时交叠区域自然成为统一、可控的视觉中心。
以下为推荐实现方案:
.flower {
width: 160px;
height: 160px;
display: grid;
grid-template-columns: 1fr 1fr;
grid-template-rows: 1fr 1fr;
gap: 0;
}
.flower i {
border-radius: 50% 0 0 0; /* 默认:左上四分之一圆 */
background-color: lightskyblue;
}
/* 调整各象限弧形方向 */
.flower i:nth-child(1) {
border-radius: 50% 0 0 0; /* 左上 */
background-color: yellow;
}
.flower i:nth-child(2) {
border-radius: 0 50% 0 0; /* 右上 */
background-color: green;
}
.flower i:nth-child(3) {
border-radius: 0 0 0 50%; /* 左下 */
background-color: blue;
}
.flower i:nth-child(4) {
border-radius: 0 0 50% 0; /* 右下 */
background-color: orange;
}
<div class="flower"> <i></i> <i></i> <i></i> <i></i> </div>
✅ 关键原理说明:
- grid-template-columns: 1fr 1fr + grid-template-rows: 1fr 1fr 将容器均分为 2×2 网格,每个 占据一个象限;
- border-radius: a b c d 中,仅对单个角设为 50%(即半径 = 元素宽高的一半),其余为 0,即可生成标准四分之一圆弧;
- 四个弧形在中心点完全对齐,视觉上自然融合成一朵花,中心白色(或透明)区域即为所有弧形共同留白的交叠核心——若需为其着色,只需为 .flower 添加 background-color(例如 #fff 或 #ff6b6b),它将透过弧形间隙清晰显现。
⚠️ 注意事项:
- 所有 必须无内容、无内外边距(margin/padding: 0),否则破坏几何对齐;
- width/height 需为偶数,确保 50% 半径计算精准;
- 若需响应式,建议用 aspect-ratio: 1 替代固定宽高,并配合 clamp() 控制尺寸范围;
- 此方案兼容所有现代浏览器(Chrome 66+、Firefox 63+、Safari 14.1+),不依赖 clip-path 或 mask 等实验性属性。
该方法摒弃了“多层覆盖后取交集”的不可控思路,转而采用结构化分区 + 几何留白的设计哲学,既语义清晰、性能优异,又为后续动画(如旋转花瓣、渐变填充)提供了稳定基础。
前端入门到VUE实战笔记:立即使用
在学习笔记中,你将探索 前端 的入门与实战技巧!










