你一個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時多,記者來到上海和平公園??罩袟5郎?,有三位女士戴著遮陽帽和墨鏡,面前架著遮陽傘,脫下鞋襪坐在自帶的布上曬背。其中兩人將后背上衣撩起,內衣解開,整個背部暴露在陽光下,皮膚已微微發紅。雖然她們選擇了棧道盡頭,但從地面望去,仍能看到裸露的身體。
“你去網上搜,現在很流行的。我們曬了好幾天了,比桑拿還舒服,既不悶,又排濕氣,效果很好?!泵鎸τ浾叽钣?,一名女士說。她還表示,架傘是為了不被面前的探頭拍到。至于為何不在家里曬,對方稱“公園空氣好呀!”
從地面望去,可以清楚看到女士們的后背
附近一名保安表示,最近幾周“曬背族”一下子多了起來,每天上午八九時前和下午三四時后是高峰。
另一名保安說,有些女士直接撩起上衣曬,看到保安又迅速將上衣放下,若無其事坐在墊子上。因此,對于特別不雅觀的“曬背族”,保安都會用執法記錄儀取證后再去勸阻。
當天下午1時多,記者又來到復興公園?;蛟S是被40℃的高溫嚇退,在園內轉了大半圈并沒有發現“曬友”。一名保安說:“這個點這么熱,沒有人曬。一般都是上午8時到10時,下午3時到5時,會有人在草坪和長椅上曬背。如果看到他們脫掉衣服,我們是會上前制止的。”
線上:約“曬友”一起“海豹趴”
在社交平臺上
“三伏曬背”
儼然成了時下最流行的養生方式
圖片來源:小紅書網友
在小紅書上
以“曬背,上?!睘殛P鍵詞搜索
已有1800多篇筆記
其中,去公園曬背更是流行
中山公園、世紀公園、
和平公園、世博文化公園等
因有大草坪或景色優美而被頻頻提及
不少網友征集“曬友”
一起約“公園瑜伽曬背局”
和眾多“曬友”一起
哪怕社恐也無須害怕
網友發布的照片顯示
公園“曬背族”中
年輕女孩多身著瑜伽服趴著曬
男士喜歡赤裸上身穿短褲坐著曬
也有上年紀的女性解開內衣曬
園方:兩邊投訴我們很為難
針對這種新現象
公園管理方怎么看?
和平公園園長胡聿丞坦言
公園一向以包容的心態
滿足游客需求
近期卻被“曬背”搞得心力交瘁
來公園曬背的
由于衣著暴露常被其他游客投訴
然而園方勸阻后
又常被“曬背族”投訴
▽
很多年輕家長很反感,覺得這些人不穿內衣撩起衣服曬,影響小孩身心健康。一些老年人也常和保安反映‘太難看’,讓他們快去管管。
根據我們公園的實際情況,園內不允許鋪瑜伽墊,但對方非要我們拿出‘紅頭文件’,不然就投訴。針對赤膊的,我們管理收效也很差,因為保安沒有執法權,多勸幾句就被投訴態度惡劣。有些老人趴著曬,長時間不動,保安擔心他們中暑,只好經常去問問,結果反被投訴騷擾。
兩邊都來投訴
我們成了‘三夾板’
......
黃浦區綠化管理所
公園管理科科長臧軍表示
目前一般是從文明游園
或保護個人隱私的角度
去勸曬背族們不要赤膊或暴露敏感部位
甚至有的公園在無奈之下
只能派幾名保安
將“辣眼睛”的“曬友”圍起來
為其充當“人肉屏風”
中醫認為三伏天曬背,確實可以祛除濕氣和寒氣,但也有醫生指出部分人群并不適宜曬背,例如陽亢或陰虛者。有網友稱,曬背后出現了曬傷甚至中暑的癥狀,提醒大家“曬背需謹慎”,最好不要光膀子,可穿一件薄衣。
“我們也很擔心,在高溫下暴曬20分鐘,且不說會不會曬傷,這是很可能得熱射病的!”臧軍說。
采訪對象供圖
市民:個人喜好勿影響別人
新民晚報記者從上海公園管理部門獲悉,“公園曬背風”今夏突然盛行,這兩周愈演愈烈,相應的投訴也增多,給管理帶來了新挑戰。雖然《上海市公園文明游園守則》(2018版)第五條明確,游客應“自覺維護游園秩序,不隨意臥躺,不赤膊游園”,但針對“曬背”這一新現象,并沒有相關條文禁止,因此在實際管理時面臨“無據可依”的困境。
記者在采訪中發現,很多市民并不贊同這種做法,認為公共場合衣著裸露“太不雅觀”。一位正在遛娃的家長表示,公園里孩子很多,有些“曬背族”穿得非常暴露,擔心會對孩子造成不良影響?!肮珗@是公共空間,雖然這是個人喜好,但前提和底線應該是不能影響別人的游園體驗?!彼f。
采訪對象供圖
而在12345市民服務熱線中,7月以來也有針對“赤膊曬背”的投訴。比如一位市民反映,康健公園早晨常有男子赤膊曬背,在公共場合這樣,既不文明也不雅觀。
“公園不單是鍛煉、養生的場所,也是很多人散步或欣賞花草的地方。雖然‘曬背族’認為自己躲在偏僻角落無礙觀瞻,但公園的每個角落都會有游客去走走逛逛。”胡聿丞表示,目前從游客反響來看,反對不雅曬背的呼聲更高,希望“曬背族”能遵守公序良俗,在適宜的場所養生。
公園“曬背族”的出現
你怎么看?
新民晚報(記者 金旻矣 志愿者 張夢滑),綜合小紅書網友
來源: 新民晚報
*請認真填寫需求信息,我們會在24小時內與您取得聯系。