CSS漸層虛線邊框Gradient dashed border

很久以前看到有人用 CSS 的 padding-box 與 border-box 涵蓋範圍的不同做出 border,現在讓我們一起來運用這個技巧。

css border

padding-box

padding-box 指定這個背景只應用於元素的內邊距(padding)。也就是說如果元素有內邊距,這個顏色將填充內邊距;如果沒有,它可能不會顯示任何可見的效果,或者被下層的 background 覆蓋。實際也是如此,因為 0 0 表示漸層的起點和終點都在同一位置,所以它只是一個單一的顏色。

簡單來說,linear-gradient(var(--bg-color) 0 0) padding-box 是用來蓋掉內部顏色的。

border-box

border-box指定這個漸層只應用於元素的包含邊框(border)的區域,但因為內部被padding-box那段原始碼蓋掉了,所以只會看到邊框的部分。

最後,加上 border dashed 把 border-box 那一段漸層蓋過去就大功告成了。

See the Pen Untitled by cj (@cjzopen) on CodePen.

另外,你想做一個齒輪的話,把用來蓋掉顏色的padding-box那部分拿掉,就會變成齒輪了。

用途

除了可以裝飾一些資訊物件之外,最常用的地方就是按鈕。

但我想要實線邊框

前面也提到最後一步是用 border 的顏色蓋掉漸層,所以只要把 border 的顏色設定成 transparent 就可以了。

留言

這個網誌中的熱門文章

用CSS的 min max與vw cqi,設計有極限值的RWD響應式文字

10 steps、「ライブ会場を沸らせる、フロアを沸かす」ミーム動画の作り方 (Viggle AI)

如何產生醒目顯示文字的連結?讓使用者一目瞭然的功能(Scroll to Text Fragment)