transform中scale写在translate前似乎有影响
来源:2-13 编程练习
ZFB8672236
2022-09-13 10:41:24
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>five-star red flag</title>
<style>
.redflag {
position: relative;
width: 60vmax;
height: 40vmax;
background-color: #ee1c25;
margin: 0 auto;
}
.star, .star::before, .star::after {
/*--cos_72deg: 0.31;
--cos_36deg: 0.81;
--sin_72deg: 0.95;
--diameter: 12vmax;*/
position:absolute;
border-top: 5.71vmax solid transparent;
border-bottom: 5.71vmax solid transparent;
border-left: 4.15vmax solid #ffff00;
border-right: 4.15vmax solid transparent;
transform-origin: 1.85vmax 5.71vmax;
}
.star::before {
content: "";
display:block;
top: -5.71vmax;
left: -4.15vmax;
transform: rotate(72deg);
}
.star::after {
content: "";
display:block;
top: -5.71vmax;
left: -4.15vmax;
transform: rotate(144deg);
}
.main-star {
transform: translate(8.15vmax,4.29vmax) rotate(18deg);
}
.little-star1 {
transform: translate(18.15vmax,-1.71vmax) scale(0.33,0.33) rotate(-31deg);
}
.little-star2 {
transform: translate(22.15vmax,2.29vmax) scale(0.33,0.33) rotate(-8.1deg);
}
.little-star3 {
transform: translate(22.15vmax,8.29vmax) scale(0.33,0.33) rotate(15.9deg);
}
.little-star4 {
transform: translate(18.15vmax,12.29vmax) scale(0.33,0.33) rotate(38.7deg);
}
</style>
</head>
<body>
<div class="redflag">
<div class="star main-star"></div>
<div class="star little-star1"></div>
<div class="star little-star2"></div>
<div class="star little-star3"></div>
<div class="star little-star4"></div>
</div>
</body>
</html>在写几个little-star的transform属性时,先写scale属性(假设x,y方向值都是1/3)感觉在x,y方向也只会平移定义的translate值的1/3。
1回答
好帮手慕小李
2022-09-13
同学你好,首先说代码可以实现需求,很棒继续努力。
另同学可以将它们做个对比看看有没有问题如下:


但是从理论上说确实是有些不同的,因为先旋转之后在移动,会出现旋转后移动的水平坐标轴发生了变化,所以旋转之后在进行移动会出现问题,这里没有出现问题,大概率也是因为数值过小。
祝学习愉快!
相似问题