gpt4 book ai didi

html - 如何使用 CSS 将形状组合成一个来创建云?

转载 作者:行者123 更新时间:2023-11-28 13:53:12 27 4
gpt4 key购买 nike

所以我尝试主要使用 div 和 CSS 创建云。我有几个形状为圆圈或 Blob 的 div,我的想法是将它们合并为一个,使它们看起来像一朵云。

.cloud-body{

width:250px;
height:200px;
background: linear-gradient(blue,blueviolet);
margin-left: 30%;
margin-top:20%;
border-radius:50%;

}
.blob1{
width: 100px;
height: 100px;
background: blue;
border-radius:50%;
position:relative;
bottom: 200px;
left: 60%;

}
.blob2{
width: 200px;
height: 150px;
background: linear-gradient(blueviolet, blue);
border-radius:50%;
position:relative;
bottom: 200px;
left: 150px;
}
.blob3{
width: 200px;
height: 150px;
background: linear-gradient(blueviolet, blue);
border-radius:50%;
position:relative;
bottom: 400px;
left: 400px
}
<div class="wrapper">
<div class="cloud-body"></div>
<div class="blob1"></div>
<div class="blob2"></div>
<div class="blob3"></div>
</div>

然而,它们看起来就像是不同的 blob 堆叠在一起(正如 div 所预期的那样)。将它们结合起来或更具体地说是使每个形状之间的边界消失的方法是什么?这是 pen for this 的链接在我正在研究的 codepen 上。

最佳答案

您可以考虑使用多个背景来创建具有一个元素的云。您可以轻松添加任意数量的任意大小和位置的圆/椭圆。半径的一个值将给出一个圆,两个值将给出一个椭圆

.cloud {
width:200px;
height:150px;
border-radius: 0 0 50px 50px;
background:
/* radius position / 2xradius*/
radial-gradient(35px 30px,blue 98%,transparent 100%) 20% 30% /70px 60px,
radial-gradient(50px 45px,blue 98%,transparent 100%) 50% 50% /100px 90px,
radial-gradient(50px ,blue 98%,transparent 100%) 100% 100%/100px 100px,
radial-gradient(40px ,blue 98%,transparent 100%) 0 100% /80px 80px,
/* base of the cloud */
linear-gradient(blue,blue) bottom/100% 40px;;
background-repeat:no-repeat;
}
<div class="cloud"></div>

CSS shapes cloud

如果您想要渐变作为着色,您可以使用mask 来实现。您只需使用先前在 mask 属性中定义的渐变:

.cloud {
width:200px;
height:150px;
border-radius: 0 0 50px 50px;
background:linear-gradient(60deg,red,blue);
-webkit-mask:
radial-gradient(35px 30px,blue 98%,transparent 100%) 20% 30% /70px 60px,
radial-gradient(50px 45px,blue 98%,transparent 100%) 50% 50% /100px 90px,
radial-gradient(50px ,blue 98%,transparent 100%) 100% 100%/100px 100px,
radial-gradient(40px ,blue 98%,transparent 100%) 0 100% /80px 80px,

linear-gradient(blue,blue) bottom/100% 40px;
mask:
radial-gradient(35px 30px,blue 98%,transparent 100%) 20% 30% /70px 60px,
radial-gradient(50px 45px,blue 98%,transparent 100%) 50% 50% /100px 90px,
radial-gradient(50px ,blue 98%,transparent 100%) 100% 100%/100px 100px,
radial-gradient(40px ,blue 98%,transparent 100%) 0 100% /80px 80px,

linear-gradient(blue,blue) bottom/100% 40px;
-webkit-mask-repeat:no-repeat;
mask-repeat:no-repeat;
}
<div class="cloud"></div>

Gradient cloud with CSS

关于html - 如何使用 CSS 将形状组合成一个来创建云?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59336331/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com