通过三角形拼成五角星,具体尺寸是怎么计算的

通过三角形拼成五角星,具体尺寸是怎么计算的

http://img1.sycdn.imooc.com//climg/5dc624830903fe1101580148.jpg然后是如何用定位拼的(我能看到代码,没有思路,)

尺寸有两点不懂:1.border和三角形的关系(如:border-left:50px;代表的是哪个尺寸)

2.3个三角形的关系(如:两个大的三角形尺寸确定后,第三个小的怎么给尺寸,为什么)

正在回答

登陆购买课程后可参与讨论,去登陆

1回答

同学你好,针对同学的问题解答如下:

1.五角星的形成:可以先实现一个三角形:

http://img1.sycdn.imooc.com//climg/5dcf8f1e09d0700703140045.jpg

http://img1.sycdn.imooc.com//climg/5dcf8efe098732b104510247.jpg

效果:

http://img1.sycdn.imooc.com//climg/5dcf8f250979818803440138.jpg

然后再通过伪元素,再添加一个三角形:

http://img1.sycdn.imooc.com//climg/5dcf8f4a099b8cde04830247.jpg

效果:

http://img1.sycdn.imooc.com//climg/5dcf8f79097b460205220221.jpg

然后通过旋转、定位等方式让它们重叠在一起:

http://img1.sycdn.imooc.com//climg/5dcf8f8e096696c303290122.jpg

效果:

http://img1.sycdn.imooc.com//climg/5dcf90ee09e6c98203430227.jpg

再添加伪元素,添加一个三角形:

http://img1.sycdn.imooc.com//climg/5dcf8fd3090b3e4504310244.jpg

效果:

http://img1.sycdn.imooc.com//climg/5dcf8fdb097d363d04290229.jpg

旋转并定位,让它重叠在另外两个上面:

http://img1.sycdn.imooc.com//climg/5dcf8ff30925411403530121.jpg

这样一个五角星就布局完成了:

http://img1.sycdn.imooc.com//climg/5dcf900f09aae42403870291.jpg

之后改为同一个颜色(黄色)即可。其实不需要两个大的三角形,一个小的三角形去布局,这里需要三个一样大的三角形就可以拼成一个五角星。(当然这些定位、旋转数据都是自己一点一点调试的。)

2.可以通过border的表现形式看下三角形和边框的关系 ,给一个元素边框设置如下:

http://img1.sycdn.imooc.com//climg/5dcf913c09b97c0403090163.jpg

观察如下 ,border表现为梯形:

http://img1.sycdn.imooc.com//climg/5dcf914b09fd3b7801580150.jpg

当宽高不断减少时 , border会越趋向于三角形 , 如下:

http://img1.sycdn.imooc.com//climg/5dcf915a09803bdd00610060.jpg

当宽高为0时,border变成了三角 , 如下:

http://img1.sycdn.imooc.com//climg/5dcf9167091b689a00560056.jpg

所以,如上例子,border-left就是左边蓝色的三角形。建议同学自己动手测试一下,更好理解。

如果我的回答帮到了你,欢迎采纳,祝学习愉快~

  • 迷失的小麦 提问者 #1
    五角形的外面要套一个div吗?为什么
    2019-11-16 14:12:49
  • 迷失的小麦 提问者 #2
    算角度容易要开根号,怎么解决?不然不精确
    2019-11-16 14:30:46
  • 迷失的小麦 提问者 #3
    移动使三角形重合不能计算吧?
    2019-11-16 14:36:16
问题已解决,确定采纳
还有疑问,暂不采纳

恭喜解决一个难题,获得1积分~

来为老师/同学的回答评分吧

0 星
请稍等 ...
意见反馈 帮助中心 APP下载
官方微信

在线咨询

领取优惠

免费试听

领取大纲

扫描二维码,添加
你的专属老师