我试图创建一个像下面这样的图像使用HTML和CSS的组合,但我似乎不能得到'花瓣'围绕中间旋转。
下面是我的代码:
.flower{
height: 600px;
width: 600px;
margin: 20px;
display: flex;
align-items: center;
justify-content: center;
position: relative;
}
.mid{
width: 200px;
height: 200px;
border-radius: 50%;
background: #35414d;
z-index: 4;
}
.petal{
position: absolute;
left: 40px;
width: 180px;
height: 180px;
border-radius: 50%;
background: #b5a9d4;
}
.petal.p1 {
transform: rotate(22.5deg);
z-index: 5;
}
.petal.p2 {
transform: rotate(50deg);
z-index: 5;
}
.petal.p3 {
transform: rotate(100deg);
z-index: 5;
}
<div class="flower" >
<div class="mid"></div>
<div class="petal p1"></div>
<div class="petal p2"></div>
<div class="petal p3"></div>
<div class="petal p4"></div>
<div class="petal p5"></div>
<div class="petal p6"></div>
<div class="petal p7"></div>
<div class="petal p8"></div>
</div>
什么变换值最能使8个花瓣围绕中心圆?
4条答案
按热度按时间blpfk2vs1#
您需要将每个花瓣的
transform-origin
设置为花的中心。transform origin是每个花瓣将围绕其旋转的点。因此,如果您将所有花瓣放置在花的边缘,并将变换原点设置为中心,则当您对每个花瓣应用transform: rotate()
时,它们将围绕花的边缘旋转。omvjsjqw2#
在其中复制8份
.mid
和.petal
。然后将.mid
s放置在彼此的顶部,其中z-index
为1到8。接下来,逐步旋转每个.mid
45deg
(例如0、45、90、...315)。hi3rlvi23#
如果你想要一个简单的解决方案,你可以依靠一个元素和渐变来实现结果。
调整代码中的
30% 30%
来控制小圆圈的大小,调整应用于主元素的渐变百分比来控制大圆圈的大小。6rvt4ljy4#