CSS漸層虛線邊框Gradient dashed border
很久以前看到有人用 CSS 的 padding-box 與 border-box 涵蓋範圍的不同做出 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 就可以了。
留言
張貼留言