你一个div,你能用CSS绘制一个正三角形、正方形、正五边形、正六边形、正七边形、正八边形吗?
今天我们来玩一个有趣的CSS实验,想象下,只用一个div,你能用CSS绘制一个正三角形、正方形、正五边形、正六边形、正七边形、正八边形吗?今天笔者带着大家一起动手实践下这个有趣的联系,由于正多边形用到不少三角函数计算,为了方便计算,这里正多边形统一设定为100px,为啥只做到正八边形?因为就一个div最多只能做到正八边形。
正三角形不需要用到伪元素,只需要设定div本身的边框宽度即可产生,先来看一下正三角形的边长与中线,若边长为100px,则中线四舍五入就是87px ( 100 x sin(60) = 87 )。
因此我们要将div的长宽都设为0,接着把底部border的宽度设为87px,左右的border宽度设为50px (颜色设为透明transparent ),就可以做出一个漂亮的三角形。
width:0; height:0; border-width:0 50px 87px ; border-style:solid; border-color:transparent transparent #095;
正方形应该是最简单的,只要设定长宽设定为同样数值就可以了,不过其实还有另外两种方法,第一种你可以把长宽设为0,把上下左右的border设为50px也可以,第二种则是高度设为0,宽度设为100px,然后某个边宽也设为100,都是可以的。
.a{ width:100px; height:100px; background:#c00; } .b{ width:0; height:0; border-width:50px; border-style:solid; border-color:#095; } .c{ width:100px; height:0; border-width:0 0 100px; border-style:solid; border-color:#069; }
正五边形就需要进入基本的三角函数领域了,其实知道了原理还是蛮简单的。让我们先把正五边形分解,用原本的div作为上方的三角形,然后用一个伪元素制作下方的梯形,因为正五边形每边的夹角为108度,所以可以藉由三角函数计算出上方三角形的高度为59px ( 100 x cos(54) ),宽度为192px ( 100 x sin(54) x 2 ),下方梯形的高度为95px ( 100 x sin(72) ),长边的宽度跟上面的三角形一样都是192px。
了解原理之后,就可以利用伪元素来搭配制作啰!
.a{ position:relative; width:0; height:0; border-width:0 81px 59px; border-style:solid; border-color:transparent transparent #069; } .a:before{ position:absolute; content:""; top:59px; left:-81px; width:100px; height:0; background:none; border-width:95px 31px 0; border-style:solid; border-color:#069 transparent transparent; }
正六边形的每个夹角是120度,如果以纯CSS的方向来看的话,就是把正五边形上面的三角形改变一下,就可以做出正六边形,也就是变成上下两个梯形的组合而已,梯形的长边为200px ( 100 x cos(60) x 2 + 100 ),梯形的高度为87px ( 100 x sin(60) )。
所以只要把正五边形的CSS稍作修改就可以做出正六边形了。
.a{ position:relative; width:100px; height:0; border-width:0 50px 87px; border-style:solid; border-color:transparent transparent #f80; } .a:before{ position:absolute; content:""; top:87px; left:-50px; width:100px; height:0; background:none; border-width:87px 50px 0; border-style:solid; border-color:#f80 transparent transparent; }
正七边形开始就必须再使用after 这个伪元素了,因为正七边形必须要拆解为三个区块,分别是用原本的div 作为上面的三角形,一个伪元素作为中间的梯形,然后另一个伪元素作为底部的梯形,正七边形的夹角比较特殊不是整数,而是128又4/7 度,大概取到小数第二位是128.57,所以计算起来结果就如下图所示,重点就是必须要清楚地知道长宽是多少。
有了长宽之后,就开始用CSS来写啰!
.a{ position:relative; width:0; height:0; border-width:0 90px 43px; border-style:solid; border-color:transparent transparent #09c; } .a:before{ position:absolute; content:""; top:140px; left:-112px; width:100px; height:0; border-width:78px 62px 0; border-style:solid; border-color:#09c transparent transparent; } .a:after{ position:absolute; content:""; top:43px; left:-112px; width:180px; height:0; border-width:0 22px 97px; background:none; border-style:solid; border-color:transparent transparent #09c; }
正八边形其实就是把正七边形上面的三角形变成梯形,然后中间的梯形变成矩形就搞定了,正八边形的夹角为135 度,计算出来的各个区域长宽如下图。
同样的了解原理,CSS做起来就简单多啰!
.a{ position:relative; width:100px; height:0; border-width:0 71px 71px; border-style:solid; border-color:transparent transparent #f69; } .a:before{ position:absolute; content:""; top:171px; left:-71px; width:100px; height:0; border-width:71px 71px 0; border-style:solid; border-color: #f69 transparent transparent; } .a:after{ position:absolute; content:""; top:71px; left:-71px; width:242px; height:0; border-width:0 0 100px; background:none; border-style:solid; border-color:transparent transparent #f69; }
以上就是纯粹利用CSS做出来的单一div的正多边形变换,是不是很好玩,一个div能做出来这么多形状,是不是很过瘾,不过瘾的话,我们加点料来点动画,其实加上动画效果,就可以做出像下面范例这个样子的变换动画啰!不过下面的范例笔者再最外层另外用一个div进行包裹,避免因为大小的变换造成衔接处的不自然,大家可以参考看看喔!
css部分
body{ margin:100px; } .s{ position:absolute; -webkit-animation:s 5s infinite linear alternate; } .a{ position:relative; width:0; height:0; border-width:0 50px 87px ; border-style:solid; border-color:transparent transparent #095; -webkit-animation:a 5s infinite linear alternate; } .a:before,.a:after{ position:absolute; content:""; border-width:0; border-style:solid; } .a:before{ -webkit-animation:ab 5s infinite linear alternate; } .a:after{ -webkit-animation:af 5s infinite linear alternate; } @-webkit-keyframes a{ 0%,5%{ width:0; height:0; border-width:0 50px 87px ; border-color:transparent transparent #095; } 23%{ width:0; height:0; border-width:0 50px 0 ; border-color:transparent transparent #c00; } 42%{ width:0; height:0; border-width:0 81px 59px; border-color:transparent transparent #069; } 61%{ width:100px; height:0; border-width:0 50px 87px; border-color:transparent transparent #f80; } 80%{ width:0; height:0; border-width:0 90px 43px; border-color:transparent transparent #09c; } 95%,100%{ width:100px; height:0; border-width:0 71px 71px; border-color:transparent transparent #f69; } } @-webkit-keyframes ab{ 0%,5%{ top:87px; left:-50px; width:100px; height:0; background:#095; border-width:0; border-color:#095 transparent transparent; } 22.99%{ top:0; left:-50px; width:100px; height:100px; background:#c00; border-width:0; border-color:#c00 transparent transparent; } 23%{ top:0; left:-50px; width:100px; height:0; background:none; border-width:100px 0 0; border-color:#c00 transparent transparent; } 42%{ top:59px; left:-81px; width:100px; height:0; background:none; border-width:95px 31px 0; border-color:#069 transparent transparent; } 61%{ top:87px; left:-50px; width:100px; height:0; border-width:87px 50px 0; border-color:#f80 transparent transparent; } 80%{ top:140px; left:-112px; width:100px; height:0; border-width:78px 62px 0; border-color:#09c transparent transparent; } 95%,100%{ top:171px; left:-71px; width:100px; height:0; border-width:71px 71px 0; border-color: #f69 transparent transparent; } } @-webkit-keyframes af{ 0%,61%{ top:87px; left:-50px; width:200px; height:0; border-width:0; background:none; border-color:transparent transparent #f80; } 80%{ top:43px; left:-112px; width:180px; height:0; border-width:0 22px 99px; background:none; border-style:solid; border-color:transparent transparent #09c; } 95%,100%{ top:71px; left:-71px; width:242px; height:0; border-width:0 0 100px; background:none; border-style:solid; border-color:transparent transparent #f69; } } @-webkit-keyframes s{ 0%,5%{ -webkit-transform:translateX(0) translateY(0) scale(1); } 23%{ -webkit-transform:translateX(-15px) translateY(-10px) scale(.9); } 42%{ -webkit-transform:translateX(-50px) translateY(-20px) scale(.8); } 61%{ -webkit-transform:translateX(-70px) translateY(-25px) scale(.7); } 80%{ -webkit-transform:translateX(-80px) translateY(-25px) scale(.6); } 95%,100%{ -webkit-transform:translateX(-100px) translateY(-25px) scale(.5); } }
html部分
<div class="s"> <div class="a"></div> </div>
今天的内容就到这里,我们的确用一个div,再结合三角函数的相关知识,一口气绘制完了正三角形、正方形、正五边形、正六边形、正七边形、正八边形,是不是很有趣呢。你不妨按照上述示例,亲自动手试试哦。
天手动配置成功,分享一下,欢迎各位讨论,不是极客。
现在很多家用光纤网络很多朋友都说卡顿,网速慢。大部分原因:
1.百兆带宽用百兆路由
2.光猫端网线在百兆口上
3.千兆路由网线在百兆口上
4.用的不是千兆网线
5.光猫配置低兼职任务多
解决办法
1.确定是家里宽带是百兆以上就要换千兆路由器
2.3.看清楚标识,一般机器上边有提示,路由器选购的时候注意介绍
4.六类或超六类千兆网线,连接光猫千兆口和路由器WAN口
5.这个有一点复杂,现在很多光猫来拨号,发射无线信号,还兼职dhcp,iptv,voip,然而配置都没有路由器高,所以会有死机一样的情况,网络突然断了。。。
解决办法,光猫桥接,方法需要百度或者某宝有做光猫破解的,如果你有动手能力也不复杂,改动1个地方就行。然后停了光猫的dhcp,wlan等。让光猫做好自己的信号转换工作就可以。
我是用的联通,iptv用户请谨慎操作,我没用着iptv,光猫zte f677v2,登录光猫后台,192.168.1.1/cu.html,用的管理员登录,密码一般是默认密码,也有破解方法,百度。tr069,我没删,说是联通用来广发配置信息用的,远程管理,一般不会针对某个账户下发配置。把ipv4/v6下的internet链接改为桥接,删除原来那个就可以。重启以后路由拨号。完成。
有什么问题,欢迎指点讨论
“撞树”“葛优躺”之后
魔都“公园养生族”们
又有了新玩法
最近
上海多座公园出现了很多
“晒背族”
▽
公园栈道上的晒背族 新民晚报记者 金旻矣 摄(除注明外,下同)
现场:女士撩衣被指“辣眼睛”
昨天(8月2日)9时多,记者来到上海和平公园。空中栈道上,有三位女士戴着遮阳帽和墨镜,面前架着遮阳伞,脱下鞋袜坐在自带的布上晒背。其中两人将后背上衣撩起,内衣解开,整个背部暴露在阳光下,皮肤已微微发红。虽然她们选择了栈道尽头,但从地面望去,仍能看到裸露的身体。
“你去网上搜,现在很流行的。我们晒了好几天了,比桑拿还舒服,既不闷,又排湿气,效果很好。”面对记者搭讪,一名女士说。她还表示,架伞是为了不被面前的探头拍到。至于为何不在家里晒,对方称“公园空气好呀!”
从地面望去,可以清楚看到女士们的后背
附近一名保安表示,最近几周“晒背族”一下子多了起来,每天上午八九时前和下午三四时后是高峰。
另一名保安说,有些女士直接撩起上衣晒,看到保安又迅速将上衣放下,若无其事坐在垫子上。因此,对于特别不雅观的“晒背族”,保安都会用执法记录仪取证后再去劝阻。
当天下午1时多,记者又来到复兴公园。或许是被40℃的高温吓退,在园内转了大半圈并没有发现“晒友”。一名保安说:“这个点这么热,没有人晒。一般都是上午8时到10时,下午3时到5时,会有人在草坪和长椅上晒背。如果看到他们脱掉衣服,我们是会上前制止的。”
线上:约“晒友”一起“海豹趴”
在社交平台上
“三伏晒背”
俨然成了时下最流行的养生方式
图片来源:小红书网友
在小红书上
以“晒背,上海”为关键词搜索
已有1800多篇笔记
其中,去公园晒背更是流行
中山公园、世纪公园、
和平公园、世博文化公园等
因有大草坪或景色优美而被频频提及
不少网友征集“晒友”
一起约“公园瑜伽晒背局”
和众多“晒友”一起
哪怕社恐也无须害怕
网友发布的照片显示
公园“晒背族”中
年轻女孩多身着瑜伽服趴着晒
男士喜欢赤裸上身穿短裤坐着晒
也有上年纪的女性解开内衣晒
园方:两边投诉我们很为难
针对这种新现象
公园管理方怎么看?
和平公园园长胡聿丞坦言
公园一向以包容的心态
满足游客需求
近期却被“晒背”搞得心力交瘁
来公园晒背的
由于衣着暴露常被其他游客投诉
然而园方劝阻后
又常被“晒背族”投诉
▽
很多年轻家长很反感,觉得这些人不穿内衣撩起衣服晒,影响小孩身心健康。一些老年人也常和保安反映‘太难看’,让他们快去管管。
根据我们公园的实际情况,园内不允许铺瑜伽垫,但对方非要我们拿出‘红头文件’,不然就投诉。针对赤膊的,我们管理收效也很差,因为保安没有执法权,多劝几句就被投诉态度恶劣。有些老人趴着晒,长时间不动,保安担心他们中暑,只好经常去问问,结果反被投诉骚扰。
两边都来投诉
我们成了‘三夹板’
......
黄浦区绿化管理所
公园管理科科长臧军表示
目前一般是从文明游园
或保护个人隐私的角度
去劝晒背族们不要赤膊或暴露敏感部位
甚至有的公园在无奈之下
只能派几名保安
将“辣眼睛”的“晒友”围起来
为其充当“人肉屏风”
中医认为三伏天晒背,确实可以祛除湿气和寒气,但也有医生指出部分人群并不适宜晒背,例如阳亢或阴虚者。有网友称,晒背后出现了晒伤甚至中暑的症状,提醒大家“晒背需谨慎”,最好不要光膀子,可穿一件薄衣。
“我们也很担心,在高温下暴晒20分钟,且不说会不会晒伤,这是很可能得热射病的!”臧军说。
采访对象供图
市民:个人喜好勿影响别人
新民晚报记者从上海公园管理部门获悉,“公园晒背风”今夏突然盛行,这两周愈演愈烈,相应的投诉也增多,给管理带来了新挑战。虽然《上海市公园文明游园守则》(2018版)第五条明确,游客应“自觉维护游园秩序,不随意卧躺,不赤膊游园”,但针对“晒背”这一新现象,并没有相关条文禁止,因此在实际管理时面临“无据可依”的困境。
记者在采访中发现,很多市民并不赞同这种做法,认为公共场合衣着裸露“太不雅观”。一位正在遛娃的家长表示,公园里孩子很多,有些“晒背族”穿得非常暴露,担心会对孩子造成不良影响。“公园是公共空间,虽然这是个人喜好,但前提和底线应该是不能影响别人的游园体验。”她说。
采访对象供图
而在12345市民服务热线中,7月以来也有针对“赤膊晒背”的投诉。比如一位市民反映,康健公园早晨常有男子赤膊晒背,在公共场合这样,既不文明也不雅观。
“公园不单是锻炼、养生的场所,也是很多人散步或欣赏花草的地方。虽然‘晒背族’认为自己躲在偏僻角落无碍观瞻,但公园的每个角落都会有游客去走走逛逛。”胡聿丞表示,目前从游客反响来看,反对不雅晒背的呼声更高,希望“晒背族”能遵守公序良俗,在适宜的场所养生。
公园“晒背族”的出现
你怎么看?
新民晚报(记者 金旻矣 志愿者 张梦滑),综合小红书网友
来源: 新民晚报
*请认真填写需求信息,我们会在24小时内与您取得联系。