iT邦幫忙

DAY 20
1

非程式人的前端開發自學之路系列 第 20

[非程式人的前端開發自學之路] Day 20 使用 CSS 畫出三角形,製作對話框

  • 分享至 

  • xImage
  •  

有時候網站需要製作對話框,或是製作箭頭的時候,傳統的方式是使用圖片來達到效果,但是繪製一個三角形可以透過 CSS 的邊界來達成,Codepen 上有人製作了一個解釋 CSS 怎麼做出三角型的動畫,也可以直接看下面的影片。

當一個矩形擁有很寬的 border 時,我們會發現 border 是一個梯形,運用這個特性,我們把矩形的寬度跟高度都設定成 0 ,則可以讓單一個邊界都變成一個三角形,接著讓需要的三角形留下,其他的邊界都設定成透明,就可以得一個獨立的三角形。

Yes

設定不同的邊界寬度,即可得到不同比例

範例連結

HTML

  <div class="arrow-up"></div>
  <div class="arrow-down"></div>
  <div class="arrow-left"></div>
  <div class="arrow-right"></div>

CSS

div {
  display: inline-block;
}

.arrow-up {
        width: 0; 
        height: 0; 
        border-left: 30px solid transparent;
        border-right: 30px solid transparent;
        
        border-bottom: 10px solid black;
}

.arrow-down {
        width: 0; 
        height: 0; 
        border-left: 20px solid transparent;
        border-right: 20px solid transparent;
        
        border-top: 40px solid #f00;
}

.arrow-right {
        width: 0; 
        height: 0; 
        border-top: 60px solid transparent;
        border-bottom: 60px solid transparent;
        
        border-left: 60px solid green;
}

.arrow-left {
        width: 0; 
        height: 0; 
        border-top: 20px solid transparent;
        border-bottom: 20px solid transparent; 
        
        border-right: 60px solid blue; 
}

由範例可以知道當想要一個向上的箭頭,就要設定 border-bottom,反之想要向上的箭頭,就設定 border-top,想要一個鈍角三角形,就把相鄰的兩個邊界變大。


上一篇
[非程式人的前端開發自學之路] Day 19 jQuery animate (範例:類似 App 左側選單)
下一篇
[非程式人的前端開發自學之路] Day 21 從遊戲中學習 CSS 入門到精通
系列文
非程式人的前端開發自學之路30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

1 則留言

0
chiso
iT邦新手 4 級 ‧ 2014-10-20 16:14:30

有趣喔

我要留言

立即登入留言