:::

如何用CSS幫有透明背景的圖片加上白邊? / How to Add White Borders to Images With Transparent Parts via CSS?

5月 17, 2023 , , 0 Comments Edit Copy Download

2023-0323-180338.png

請多善用drop-shadow。


帶透明部分的圖片 / Image with transparent parts

8915898.png

(圖片來源:FlatIcon https://www.flaticon.com/free-icon/psychology_8915898?term=test&page=1&position=23&origin=search&related_id=8915898 )

當我們想要為圖片加上白邊的時候,一開始的想法應該都是直接在CSS加上「border: 2px solid white」吧?不過這對有透明部分的圖片來說可就不行了。

2023-0323-180103.png

https://codepen.io/pulipuli/pen/PodxepW

如上圖所示,白色的部份只會在<img>標籤的外圍,並不會隨著圖片透明的部分調整。這是border本來的特性。

加上陰影 / Add white drop shadows

usKoQ.jpg

https://stackoverflow.com/a/70470266 

Tamal Chowdhury對這個問題提出了很好的解法,那就是使用filter中的drop-shadow。舉例來說,以下語法會為圖片加上寬度為5px的白色邊緣:

img {
  filter: drop-shadow(5px 0 0 white) 
           drop-shadow(0 5px 0 white)
           drop-shadow(-5px 0 0 white) 
           drop-shadow(0 -5px 0 white);
}

2023-0323-175650.png

https://codepen.io/pulipuli/pen/MWqzGvq

加入之後的效果如上圖,可以看到白邊真的隨著圖片而改變了,非常成功。

下次有需要為圖片加上白邊的話,可以試試看這招喔。


你還知道什麼CSS小技巧嗎?

歡迎在下面分享喔。