麻烦老师查看作业,谢谢。
来源:2-13 编程练习
DanielDu87
2021-12-28 18:26:52
作业提示里的伪元素我好像没用到,能给个思路吗
<!DOCTYPE HTML> <html lang="zh"> <head> <meta charset="UTF-8"> <title>标题</title> <style> * { margin: 0; padding: 0; } .b1 { background-color: red; height: 200px; margin: 100px auto; width: 300px; position: relative; color: yellow; } .b1 .d1 { width: 40px; height: 40px; position: absolute; top: 20px; left: 25px; font-size: 45px; font-weight: bold; text-align: center; line-height: 40px; } .b1 div:nth-child(-n+5) { position: absolute; width: 40px; height: 40px; } .b1 .d2 { left: 80px; top: -5px; transform: rotate(-45deg); } .b1 .d3 { left: 95px; top: 18px; transform: rotate(-30deg); } .b1 .d4 { left: 95px; top: 50px; } .b1 .d5 { left: 70px; top: 75px; transform: rotate(30deg); } </style> </head> <body> <div class="b1"> <div class="d1">★</div> <div class="d2">★</div> <div class="d3">★</div> <div class="d4">★</div> <div class="d5">★</div> </div> </body> </html>
1回答
好帮手慕然然
2021-12-28
同学你好,通常五角星不会直接像同学所写的那样来实现,而是要使用元素来制作,这样才会用到伪元素。
建议同学可以参考如下代码,来实现五星红旗的效果:
<!DOCTYPE HTML> <html> <head> <meta charset="utf-8"> <title>2-3</title> <style type="text/css"> /* 国旗背景 */ .vn-flag { width: 600px; height: 400px; background-color: rgb(218, 37, 29); position: relative; margin: 0 auto; } /* 绘制五角星: 一个五角星可以由三个三角形拼接而来, 这样就需要由三个元素来制作三个三角形, 此时::before和::after伪元素可以代替 两个真实元素来制作三角形,这样就不用 再另外定义两个真实元素,代码看起来也更清晰 */ /* 绘制第一个三角形 */ .vn-flag .stars { position: absolute; left: 90px; top: 120px; border: 30px solid transparent; border-top: 20px solid yellow; } /* 绘制第二个三角形,并调整位置 */ .vn-flag .stars::before { content: ""; position: absolute; left: -44px; top: -30px; border: 30px solid transparent; border-top: 20px solid yellow; transform: rotate(70deg); } /* 绘制第三个三角形,并调整位置,与其它两个三角形正好拼接成一个五角星 */ .vn-flag .stars::after { content: ""; position: absolute; left: -18px; top: -30px; border: 30px solid transparent; border-top: 20px solid yellow; transform: rotate(292deg); } /* 调整第一个五角星的位置和大小 */ .vn-flag .one{ transform: scale(1.8); } /* 调整第二个五角星的位置和大小 */ .vn-flag .two{ left: 180px; top: 30px; transform: rotate(25deg) scale(0.6); } /* 调整第三个五角星的位置和大小 */ .vn-flag .three{ left: 220px; top: 80px; transform: rotate(45deg) scale(0.6); } /* 调整第四个五角星的位置和大小 */ .vn-flag .four{ left: 220px; top: 130px; transform: rotate(65deg) scale(0.6); } /* 调整第五个五角星的位置和大小 */ .vn-flag .five{ left: 180px; top: 180px; transform: rotate(85deg) scale(0.6); } </style> </head> <body> <div class="vn-flag"> <!-- 大五角星 --> <div class="stars one"></div> <!-- 四个小五角星 --> <div class="stars two"></div> <div class="stars three"></div> <div class="stars four"></div> <div class="stars five"></div> </div> </body> </html>
祝学习愉快!
相似问题