2-13 作业,请老师帮忙检查一下
来源:2-13 编程练习
呜蜩的呀
2022-07-29 19:28:25
问题描述:
有一个问题,就是关于利用widthheheight为0的div创建三角形,那么关于三角形有什么特殊的角度设置吗?
及比如平时直接设置形成的等边直角三角形,这种的比例快速设置?
我一开始是想用scaleY对三角形直接变形让它变形,但是发现旋转的时候视觉效果会不一样?
同时关于代码有哪里不完善吗,又可以改进的地方,请老师帮忙批改一下,谢谢!
相关代码:
<!DOCTYPE HTML>
<html>
<head>
<meta charset="utf-8">
<title>2-3</title>
<style type="text/css">
/* 此处写代码*/
* {
margin: 0px;
padding: 0px;
}
section {
width: 1200px;
height: 900px;
background: whitesmoke no-repeat center;
border: 1px solid #000;
}
/* 给矩形设置红色的背景,长宽比例是3:2,背景红色,居中,比例设置,利用缩放变形 */
.redbg {
margin: 60px auto;
width: 600px;
height: 400px;
background: red center;
position: relative;
}
/* 利用三个三角形来拼成五角星,三角形利用面积为0的div盒子边框实现 */
.bigstar {
background-color: antiquewhite;
position: absolute;
top: 65px;
left: 75px;
transform: rotate(0deg);
}
/* 旋转三角形到一定的角度,三个三角形拼接成五角星 */
.bigstar .star1 {
border: 50px solid transparent;
border-top:35px solid yellow;
position: absolute;
top: 21px;
left: 20px;
transform: rotate(0deg);
}
.bigstar .star2 {
border: 50px solid transparent;
border-top: 35px solid yellow;
position: absolute;
top: -28px;
left: 30px;
transform: rotate(215deg);
}
.bigstar .star3 {
border: 50px solid transparent;
border-top: 35px solid yellow;
position: absolute;
top: 3px;
left: 40px;
transform: rotate(288deg);
}
/* 创建大五角星一样的操作 */
.smallstar {
background-color: antiquewhite;
position: absolute;
}
.smallstar .star1 {
border: 50px solid transparent;
border-top:35px solid yellow;
position: absolute;
top: 21px;
left: 20px;
transform: rotate(0deg);
}
.smallstar .star2 {
border: 50px solid transparent;
border-top: 35px solid yellow;
position: absolute;
top: -28px;
left: 30px;
transform: rotate(215deg);
}
.smallstar .star3 {
border: 50px solid transparent;
border-top: 35px solid yellow;
position: absolute;
top: 3px;
left: 40px;
transform: rotate(288deg);
}
/* 对小五角星进行位置移动 */
/* nth-child:用于匹配父元素的第n个子元素,无论是什么元素
即:ul>li>h3, p 此时选择p:firdt-child或者nth-child(1)都不会选中p 因为p的父元素li的第一个子元素不是p是h3 */
.redbg .smallstar:nth-child(2) {
top: 5px;
left: 240px;
transform: scale(0.4) rotate(90deg);
}
.redbg .smallstar:nth-child(3) {
top: 55px;
left: 292px;
transform: scale(0.4) rotate(125deg);
}
.redbg .smallstar:nth-child(4) {
top:100px;
left: 266px;
transform: scale(0.4) rotate(72deg);
}
.redbg .smallstar:nth-child(5) {
top: 145px;
left: 240px;
transform: scale(0.4) rotate(90deg);
}
</style>
</head>
<body>
<!-- 此处写代码 -->
<section>
<div class="redbg">
<div class="bigstar">
<div class="star1"></div>
<div class="star2"></div>
<div class="star3"></div>
</div>
<div class="smallstar">
<div class="star1"></div>
<div class="star2"></div>
<div class="star3"></div>
</div>
<div class="smallstar">
<div class="star1"></div>
<div class="star2"></div>
<div class="star3"></div>
</div>
<div class="smallstar">
<div class="star1"></div>
<div class="star2"></div>
<div class="star3"></div>
</div>
<div class="smallstar">
<div class="star1"></div>
<div class="star2"></div>
<div class="star3"></div>
</div>
</div>
</section>
</body>
</html>1回答
好帮手慕小李
2022-07-30
同学你好,首先代码可以实现效果很棒,另使用宽度高度为0的div设置三角形没有什么特殊的角度设置,但方向可以通过border透明度实现如下:

效果如下:

关于等边三角形设置我们使用上面老师用的方式就可以实现,首先要保证正方形边长相同,这样就可以实现了。
同学所说的使用scaleY这个属性是垂直方向的缩放,那么相当于竖向拉伸,这样同学在做旋转效果就会不一样。
同学可以尝试在.bigstar类名上添加transform: scaleY(3.5);属性看看它的效果。
祝学习愉快!
相似问题