精品欧美一区二区三区在线观看 _久久久久国色av免费观看性色_国产精品久久在线观看_亚洲第一综合网站_91精品又粗又猛又爽_小泽玛利亚一区二区免费_91亚洲精品国偷拍自产在线观看 _久久精品视频在线播放_美女精品久久久_欧美日韩国产成人在线

純CSS從三角形進化到六邊形

開發 前端
今天要學習一下面試中常考的一個css題目,用css畫多邊形。這一次以三角形、四邊形、五邊形、六邊形為例,首先開始之前需要了解一些必要的知識。

 [[420151]]

今天要學習一下面試中常考的一個css題目,用css畫多邊形。這一次以三角形、四邊形、五邊形、六邊形為例,首先開始之前需要了解一些必要的知識。

一、基礎知識儲備

本次將利用純CSS知識來繪制一些形狀,為了繪制這些形狀,首先補習一下所需的CSS基礎知識點——css盒模型。

盒模型.png

由上圖可以看出標準的盒模型是由content,padding,border,margin組成的,我們用代碼看一下具體情況吧。

  1. <!--HTML部分,此部分代碼若是不變,后面將復用不在贅述--> 
  2. <div id="main"></div> 
  1. /*css部分*/  
  2. #main {  
  3.   width: 100px; 
  4.   height: 100px; 
  5.   border: 200px solid red;  

效果圖如下:

二、實戰

光說不練假把式,現在就由利用這些基本的CSS屬性來繪制常見的三角形、四邊形、五邊形……

2.1 四邊形

若是不能用直接使用background-color屬性來畫一個四邊形,由上圖我們可以看出若是讓content的寬高全部設為0,并設置border的寬高,那么我們就可以得到一個僅由border構成的四邊形了,四邊形又分為正方形、平行四邊形、矩形等等,這里就讓我們使用border來實現上述中的三種圖形吧。

2.1.1 正方形

首先讓我們來實現一下最簡單的正方形吧。

  1. #main { 
  2.   width: 0px; 
  3.   height: 0px; 
  4.   border-bottom: 200px solid red; 
  5.   border-left: 200px solid black; 
  6.   border-right: 200px solid blue; 
  7.   border-top: 200px solid pink; 

效果如下圖所示:

2.1.2 矩形

在2.1.1中我們已經實現了通過使用border來實現正方形,那么我們接下來實現一下矩形吧,根據所學過的數學知識我們只需用將正方形的調整正方形的長寬使其長≠寬即可,接下來讓我們來實現一下吧。

  1.   width: 0px; 
  2.   height: 0px; 
  3.   border-bottom: 200px solid red; 
  4.   border-left: 100px solid red; 
  5.   border-right: 100px solid red; 
  6.   border-top: 200px solid red; 

效果如下圖所示:

矩形.png

2.1.3 平行四邊形

PS:平行四邊形的實現需要使用兩個三角形來實現,故此這里建議先跳過,請先前往閱讀2.2中查看三角形的實現,再折返查看此處的平行四邊行的方法。

此處便默認您已閱讀完了2.2的內容了,接下來實現一下平行四邊形。

  1. <div id="wrapper"
  2.  <div class="public"></div> 
  3.  <div class="public move"></div> 
  4. </div> 
  1. *{ 
  2.    margin: 0; 
  3. #wrapper { 
  4.    position: relative
  5. .public { 
  6.    width: 0px; 
  7.    height: 0px; 
  8.   border-bottom: 200px solid red; 
  9.   border-left: 200px solid transparent; 
  10.   border-right: 200px solid transparent; 
  11.   border-top: 200px solid transparent; 
  12.   position: absolute
  13. .move { 
  14.   transform: rotate(180deg); 
  15.   top: 200px; 
  16.   left: 200px; 

效果如下圖所示:

截圖

2.2 三角形

目前為止,最為簡單的四邊形已完成,那么此時是不是已經有感覺了呢!我們接著往下走,既然border可以實現四邊形,那么三角形按道理應該也不在話下,當然三角形里面也有很多很多種類,按照角劃分,可分為銳角三角形、直角三角形、鈍角三角形;下面分別來實現一下。

2.2.1 銳角三角形

首先我們來看看在content的寬高都是0的情況下,border的left,right,top,bottom四個所占據的情況吧。

  1. #main { 
  2.   width: 0px; 
  3.   height: 0px; 
  4.   border-bottom: 200px solid red; 
  5.   border-left: 200px solid black; 
  6.   border-right: 200px solid blue; 
  7.   border-top: 200px solid pink; 

效果圖如下:

從圖可以看出left,right,top,bottom都是占著一個三角形的情況,那么當我們需要某個三角形時我們只需要讓其他三個三角形隱藏起來不就可以了,我們可以用transparent屬性值來隱藏border,那么來實現一下吧。

  1. #main { 
  2.   width: 0px; 
  3.   height: 0px; 
  4.   border-bottom: 200px solid red; 
  5.   border-left: 200px solid transparent; 
  6.   border-right: 200px solid transparent; 
  7.   border-top: 200px solid transparent; 

效果如圖所示:

2.2.2 直角三角形

到此我們可以畫出銳角三角形了,直角三角形我們根據上上圖可以得到,只要顯示兩個border邊即可,代碼試一下吧

  1. #main { 
  2.   width: 0px; 
  3.   height: 0px; 
  4.   border-bottom: 200px solid red; 
  5.   border-left: 200px solid red; 
  6.   border-right: 200px solid transparent; 
  7.   border-top: 200px solid transparent; 

效果如圖所示:

2.2.3 鈍角三角形

上圖證實了之前的想法的可行性了。那么接下來讓我們想想鈍角三角形該怎么實現呢?按照之前的想法是不行的,那么我們就需要改變一下想法。

我們可以用兩個直角三角形,將小的直角三角形覆蓋在大的上面,讓我們試一下吧!!

  1. <div id="main1"></div> 
  2. <div id="main2"></div> 
  1. #main1 { 
  2.   width: 0px; 
  3.   height: 0px; 
  4.   border-bottom: 200px solid red; 
  5.   border-left: 200px solid transparent; 
  6. #main2 { 
  7.   width: 0px; 
  8.   height: 0px; 
  9.   border-bottom: 200px solid black; 
  10.   border-left: 150px solid transparent; 
  11.   position: absolute
  12.   /*這里8px是瀏覽器中的margin自帶的間距,之前沒有處理*/ 
  13.   top: 8px; 
  14.   left: 58px; 

效果圖如下所示:

這次通過絕對定位來控制小的直角三角形,那么我們可以通過控制黑色三角形的顏色來顯示鈍角三角形。

2.3 五邊形

三角形都已經學會了,那么很多圖形都可以通過三角形拼湊得來,就以五邊形為例,這里將以多個三角形來畫出五邊形。

  1. <div id="wrapper"
  2.     <div class="main1 tool"></div> 
  3.     <div class="main2 tool"></div> 
  4.     <div class="main3 tool"></div> 
  5.     <div class="main4 tool"></div> 
  6.     <div class="main5 tool"></div> 
  7. </div> 
  1. *{ 
  2.     margin: 0; 
  3. #wrapper { 
  4.     position: relative
  5.     top: 300px; 
  6.     margin-left: 300px; 
  7. .main2 { 
  8.     transform: rotate(72deg); 
  9. .main3 { 
  10.     transform: rotate(144deg); 
  11. .main4 { 
  12.     transform: rotate(216deg); 
  13. .main5 { 
  14.     transform: rotate(288deg); 
  15. .tool{ 
  16.     width: 0px; 
  17.     height: 0px; 
  18.     border-right: 58px solid transparent; 
  19.     border-left: 58px solid transparent; 
  20.     border-bottom: 160px solid red; 
  21.     position: absolute
  22.     top: 0; 
  23.     left: 0; 

效果如下圖所示:

五邊形.png

實現五邊形的主要難點在于border的三個邊的取值,以及旋轉的角度。

2.4 六邊形

到目前為止三角行、四、五邊形的三種形式都實現了一遍,他們均是通過border來實現的,那么讓我們來想一下怎么畫出一個六邊形,有條件的可以在紙上畫畫,我們可以把一個五邊形分成6個等邊三角形,讓我們通過上面所學知識來實現一下六邊形吧!

  1. <div id="wrapper"
  2.   <div class="main1 tool"></div> 
  3.   <div class="main2 tool"></div> 
  4.   <div class="main3 tool"></div> 
  5.   <div class="main4 tool"></div> 
  6.   <div class="main5 tool"></div> 
  7.   <div class="main6 tool"></div> 
  8. </div> 
  1. *{ 
  2.   margin: 0; 
  3. #wrapper { 
  4.   position: relative
  5.   top: 300px; 
  6.   margin-left: 300px; 
  7. .main2 { 
  8.   transform: rotate(60deg); 
  9. .main3 { 
  10.   transform: rotate(120deg); 
  11. .main4 { 
  12.   transform: rotate(180deg); 
  13. .main5 { 
  14.   transform: rotate(240deg); 
  15. .main6 { 
  16.   transform: rotate(300deg); 
  17. .tool{ 
  18.   width: 0px; 
  19.   height: 0px; 
  20.   border-right: calc(60px / 1.732) solid transparent; 
  21.   border-left: calc(60px / 1.732) solid transparent; 
  22.   border-bottom: 60px solid red; 
  23.   transform-origin: top
  24.   position: absolute
  25.   top: 0; 
  26.   left: 0; 

通過上面的方法實現五邊形,這邊難點主要是畫出等邊三角形。

上面的方法已經實現了,讓我們想想其他的方法實現一下吧,這里我們將通過三個四邊形實現五邊形,讓我們一下實驗一下吧!!

  1. <div id="wrapper"
  2.   <div class="main1 tool"></div> 
  3.   <div class="main2 tool"></div> 
  4.   <div class="main3 tool"></div> 
  5. </div> 
  1. *{ 
  2.     margin: 0; 
  3. #wrapper { 
  4.     position: relative
  5.     top: 300px; 
  6.     margin-left: 300px; 
  7. .main1 { 
  8.     width: calc(120px / 1.732); 
  9.     height: 120px; 
  10.     background-color: black; 
  11. .main2 { 
  12.     width: calc(120px / 1.732); 
  13.     height: 120px; 
  14.     transform: rotate(120deg); 
  15.     background-color: black; 
  16. .main3 { 
  17.     width: calc(120px / 1.732); 
  18.     height: 120px; 
  19.     transform: rotate(240deg); 
  20.     background-color: black; 
  21. .tool{ 
  22.     position: absolute
  23.     top: 0; 
  24.     left: 0; 

好了,目前已經講述了三角形,四邊形,五邊形,六邊形得到實現方式了,更高的實現方式就以此類推了。

 

責任編輯:武曉燕 來源: 前端點線面
相關推薦

2017-02-21 17:25:51

架構六邊形架構數據庫

2022-03-16 14:27:49

CSS三角形前端

2017-06-08 10:33:42

軟件開發前后端架構

2020-04-02 13:44:57

架構Netflix數據

2023-08-06 23:31:36

架構系統RPC

2016-10-20 13:36:28

WebRTC瀏覽器服務器

2021-10-19 10:09:21

三角形個數數組

2019-12-16 08:08:39

六邊形架構分層架構架構

2023-04-17 09:01:01

WebGL繪制三角形

2023-11-01 07:51:15

WebGPU3D 圖形

2024-02-20 18:30:53

CSS屬性邊框

2020-12-09 08:34:24

css生成器設計師

2021-07-16 05:59:27

CSS 技巧帶圓角的三角形

2012-12-24 09:55:15

iOSUnity3D

2022-12-28 07:48:40

六邊形動畫CSS

2023-04-14 08:00:00

架構測試開發

2021-04-15 06:02:50

CSS 三角形技巧

2023-12-13 10:06:28

六邊形架構系統測試

2023-05-06 07:23:57

點贊
收藏

51CTO技術棧公眾號

色噜噜狠狠狠综合曰曰曰88av| 色呦呦国产精品| 粉嫩精品一区二区三区在线观看 | 国产精品对白交换视频| 成人精品视频在线| 久久精品一二区| 成人三级视频| 亚洲精品在线三区| 三级视频中文字幕| 波多野结衣在线高清| 国产女人18水真多18精品一级做| 亚洲一区中文字幕在线观看| 丰满人妻老熟妇伦人精品| 无需播放器亚洲| 亚洲免费人成在线视频观看| 亚洲制服在线观看| 日本h片久久| 午夜精品久久久久久久99樱桃| 亚洲精品8mav| 欧美色图另类| 北岛玲一区二区三区四区| 国产日产亚洲精品| 国产免费一区二区三区四区五区| 狠狠爱成人网| 日韩一区二区久久久| 亚洲午夜久久久久久久久红桃 | 欧美综合久久久| 野外做受又硬又粗又大视频√| 成人18在线| 久久天堂av综合合色蜜桃网 | 亚洲素人在线| 亚洲精品一区二区三区精华液| jizz18女人| japanese23hdxxxx日韩| 精品久久久视频| 国产av熟女一区二区三区| √新版天堂资源在线资源| 久久免费的精品国产v∧| 国产精品国产精品| 国产av精国产传媒| 国模少妇一区二区三区| 国产精品视频999| 日韩欧美在线观看免费| 久久精品观看| 欧美综合第一页| 四虎成人精品永久免费av| 欧美另类专区| 欧美不卡视频一区发布| 91香蕉视频在线播放| 日韩欧美不卡| 在线日韩欧美视频| 貂蝉被到爽流白浆在线观看| 日本一区二区在线看| 一区二区三区四区精品| www..com.cn蕾丝视频在线观看免费版 | 黄色成人av网| 国产欧美日韩小视频| 91www在线| 天涯成人国产亚洲精品一区av| 日韩一级片免费视频| 国产美女一区视频| 亚洲成a人v欧美综合天堂下载| 久久久天堂国产精品| 亚洲精品一线| 亚洲二区在线观看| 漂亮人妻被中出中文字幕| 小h片在线观看| 91久久香蕉国产日韩欧美9色| 欧美日韩大尺度| 91tv亚洲精品香蕉国产一区| 欧美日韩二区三区| 天天干天天曰天天操| caoporn成人| 日韩精品视频三区| 国产真人做爰视频免费| 久久精品国产www456c0m| 久久综合电影一区| 国产主播在线观看| 久久xxxx精品视频| 国产精品尤物福利片在线观看| 91国内精品久久久| 成人一区二区三区| 日本在线视频不卡| 国产三区视频在线观看| 亚洲成av人片观看| 国产精品少妇在线视频| 国产精品日本一区二区三区在线 | 午夜视黄欧洲亚洲| 凹凸日日摸日日碰夜夜爽1| 欧洲亚洲精品久久久久| 精品国产一区二区三区四区四 | 亚洲国产精品二区| 久久久久久久国产精品影院| 中文字幕一区二区三区精彩视频| 国产精品蜜臀| 欧美日韩国产在线观看| 久久久久99人妻一区二区三区| 中国av一区| 欧美成人性生活| 天天干天天色综合| 国产精品99久久久久| 欧美连裤袜在线视频| av网站网址在线观看| 欧美日韩一区二区在线 | xvideos亚洲| 中日韩精品视频在线观看| 久久精品理论片| 久久久久久九九| 97超碰资源站在线观看| 在线影视一区二区三区| 国产a√精品区二区三区四区| 国际精品欧美精品| 久久久人成影片一区二区三区观看 | 538prom精品视频线放| 网站免费在线观看| 影视亚洲一区二区三区| 国产精品十八以下禁看| 四虎影视在线播放| 亚洲国产va精品久久久不卡综合| 亚洲国产欧美日韩精品| 中文字幕 欧美日韩| 伊人久久大香线蕉综合网站| 欧美激情精品久久久久久黑人| 中文字幕人妻精品一区| 91丨九色丨蝌蚪丨老版| 欧美国产日韩激情| 欧美经典一区| 久久久精品影院| 最近中文字幕在线免费观看| 久久亚洲免费视频| 久久精品视频16| 都市激情亚洲| 欧美激情女人20p| 亚洲精品视频专区| 一区二区三区四区蜜桃| 久久综合在线观看| 婷婷中文字幕一区| 成人免费在线网址| 麻豆网站在线| 欧美另类久久久品| 四虎永久免费地址| 久久av资源站| 在线精品日韩| 亚洲国产伊人| 久久视频在线播放| 国产精品无码在线播放| 1000精品久久久久久久久| 在线观看国产一级片| 日韩精品第一区| 国产精品日韩专区| 黄网站在线免费| 91精品国产91久久久久久最新毛片| 欧美激情久久久久久久| 久久成人久久爱| 久久免费视频2| 欧洲精品99毛片免费高清观看| 欧美成人一二三| 亚洲欧美激情国产综合久久久| 亚洲h在线观看| 国产精品无码在线| 久热国产精品| 亚洲一二三区精品| 欧美影院视频| 韩国欧美亚洲国产| 欧美日韩伦理片| 欧美日韩精品一区二区在线播放| 日韩亚洲欧美中文字幕| 国产一区二区三区免费播放| 又大又硬又爽免费视频| 国产成人短视频在线观看| 国产精品十八以下禁看| 91在线不卡| 91精品国产一区二区三区香蕉| 青娱乐91视频| 久久久久久久免费视频了| 怡红院亚洲色图| 欧美三级免费| 日韩福利影院| 欧美成人一级| 日本老师69xxx| 国产午夜精品久久久久免费视| 亚洲成在人线av| 亚洲男人天堂网址| 亚洲黄色免费电影| 91成人破解版| 国产精品伊人色| 国产日产欧美视频| 一区二区三区在线| 蜜桃久久精品乱码一区二区 | 日韩欧美精品网站| 波兰性xxxxx极品hd| 99国产精品国产精品久久| 邪恶网站在线观看| 99xxxx成人网| 欧美另类videos| 国产va免费精品观看精品视频 | 欧美精品尤物在线观看| 91精品黄色| 四虎成人在线| 韩剧1988免费观看全集| 拍真实国产伦偷精品| 亚洲国产精品小视频| 91在线精品入口| 欧美日韩中文字幕| 欧美精品色哟哟| 国产精品色呦呦| 国产精品无码永久免费不卡| 国产一区二区美女| 在线观看高清免费视频| 一区二区动漫| 亚洲一区 在线播放| 成人中文在线| 欧美精品v日韩精品v国产精品| 精品国产不卡一区二区| 国产精品久久久久久久久久东京| 国产激情视频在线看| 欧美成人国产va精品日本一级| 国产www.大片在线| 日韩精品福利网站| 全部免费毛片在线播放一个| 欧美一二三四在线| 国产一区二区麻豆| 欧美午夜精品免费| 国产午夜无码视频在线观看| 精品高清美女精品国产区| 澳门黄色一级片| 中文字幕亚洲区| 激情无码人妻又粗又大| 久久久久九九视频| 在线不卡av电影| 久久综合色天天久久综合图片| 香蕉视频污视频| 成人毛片老司机大片| 伊人影院在线观看视频| 国产乱人伦精品一区二区在线观看| 激情五月婷婷基地| 麻豆freexxxx性91精品| 美女网站色免费| 久久精品国产99国产| 九色porny自拍| 精品一二线国产| 国产精品一区二区羞羞答答| 日韩成人伦理电影在线观看| 爆乳熟妇一区二区三区霸乳| 日韩高清一区二区| 国产区二区三区| 蜜臀av在线播放一区二区三区 | 亚洲网站免费| 成人亚洲激情网| 国产一区二区三区精品在线观看| 91精品视频网站| 亚洲va欧美va人人爽成人影院| 99国产超薄肉色丝袜交足的后果| 9l视频自拍蝌蚪9l视频成人| 国产一区二区三区四区五区加勒比| 欧美三级午夜理伦三级在线观看 | 日本成人一区二区三区| 亚洲女同精品视频| 1024国产在线| 欧美高清激情视频| 极品在线视频| 国产精品久久久久久久久久三级| 日韩免费va| 成人激情春色网| 亚洲一区二区三区四区电影| 国新精品乱码一区二区三区18| 亚洲欧美日本伦理| 一区二区在线不卡| 亚洲手机在线| 久久9精品区-无套内射无码| 日本va欧美va欧美va精品| 亚洲一区二区福利视频| 成人午夜电影网站| 性高潮久久久久久久| 国产精品欧美一区二区三区| 九九久久免费视频| 欧美性xxxxx| 在线免费av片| 亚洲国产美女久久久久| 国产精品影院在线| 欧美激情在线有限公司| 无人区在线高清完整免费版 一区二| 成人黄色生活片| 噜噜噜狠狠夜夜躁精品仙踪林| 日韩欧美一区二区三区四区| 女人香蕉久久**毛片精品| 国产原创popny丨九色| 美女脱光内衣内裤视频久久网站| 黑人无套内谢中国美女| 国产亚洲一区二区在线观看| 午夜免费激情视频| 日韩欧美在线观看| 国产肥老妇视频| 亚洲视频axxx| 91超碰在线免费| 92国产精品久久久久首页 | 国产不卡视频在线观看| 中文字幕被公侵犯的漂亮人妻| 亚洲综合在线第一页| 毛片在线免费播放| 亚洲黄页网在线观看| 免费看a在线观看| 国产成人精品网站| 精品综合久久88少妇激情| 亚洲 欧洲 日韩| 日韩激情在线观看| 亚洲天堂av网站| 亚洲欧洲制服丝袜| 日韩欧美国产另类| 亚洲国产精久久久久久久| 草莓福利社区在线| 国产精品久久久久久搜索| 免费观看成人www动漫视频| 91传媒免费视频| 六月丁香婷婷色狠狠久久| 精品国产无码在线观看| 午夜成人免费视频| 北条麻妃一二三区| 久久精品国产欧美激情| 成人自拍视频网| 久久天堂国产精品| 红桃视频亚洲| 色18美女社区| 国产精品免费丝袜| 无码人妻黑人中文字幕| 日韩成人黄色av| 黄色成人在线网| 97久久精品午夜一区二区| 香蕉视频官网在线观看日本一区二区| 国产97色在线 | 日韩| 91美女福利视频| 91av在线免费视频| 亚洲成色777777女色窝| 免费在线观看av电影| 3d动漫精品啪啪一区二区三区免费| 97精品一区| 超碰成人在线播放| 亚洲欧洲精品一区二区三区不卡| 亚洲综合免费视频| 日韩视频免费在线| 伊人久久大香伊蕉在人线观看热v| 亚洲国产午夜伦理片大全在线观看网站 | 久久久久久国产精品久久| 永久免费精品视频| h无码动漫在线观看| 高清在线不卡av| 日韩免费av片| 日韩高清不卡av| 成人线上视频| 日韩高清三级| 久久er精品视频| 久久精品黄色片| 欧美成人一区二区三区片免费 | 91吃瓜网在线观看| 国产欧美韩国高清| 91精品国产麻豆国产在线观看| 91欧美一区二区三区| 亚洲综合色噜噜狠狠| 色哟哟中文字幕| 国产精品69久久| 1024精品久久久久久久久| 无码人妻一区二区三区在线| 激情成人中文字幕| 超碰国产在线| 91精品久久久久久综合乱菊| 欧美高清不卡| 99久久人妻精品免费二区| 91国偷自产一区二区开放时间| 美女隐私在线观看| 成人动漫视频在线观看完整版| 在线亚洲伦理| 一级二级黄色片| 欧美大片在线观看一区二区| 天堂av在线网| 在线看成人av电影| 成人av电影免费观看| 国产美女www| 欧美日韩成人在线观看| 免费成人网www| 精品国产午夜福利在线观看| 第一福利永久视频精品| 免费在线观看av| 精品一区二区久久久久久久网站| 日韩成人av影视| 久久精品国产亚洲AV无码麻豆| 亚洲欧美福利视频| 欧美影院视频| 国产视频一区二区三区在线播放 | 不卡一区二区中文字幕| 黄色网址中文字幕| 色综合91久久精品中文字幕| 久久99久久人婷婷精品综合 | 欧美精品制服第一页| 女优一区二区三区| 男插女视频网站| 欧美日韩中文一区| 涩涩在线视频| 最近免费观看高清韩国日本大全| 国产午夜精品久久久久久久| 国产1区在线观看|