创建css个波形
Create css wave form
我一直在寻找如何在 css 中重新创建以下图像形式,但没有任何来源可以让我获胜。
下图显示了我正在努力实现的目标
研究叠加几个椭圆渐变作为背景图像:
background-image: radial-gradient(...),
radial-gradient(...),
radial-gradient(...);
CSS 渐变
这可以使用 CSS 渐变,但我真的建议使用 SVG 替代方案,因为 CSS 中的线条会呈锯齿状
div {
border: 2px solid black;
background: radial-gradient(ellipse at center, rgba(255, 255, 255, 1) 55%, rgba(38, 155, 3, 1) 50%, rgba(38, 155, 3, 1) 56%, rgba(38, 155, 3, 1) 57%, rgba(38, 155, 3, 1) 58%, rgba(169, 3, 41, 1) 60%, rgba(169, 3, 41, 1) 67%, rgba(169, 3, 41, 1) 68%, rgba(109, 0, 25, 1) 69%, rgba(109, 0, 25, 1) 100%);
background-position: -325px -5px;
background-size: 700px 300px;
width: 200px;
height: 200px;
<div></div>
SVG
这与您想要实现的目标非常接近,并且稍微移动一点坐标,它应该就是您想要的。
SVG 得到了很好的支持,一旦您理解了方法和坐标结构,您就可以使事物看起来完美,并且可以完全响应。
<svg width="100%" preserveAspectRation="none" viewbox="0 0 400 200">
<path d="M0,5 Q400,40 400,90 L400,0z" fill="#8BC74A"></path>
<path d="M0,10 Q400,20 400,80 L400,0 L0,0z" fill="#96292D"></path>
<path d="M0,0 Q400,0 400,40 L400,0z" fill="#700810"></path>
</svg>
Stewertside已经表现得最贴切了。选项,即 SVG,除了使用图像。
另一种选择是径向渐变,维克多和斯图尔赛德已经展示了这一点。
另一个选项是 box-shadow,它允许创建任何编号。阴影,也允许它们的定位。
使用 box-shadow 和溢出隐藏的例子:
div {
height: 100px;
width: 600px;
position: relative;
overflow: hidden;
}
div:before {
position: absolute;
content: "";
height: 200px;
width: 820px;
border-radius: 50%;
left: -200px;
top: 8px;
box-shadow: 70px 70px 0px 70px #8BC74A, 35px 68px 0px 100px #96292D, 0 0 0 120px #700810;
}
<div>
</div>
我一直在寻找如何在 css 中重新创建以下图像形式,但没有任何来源可以让我获胜。
下图显示了我正在努力实现的目标
研究叠加几个椭圆渐变作为背景图像:
background-image: radial-gradient(...),
radial-gradient(...),
radial-gradient(...);
CSS 渐变
这可以使用 CSS 渐变,但我真的建议使用 SVG 替代方案,因为 CSS 中的线条会呈锯齿状
div {
border: 2px solid black;
background: radial-gradient(ellipse at center, rgba(255, 255, 255, 1) 55%, rgba(38, 155, 3, 1) 50%, rgba(38, 155, 3, 1) 56%, rgba(38, 155, 3, 1) 57%, rgba(38, 155, 3, 1) 58%, rgba(169, 3, 41, 1) 60%, rgba(169, 3, 41, 1) 67%, rgba(169, 3, 41, 1) 68%, rgba(109, 0, 25, 1) 69%, rgba(109, 0, 25, 1) 100%);
background-position: -325px -5px;
background-size: 700px 300px;
width: 200px;
height: 200px;
<div></div>
SVG
这与您想要实现的目标非常接近,并且稍微移动一点坐标,它应该就是您想要的。
SVG 得到了很好的支持,一旦您理解了方法和坐标结构,您就可以使事物看起来完美,并且可以完全响应。
<svg width="100%" preserveAspectRation="none" viewbox="0 0 400 200">
<path d="M0,5 Q400,40 400,90 L400,0z" fill="#8BC74A"></path>
<path d="M0,10 Q400,20 400,80 L400,0 L0,0z" fill="#96292D"></path>
<path d="M0,0 Q400,0 400,40 L400,0z" fill="#700810"></path>
</svg>
Stewertside已经表现得最贴切了。选项,即 SVG,除了使用图像。
另一种选择是径向渐变,维克多和斯图尔赛德已经展示了这一点。
另一个选项是 box-shadow,它允许创建任何编号。阴影,也允许它们的定位。
使用 box-shadow 和溢出隐藏的例子:
div {
height: 100px;
width: 600px;
position: relative;
overflow: hidden;
}
div:before {
position: absolute;
content: "";
height: 200px;
width: 820px;
border-radius: 50%;
left: -200px;
top: 8px;
box-shadow: 70px 70px 0px 70px #8BC74A, 35px 68px 0px 100px #96292D, 0 0 0 120px #700810;
}
<div>
</div>