精品欧美一区二区三区在线观看 _久久久久国色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技術棧公眾號

国产欧美久久久精品影院| 日韩成人一区二区三区在线观看| 精品国产免费一区二区三区四区| 日本午夜激情视频| 国产永久免费高清在线观看视频| 蜜臀国产一区二区三区在线播放| 欧美成人免费大片| 91av在线免费| 国产精品久一| 色一情一伦一子一伦一区| 中文字幕一区二区三区最新 | 国产精品永久免费在线| 国产精品美女黄网| 神马久久久久久久久久久| 国产电影一区| 日本韩国一区二区| 丁香色欲久久久久久综合网| 户外极限露出调教在线视频| 国产成人在线看| 国产精品亚洲综合天堂夜夜| 国产精品1234区| 五月天激情综合网| 亚洲欧美日韩精品| 99免费观看视频| 黄色成人小视频| 一本在线高清不卡dvd| 免费cad大片在线观看| 国产福利片在线| 91美女片黄在线| y111111国产精品久久婷婷| 五月天中文字幕| 香蕉精品999视频一区二区 | 欧美一二三区在线| 最近中文字幕一区二区| 忘忧草在线日韩www影院| 亚洲精品国产视频| 一级全黄肉体裸体全过程| 国产免费a∨片在线观看不卡| 不卡视频在线看| 91精品国产99久久久久久红楼| 中文字幕视频一区二区| 日韩二区三区四区| 日本久久久久亚洲中字幕| 西西44rtwww国产精品| 狠狠久久婷婷| 欧美精品video| 久久久精品国产sm调教网站| 亚洲一区 二区 三区| 久久精品久久精品亚洲人| 日韩av网站在线播放| 日本一本不卡| 最近2019免费中文字幕视频三| 成人在线手机视频| 国产欧美日韩在线观看视频| 亚洲性视频网站| 亚欧洲乱码视频| 欧美人与物videos另类xxxxx| 亚洲美女av黄| 国产精品无码一区二区三区| 制服丝袜日韩| 在线观看欧美日韩国产| 亚洲一级理论片| 久久成人综合| 久久av在线看| 国产第一页第二页| 亚洲作爱视频| 国产精品www| 亚洲图片视频小说| 国产福利精品一区| 精品日本一区二区| 黄色的视频在线免费观看| 国产精品久久久久一区二区三区| 一区二区三区四区视频在线| 国产成人高清精品| 亚洲777理论| 韩国日本美国免费毛片| 在线成人免费| 欧美精品一区二区三区一线天视频 | 精品久久人人做人人爱| 国产精品久久AV无码| 美女久久99| www.久久久久| 国产无码精品在线播放| 老牛国产精品一区的观看方式| 国产精品久久久久久婷婷天堂| 国产精品探花视频| 99这里只有精品| 亚洲日本无吗高清不卡| 黑人精品视频| 欧美三级日本三级少妇99| 中文国产在线观看| 欧美一区二区三区红桃小说| 最近2019年日本中文免费字幕| 久久精品欧美一区二区| 日韩精品91亚洲二区在线观看 | 国产午夜亚洲精品午夜鲁丝片| 亚洲欧美影院| 丁香花高清在线观看完整版| 欧美性感一类影片在线播放| 不卡的一区二区| 精品久久久久久久| 欧美极品第一页| 中文字幕第三页| 不卡的av电影| 国产大尺度在线观看| 一本大道色婷婷在线| 91精品国产综合久久久久久漫画| 国产又爽又黄无码无遮挡在线观看| 久久中文字幕二区| 26uuu日韩精品一区二区| 国产精品伦一区二区三区| 91免费观看在线| 国产又粗又长又爽视频| 456成人影院在线观看| 亚洲成**性毛茸茸| av激情在线观看| 免费观看久久久4p| 久久久久久久久四区三区| 在线看福利影| 欧美一区二区精美| 免费看黄色三级| 免费在线亚洲欧美| 狠狠色狠狠色综合人人| 羞羞视频在线免费国产| 欧美日韩高清不卡| 久久久久无码精品国产sm果冻 | 免费的黄色av| 一区二区三区欧美视频| 亚洲天堂av一区二区| 成人无号精品一区二区三区| 欧美一区二区.| 五月婷婷六月丁香综合| 亚洲图片欧美综合| 久久国产劲爆∧v内射| 中文字幕一区二区三区在线视频 | 久久久三级国产网站| 国产免费黄色小视频| 粉嫩av一区二区| 欧美老女人性视频| 亚洲成人777777| 一区二区三区欧美| 精品人妻一区二区三| 亚洲欧洲中文字幕| 91久久精品国产91性色| 久操免费在线| 欧美一区国产二区| 日韩一区二区三区四区在线| 国产在线视视频有精品| 三级网在线观看| 999色成人| 九九热这里只有在线精品视| www.成人免费视频| 亚洲午夜久久久久久久久电影网 | 国产原创中文av| 综合久久一区二区三区| 涩涩网站在线看| 欧美淫片网站| 国产精品免费看一区二区三区| 91美女主播在线视频| 亚洲国产精品热久久| 国产精品视频免费播放| 国产亚洲一二三区| 91欧美视频在线| 久久久五月天| 国产精品v欧美精品∨日韩| 2018av在线| 亚洲色图激情小说| 亚洲视频久久久| 一区二区三区四区国产精品| 在线免费观看污视频| 日欧美一区二区| 国产成年人在线观看| 99re6热只有精品免费观看| 高清一区二区三区日本久| 同心难改在线观看| 欧美三级电影在线观看| 国产高潮国产高潮久久久91 | 日韩精品一二三四| 中文字幕一区二区三区四区五区 | 日韩精品成人一区二区在线观看| 日韩黄色在线| 国模精品视频一区二区| 成人免费高清在线播放| 日韩一级欧美一级| 精品不卡一区二区| 亚洲色图视频免费播放| 国产又粗又猛又色| 久久99深爱久久99精品| 99久久国产综合精品五月天喷水| 国内精品久久久久久久久电影网 | 国产夫妻在线观看| 狠狠躁夜夜躁人人爽超碰91| 极品色av影院| 久久综合色一综合色88| 中文字幕视频三区| 美女精品在线观看| 老司机午夜网站| 久久不见久久见国语| 18成人在线| 亚洲综合av一区二区三区| 欧美高清不卡在线| 在线观看二区| 日韩极品精品视频免费观看| 国产偷拍一区二区| 欧美午夜电影网| 毛片视频网站在线观看| 亚洲欧美日韩系列| 免费黄色片网站| 成人精品国产免费网站| 午夜国产福利在线观看| 久久精品国产清高在天天线| 老司机午夜免费福利视频| 日韩在线欧美| 日本精品二区| 日韩美女毛片| 国产精品制服诱惑| 国产精品一区二区美女视频免费看| 日本亚洲欧洲色α| av在线视屏| 欧美国产日韩一区二区三区| 欧美日韩视频在线播放| 国产亚洲日本欧美韩国| 日本在线视频1区| 亚洲福利在线观看| 国模私拍视频在线| 欧美一级片免费看| 国产毛片毛片毛片毛片毛片| 欧美综合色免费| 东京热一区二区三区四区| 亚洲va欧美va人人爽午夜| 免费在线观看黄色av| 亚洲欧美另类小说| 免费成人美女女在线观看| 中文字幕不卡在线观看| jizz18女人高潮| 国产免费成人在线视频| 久久久久久久毛片| 国产亚洲视频系列| аⅴ天堂中文在线网| 国产色婷婷亚洲99精品小说| 三上悠亚影音先锋| 久久精品一区四区| 成年人免费观看视频网站| www精品美女久久久tv| 亚洲成人日韩在线| 久久精品在线免费观看| 日本污视频网站| 中文字幕在线不卡一区| 国产又粗又长又硬| 亚洲欧洲制服丝袜| 青娱乐免费在线视频| 亚洲在线成人精品| 国产乡下妇女做爰毛片| 黑人欧美xxxx| 波多野结衣高清在线| 欧美日韩一区二区三区不卡| 国产影视一区二区| 日韩欧美不卡在线观看视频| 黄色a在线观看| 日韩成人网免费视频| 国产一级片在线| 日韩在线观看免费全集电视剧网站| 欧美日韩xx| 欧美精品成人91久久久久久久| free性护士videos欧美| 欧美在线视频在线播放完整版免费观看| 成人性生活视频| 国产精品露脸自拍| 麻豆一区在线| 精品视频一区二区| 欧美3p在线观看| www污在线观看| 中文高清一区| 黄大色黄女片18第一次| 粉嫩高潮美女一区二区三区 | 亚洲视频免费看| 日本中文字幕在线免费观看| 在线观看日韩电影| 精品人妻一区二区三区蜜桃| 日韩精品免费在线观看| 午夜在线视频| 久久久亚洲影院| 成人深夜福利| 精品国产第一页| 日韩国产综合| 日日鲁鲁鲁夜夜爽爽狠狠视频97| 美女视频黄 久久| 成人三级做爰av| 91免费看视频| 麻豆亚洲av成人无码久久精品| 欧美丝袜一区二区| 99er热精品视频| 亚洲一区二区福利| 久草在线新免费首页资源站| 国产精品精品久久久| 在线观看视频一区二区三区| 日韩一二三区不卡在线视频| 国产中文一区| 999在线观看| 91老师国产黑色丝袜在线| 麻豆天美蜜桃91| 在线亚洲一区观看| 蜜臀av中文字幕| 久久精品国产一区二区电影| 在线看片福利| 国产欧美日韩综合一区在线观看 | 日韩在线资源网| 涩涩网在线视频| 成人免费在线看片| 国产精品国产一区| 无码少妇一区二区三区芒果| 成人国产亚洲欧美成人综合网| 日韩在线一卡二卡| 欧美视频日韩视频| 免费av在线电影| 欧美性在线观看| 操欧美女人视频| 特级西西444| 国产在线看一区| 五月天免费网站| 欧美在线|欧美| 青青草av免费在线观看| 韩国欧美亚洲国产| 91成人在线精品视频| 亚洲中文字幕无码一区二区三区| 久久精品国产秦先生| 少妇av片在线观看| 色婷婷激情久久| 欧美日韩视频精品二区| 性色av一区二区三区| 久久久伦理片| 成人免费观看cn| 播五月开心婷婷综合| 国产精品成人网站| 亚洲第一天堂av| 黄色aa久久| 久久综合九色99| 午夜在线a亚洲v天堂网2018| 51调教丨国产调教视频| 欧美日韩国产一区二区| 婷婷色在线视频| 51午夜精品视频| 亚洲瘦老头同性70tv| 日本熟妇人妻中出| 日本一区二区视频在线| 中日韩av在线| 久久久精品视频在线观看| 99国内精品久久久久| 国产日韩视频在线播放| 国产一区二区女| 日韩精品一区二区三| 日韩电影网在线| 另类专区亚洲| 亚洲欧美成人一区| 国产另类ts人妖一区二区| 青青青在线视频| 亚洲国产精品系列| 桃花岛成人影院| 亚洲一区二区在线看| 国产一区二区三区黄视频| 久久久久久福利| 亚洲精品视频播放| 日本综合视频| 肉大捧一出免费观看网站在线播放| 国产99久久久国产精品潘金网站| 亚洲一区 视频| 亚洲视频在线看| 亚洲欧美久久精品| 日韩人妻无码精品久久久不卡| 99国产精品久久久| 欧美在线视频精品| 欧美成人在线影院| 丝袜久久网站| 亚洲午夜精品一区| 香蕉加勒比综合久久| 国产精品久久久久久久龚玥菲| 国产精品自产拍在线观| 亚洲一级二级| 日本二区在线观看| 日韩三级视频在线观看| 中文在线资源| 一级特黄妇女高潮| 久久伊99综合婷婷久久伊| 91久久精品无码一区二区| 久久久人成影片一区二区三区观看| 免费看日本一区二区| 九九九久久久久久久| 日韩欧美中文字幕在线观看 | 1024成人网| 视频国产在线观看| 91在线视频成人| 久久婷婷久久| 妺妺窝人体色www在线下载| 国产亚洲激情视频在线| 亚洲综合网站| www.com污| 色婷婷精品久久二区二区蜜臂av | 欧美污在线观看| 在线一区二区视频| 97久久人人超碰caoprom|