CSS遮罩實現PNG圖示變色

張鑫旭發表於2018-12-02

本文節選自“純CSS實現任意格式圖示變色的研究”一文。


原圖示如下,是個藍色的:

CSS遮罩實現PNG圖示變色

下面要變成#f4615c紅色的圖示,最簡單的方法就是使用遮罩。

如下HTML和CSS程式碼:

<span class="colorful"></span>複製程式碼
.colorful {
    display: inline-block;
    width: 32px; height: 32px;
    background-color: #f4615c;
    -webkit-mask: url(./xin.svg) no-repeat;
    mask: url(./xin.svg) no-repeat;
    -webkit-mask-size: 100% 100%;
    mask-size: 100% 100%;
}複製程式碼

CSS3 mask預設是基於透明度實現遮罩效果的。也就是實色區域顯示,透明區域隱藏。因此,我們只需要把目標圖示顏色#f4615c作為背景色,然後原始圖示(無論什麼顏色都可以)作為遮罩圖片,效果就出來了。

眼見為實,您可以狠狠地點選這裡:CSS mask遮罩實現任意顏色的小圖示demo

效果如下截圖:

遮罩實現的圖示賦色效果

CSS3遮罩非常好用,熟練掌握事半功倍,其知識點很多,包含的屬性值也很多,有興趣可以參考我之前的文章:“CSS遮罩CSS3 mask/masks詳細介紹”,非常系統的介紹了相關知識點。

以上,感謝閱讀!



相關文章