国产精品电影_久久视频免费_欧美日韩国产激情_成年人视频免费在线播放_日本久久亚洲电影_久久都是精品_66av99_九色精品美女在线_蜜臀a∨国产成人精品_冲田杏梨av在线_欧美精品在线一区二区三区_麻豆mv在线看

2021年了,還只會一種 CSS 實現三角形的方式?

開發 前端
而 CSS 發展到今天,其實有很多有意思的僅僅使用 CSS 就能繪制出來的三角形的方式,本文將具體羅列講講。

在一些面經中,經常能看到有關 CSS 的題目都會有一道如何使用 CSS 繪制三角形,而常見的回答通常也只有使用 border 進行繪制一種方法。

而 CSS 發展到今天,其實有很多有意思的僅僅使用 CSS 就能繪制出來的三角形的方式,本文將具體羅列講講。

通過本文,你能了解到 6 種使用 CSS 繪制三角形的方式,并且它們都非常好掌握。

當然本文僅是拋磚引玉,CSS 日新月異,可能還有一些有意思的方法本文遺漏了。

使用 border 繪制三角形

使用 border 實現三角形應該是大部分人都掌握的,也是各種面經中經常出現的,利用了高寬為零的容器及透明的 border 實現。

簡單的代碼如下:

  1. div { 
  2.   border-top: 50px solid yellowgreen; 
  3.   border-bottom: 50px solid deeppink; 
  4.   border-left: 50px solid bisque; 
  5.   border-right: 50px solid chocolate; 

高寬為零的容器,設置不同顏色的 border:

這樣,讓任何三邊的邊框的顏色為 transparent,則非常容易得到各種角度的三角形:

CodePen Demo - 使用 border 實現三角形[1]

使用 linear-gradient 繪制三角形

接著,我們使用線性漸變 linear-gradient 實現三角形。

它的原理也非常簡單,我們實現一個 45° 的漸變:

  1. div { 
  2.   width: 100px; 
  3.   height: 100px; 
  4.   background: linear-gradient(45deg, deeppink, yellowgreen); 

讓它的顏色從漸變色變為兩種固定的顏色:

  1. div { 
  2.   width: 100px; 
  3.   height: 100px; 
  4.   background: linear-gradient(45deg, deeppink, deeppink 50%, yellowgreen 50%, yellowgreen 100%); 

再讓其中一個顏色透明即可:

  1. div { 
  2.   background: linear-gradient(45deg, deeppink, deeppink 50%, transparent 50%, transparent 100%); 

通過旋轉 rotate 或者 scale,我們也能得到各種角度,不同大小的三角形,完整的 Demo 可以戳這里:

CodePen Demo - 使用線性漸變實現三角形[2]

使用 conic-gradient 繪制三角形

還是漸變,上述我們使用了線性漸變實現三角形,有意思的是,在漸變家族中,角向漸變 conic-gradient 也可以用于實現三角形。

方法在于,角向漸變的圓心點是可以設置的,類似于徑向漸變的圓心點也可以被設置。

我們將角向漸變的圓心點設置于 50% 0,也就是 center top,容器最上方的中間,再進行角向漸變,漸變到一定的角度范圍內,都是三角形圖形。

假設我們有一個 200px x 100px 高寬的容器,設置其角向漸變圓心點為 50% 0:

并且,設置它從 90° 開始畫角向漸變圖,示意圖如下:

 å›¾ç‰‡

角向漸變逐漸變化動畫

可以看到,在初始的時候,角向漸變圖形沒有到第二條邊的之前,都是三角形,我們選取適合的角度,非常容易的可以得到一個三角形:

  1. div { 
  2.     background: conic-gradient(from 90deg at 50% 0, deeppink 0, deeppink 45deg, transparent 45.1deg); 

利用 conic-gradient 實現的三角形

上述代碼中的 deeppink 45deg, transparent 45.1deg 多出來的 0.1deg 是為了簡單消除漸變產生的鋸齒的影響,這樣,我們通過 conic-gradient,也輕松的得到了一個三角形。

同理,再配合旋轉 rotate 或者 scale,我們也能得到各種角度,不同大小的三角形,完整的 Demo 可以戳這里:

CodePen Demo - 使用角向漸變實現三角形[3]

transform: rotate 配合 overflow: hidden 繪制三角形

這種方法還是比較常規的,使用 transform: rotate 配合 overflow: hidden。一看就懂,一學就會,簡單的動畫示意圖如下:

 å›¾ç‰‡

設置圖形的旋轉中心在左下角 left bottom,進行旋轉,配合 overflow: hidden。

完整的代碼:

  1. .triangle { 
  2.     width: 141px; 
  3.     height: 100px; 
  4.     position: relative
  5.     overflow: hidden; 
  6.      
  7.     &::before { 
  8.         content: ""
  9.         position: absolute
  10.         top: 0; 
  11.         left: 0; 
  12.         right: 0; 
  13.         bottom: 0; 
  14.         background: deeppink; 
  15.         transform-origin: left bottom; 
  16.         transform: rotate(45deg); 
  17.     } 

CodePen Demo - transform: rotate 配合 overflow: hidden 實現三角形[4]

使用 clip-path 繪制三角形

clip-path 一個非常有意思的 CSS 屬性。

clip-path CSS 屬性可以創建一個只有元素的部分區域可以顯示的剪切區域。區域內的部分顯示,區域外的隱藏。剪切區域是被引用內嵌的 URL 定義的路徑或者外部 SVG 的路徑。

也就是說,使用 clip-path 可以將一個容器裁剪成任何我們想要的樣子。

通過 3 個坐標點,實現一個多邊形,多余的空間則會被裁減掉,代碼也非常簡單:

  1. div { 
  2.     background: deeppink; 
  3.     clip-path: polygon(0 0, 100% 0, 0 100%, 0 0); 

利用 clip-path 實現的三角形

CodePen Demo - 使用 clip-path 實現三角形[5]

在這個網站中 -- CSS clip-path maker[6],你可以快捷地創建簡單的 clip-path 圖形,得到對應的 CSS 代碼。

利用字符繪制三角形

OK,最后一種,有些獨特,就是使用字符表示三角形。

下面列出一些三角形形狀的字符的十進制 Unicode 表示碼。

  1. ◄ : ◄  
  2. ► : ►  
  3. ▼ : ▼  
  4. ▲ : ▲ 
  5. ⊿ : ⊿ 
  6. △ : △ 

譬如,我們使用 ▼ 實現一個三角形 ▼,代碼如下:

  1. <div class="normal">&#9660; </div> 
  1. div { 
  2.     font-size: 100px; 
  3.     color: deeppink; 

效果還是不錯的:

利用字符實現的三角形

然而,需要注意的是,使用字符表示三角形與當前設定的字體是強相關的,不同的字體繪制出的同一個字符是不一樣的,我在 Google Font[7] 上隨機選取了幾個不同的字體,分別表示同一個字符,得到的效果如下:

可以看到,不同字體的形狀、大小及基線都是不一樣的,所以如果你想使用字符三角形,確保用戶的瀏覽器安裝了你指定的字體,否則,不要使用這種方式。

完整的對比 Demo,你可以戳這里:

CodePen Demo - 使用字符實現三角形[8]

最后

好了,本文到此結束,關于使用 CSS 繪制三角的 6 種不同方式,希望對你有幫助 :)

更多精彩 CSS 技術文章匯總在我的 Github -- iCSS[9] ,持續更新.

如果還有什么疑問或者建議,可以多多交流,原創文章,文筆有限,才疏學淺,文中若有不正之處,萬望告知。

參考資料

[1]CodePen Demo - 使用 border 實現三角形: https://codepen.io/Chokcoco/pen/GqrVpB

[2]CodePen Demo - 使用線性漸變實現三角形: https://codepen.io/Chokcoco/pen/RwKKOZw

[3]CodePen Demo - 使用角向漸變實現三角形: https://codepen.io/Chokcoco/pen/qBRRZJr

[4]CodePen Demo - transform: rotate 配合 overflow: hidden 實現三角形: https://codepen.io/Chokcoco/pen/LYxyyPv

[5]CodePen Demo - 使用 clip-path 實現三角形: https://codepen.io/Chokcoco/pen/GRrmEzY

[6]CSS clip-path maker: https://bennettfeely.com/clippy/

[7]Google Font: https://fonts.google.com/

[8]CodePen Demo - 使用字符實現三角形: https://codepen.io/Chokcoco/pen/abpWyzy

[9]Github -- iCSS: https://github.com/chokcoco/iCSS

 

責任編輯:姜華 來源: iCSS前端趣聞
相關推薦

2022-03-16 14:27:49

CSS三角形前端

2021-07-16 05:59:27

CSS 技巧帶圓角的三角形

2024-02-20 18:30:53

CSS屬性邊框

2016-10-20 13:36:28

WebRTC瀏覽器服務器

2021-10-19 10:09:21

三角形個數數組

2023-11-01 07:51:15

WebGPU3D 圖形

2021-08-29 18:32:18

CSS

2023-04-17 09:01:01

WebGL繪制三角形

2020-12-09 08:34:24

css生成器設計師

2023-05-06 07:23:57

2022-09-14 15:17:26

ArkUI鴻蒙

2018-03-02 15:54:37

三角形主機比特幣

2013-09-26 13:43:13

iOS開發OpenGL ES教程圖元

2021-09-24 09:22:26

AI 數據人工智能

2012-12-24 09:55:15

iOSUnity3D

2013-09-26 14:09:31

iOS開發OpenGL ES教程繪制矩形

2022-06-15 22:15:47

CSS視覺還原

2023-04-26 07:42:16

WebGL圖元的類型

2020-04-22 11:19:07

貪心算法動態規劃

2025-03-11 12:07:10

點贊
收藏

51CTO技術棧公眾號

91精品亚洲一区在线观看| 欧美aaaaaa午夜精品| 精品国产一区二区国模嫣然| 黄网站免费入口| 从欧美一区二区三区| 亚洲iv一区二区三区| 99精品在免费线中文字幕网站一区| 日韩精品极品视频免费观看| 免费在线黄色影片| 亚洲福利一区二区| 探花国产精品| 亚洲欧美日韩在线| 国内外成人免费在线视频| 成人黄色大片在线观看| 天天好比中文综合网| 国产日本精品| 国产欧美综合精品一区二区| 国模大胆一区二区三区| 国产91精品一区二区绿帽| 欧美在线网址| 国产精品免费视频一区二区| 国产在线成人| 久久国产日韩欧美| 美女网站久久| 日本高清不卡三区| 三级欧美韩日大片在线看| 久久久久久久久一区| 国产一区二区你懂的| 欧美一区二区三区在线播放| 99国产精品私拍| 日韩精品久久久免费观看| 麻豆精品在线观看| 亚洲 自拍 另类小说综合图区| 丰满少妇久久久久久久| 久久久久免费看黄a片app| 91一区在线观看| 成人18网站| 一区二区三区在线影院| 伊人中文在线| 欧美一区二区网站| 不卡一二三区| 欧美日韩国产二区| 日韩在线观看| 国产亚洲精品美女久久久m| 免费看亚洲片| 激情六月天婷婷| 欧美国产一区二区| 中文在线天堂库| 7777精品伊人久久久大香线蕉经典版下载 | 色综合888| 久久99欧美| 欧美久久一区二区三区| 国内精品一区二区三区四区| 一区二区三区韩国免费中文网站| 国产精品一区电影| 日韩不卡在线观看日韩不卡视频| 超级碰在线观看| 中文字幕av资源一区| 日漫免费在线观看网站| 亚洲缚视频在线观看| 久久视频社区| 国产精品欧美久久| 国产成人av电影免费在线观看| 999精彩视频| 欧美精品高清视频| 秋霞一区二区| 精品日本一区二区| jlzzjlzz国产精品久久| 最新中文字幕在线观看| 亚洲全黄一级网站| 欧美激情在线免费| 黄色网络在线观看| 久久久99久久| 麻豆传媒在线观看| 久久人人爽人人| 美女脱光内衣内裤视频久久网站| 亚洲免费一级视频| 精品国内二区三区| 欧美日韩激情在线一区二区三区| 亚洲成人自拍视频| 亚洲自拍偷拍网站| 永久免费毛片在线播放| 日本亚洲欧洲色| 久久黄色级2电影| 真不卡电影网| 色99之美女主播在线视频| 久久大综合网| 两根大肉大捧一进一出好爽视频| 欧美日本韩国一区| 九色丨蝌蚪丨成人| 免费观看中文字幕| 欧美日韩一区高清| 开心激情综合| 欧美精品在欧美一区二区| 欧美特级限制片免费在线观看| 亚洲图色一区二区三区| 日韩国产欧美精品| 午夜欧美2019年伦理| 国产综合av| 欧美精品一区在线发布| 亚洲一区二区视频在线观看| avav成人| 一本色道久久综合亚洲二区三区| 亚洲超丰满肉感bbw| 4438五月综合| 少妇一晚三次一区二区三区| 欧美三级日韩三级| 国产精品99视频| 免费一级电影| 不卡av电影在线观看| 免费日本视频一区| 无圣光视频在线观看| 91国语精品自产拍在线观看性色| 国产黄人亚洲片| 51漫画成人app入口| 久久99久久精品国产| 日本久久精品电影| 久久国产电影| 97在线观看免费高清视频| 97av在线视频| 欧美激情一区二区三区全黄| 成人精品电影在线| av磁力番号网| 日韩大片在线观看视频| 蜜臀av一区二区在线免费观看| 日韩免费网站| 国产一区二区三区奇米久涩 | 中文字幕不卡的av| 国产一区二区三区国产精品| 欧美国产视频一区| 日韩毛片在线看| 国内精品视频一区二区三区八戒 | 亚洲一线二线三线视频| 99久久香蕉| www.99在线| 久久免费视频在线观看| 中文字幕乱码一区二区免费| 久久99成人| 婷婷免费在线观看| 欧洲日韩成人av| 亚洲国产婷婷综合在线精品| 色综合天天爱| 免费在线午夜视频| 日韩在线国产| 亚洲欧洲国产精品| 成人av在线播放网址| 亚洲tv在线| 九九九在线观看视频| 69国产精品成人在线播放| 亚洲视频综合在线| 日韩av密桃| 91这里只有精品| 日本一区二区三区四区高清视频 | 嫩草嫩草嫩草嫩草| 亚洲一区二区三区四区在线播放| 黑人巨大精品欧美一区二区| 欧美一区91| а√在线天堂官网| 久久这里只有精品23| 久久久国产一区二区| 中文字幕久久午夜不卡| 国产一区国产二区国产三区| 亚洲mv在线| 亚洲国产欧洲综合997久久| 亚洲免费av网址| 久久久精品国产99久久精品芒果| 日韩欧美国产大片| 中文字幕在线播放| 精品人妻大屁股白浆无码| 国语自产精品视频在线看抢先版图片| 亚洲午夜免费福利视频| 亚洲影音先锋| 精品入口麻豆88视频| 亚洲天堂二区| 日韩一区二区电影在线观看| 蜜月aⅴ免费一区二区三区| 亚洲同性gay激情无套| 亚洲免费黄色| 国产精品va视频| 成人影院免费观看| 17c丨国产丨精品视频| 国产成人精品午夜| 亚洲а∨天堂久久精品9966| 久久色.com| 一本精品一区二区三区| 天堂av在线网| 伊人网在线免费观看| 一区二区三区日韩视频| 91国内精品久久| 日韩av在线免费播放| 亚洲一区二区五区| 国产.欧美.日韩| 亚洲五月综合| 精品123区| 国产黄色免费在线观看| 成人午夜视频在线观看免费| 51精品国产人成在线观看| 亚洲香蕉av在线一区二区三区| 亚洲第一成年网| 99这里只有精品|