摘要:用法樣式是利用該屬性指定的圖片作為遮罩,利用這張圖像的透明度來顯示位于該遮罩圖下方的圖像。其實(shí)可以利用變色,而利用遮罩去繪制圖標(biāo)。遮罩透過的地方是圖標(biāo)的填色部分,而遮罩蓋過的地方則沒有顏色。
1. 用法
-webkit-mask樣式是利用該屬性指定的圖片作為遮罩,利用這張圖像的透明度來顯示位于該遮罩圖下方的圖像。如果遮罩圖某個(gè)像素點(diǎn)透明度為1則顯示下方的圖像,透明度為0則不顯示,介于0-1之間則呈現(xiàn)相應(yīng)的透明度。
詳情參考 mask - CSS | MDN
可以看到,mask的語法基本上拷貝自background,可以設(shè)置遮罩的url, position, repeat, size等屬性,但不能直接設(shè)置顏色(純色的遮罩意味著用opacity就能實(shí)現(xiàn))。-webkit-mask-url可以設(shè)置gradients的漸變圖片,也可以設(shè)置base64編碼的圖片。
想讓圖標(biāo)可以任意變色,常見的方案有:font-awesome, SVG等,甚至還有drop-shadow。其實(shí)可以利用background變色,而利用遮罩去繪制圖標(biāo)。遮罩透過的地方是圖標(biāo)的填色部分,而遮罩蓋過的地方則沒有顏色。
這種方法的優(yōu)點(diǎn)就是轉(zhuǎn)換成本極低,可以直接利用已有的圖標(biāo)PNG圖。具體方法如下:
將圖標(biāo)保存為PNG圖,注意非圖標(biāo)區(qū)域應(yīng)該是透明的。如果原有圖標(biāo)是sprite圖,沒關(guān)系,不用變,因?yàn)閙ask支持position屬性。原先輸出的圖標(biāo)不是純黑色的?也沒關(guān)系,因?yàn)閙ask樣式只認(rèn)你圖片的透明通道
設(shè)置圖標(biāo)的CSS,例如:
.m-mask{ width:141px; height:141px; -webkit-mask-image: url(mask.png); background: #3f51b5; }
這樣就好了,效果如下
完全可以把此時(shí)的background-color理解成Photoshop中的顏色疊加
如果結(jié)合less sass,就可以做到自定義換膚了
在實(shí)際的開發(fā)過程中,發(fā)現(xiàn)在較高版本的Chrome瀏覽器中,我們的圓角頭像出現(xiàn)了無法容忍的毛邊,定位到問題的原因是這樣的:外層div利用background設(shè)置了墊底的默認(rèn)圖,設(shè)置了border-radius:50%。而內(nèi)層的img為實(shí)際頭像圖,也設(shè)置了border-radius:50%。理論上兩個(gè)相等大小、相同圓角的元素,也未設(shè)置任何定位,那么應(yīng)該是頭像完整蓋著默認(rèn)圖。但實(shí)際并未如此,而是頭像略小于默認(rèn)圖,因而出現(xiàn)了毛邊。
因此我們可以為外層div添加一個(gè)樣式
-webkit-mask-image: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABAQMAAAAl21bKAAAAA1BMVEUAAACnej3aAAAACklEQVQI12NgAAAAAgAB4iG8MwAAAABJRU5ErkJggg==")
url中設(shè)置的其實(shí)是1像素高寬的黑色圖片,那么此時(shí)的遮罩就相當(dāng)于外層div設(shè)置圓角區(qū)域后的一個(gè)不透明的圓形。此時(shí)就可以去掉img上的boder-radius了。最后效果如下,完美!
文章版權(quán)歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請注明本文地址:http://www.ezyhdfw.cn/yun/111390.html
摘要:先上效果圖正如標(biāo)題所說,本文是教你如何巧用偽類制作下拉菜單,原生,無。實(shí)際例子其實(shí)就是主題的右上角那個(gè)按鈕,你點(diǎn)一下就會(huì)有一個(gè)下拉菜單出現(xiàn),在其他區(qū)域點(diǎn)擊返回原狀。為了讓下拉菜單更顯下拉的情況,采用的定位下轉(zhuǎn)換原點(diǎn)。 原文鏈接:http://devework.com/css3-target-dropdown.html showImg(https://segmentfault.com/...
摘要:巧用做浮層的詬病太多了,還好標(biāo)準(zhǔn)沒有廢棄它,其實(shí)還是有點(diǎn)用的。做的過程發(fā)現(xiàn)頁面是可以滑動(dòng)的,理想的情況當(dāng)然是鎖住頁面。父頁面域名白名單子頁面好了,完成這樣的需求,半天都不用。用雖然不是最好的方案,但對于本案例來是最佳的。 巧用iframe做浮層 iframe的詬病太多了,還好標(biāo)準(zhǔn)沒有廢棄它,其實(shí)還是有點(diǎn)用的。在開發(fā)產(chǎn)品的時(shí)候,我們不得不舍棄一些東西來換取效率。 我們的需求是,在某些特定...
摘要:巧用做浮層的詬病太多了,還好標(biāo)準(zhǔn)沒有廢棄它,其實(shí)還是有點(diǎn)用的。做的過程發(fā)現(xiàn)頁面是可以滑動(dòng)的,理想的情況當(dāng)然是鎖住頁面。父頁面域名白名單子頁面好了,完成這樣的需求,半天都不用。用雖然不是最好的方案,但對于本案例來是最佳的。 巧用iframe做浮層 iframe的詬病太多了,還好標(biāo)準(zhǔn)沒有廢棄它,其實(shí)還是有點(diǎn)用的。在開發(fā)產(chǎn)品的時(shí)候,我們不得不舍棄一些東西來換取效率。 我們的需求是,在某些特定...
摘要:在這個(gè)系列里分享一些簡單,但是很有意思的交互效果附上地址和地址滾動(dòng),添加對應(yīng)加載的比如巧用實(shí)現(xiàn)文字和遮罩層的動(dòng)畫效果文字動(dòng)畫遮罩層動(dòng)畫首先然后把且,這樣就實(shí)現(xiàn)了遮罩層的進(jìn)場和退出效果隨機(jī)獲取數(shù)組項(xiàng) 在這個(gè)系列里分享一些簡單,但是很有意思的交互效果~附上demo地址和github地址 showImg(https://makapicture.oss-cn-beijing.aliyuncs....
閱讀 2899·2021-11-22 15:11
閱讀 3631·2021-09-28 09:43
閱讀 2956·2019-08-30 13:05
閱讀 3492·2019-08-30 11:18
閱讀 1506·2019-08-29 16:34
閱讀 1421·2019-08-29 13:53
閱讀 2992·2019-08-29 11:03
閱讀 1727·2019-08-29 10:57