最美情侣中文字幕电影,在线麻豆精品传媒,在线网站高清黄,久久黄色视频

歡迎光臨散文網(wǎng) 會員登陸 & 注冊

Web前端純css實現(xiàn)任意png圖像重上色

2022-01-08 17:51 作者:今天修bug了嗎  | 我要投稿

問題場景

有一張主體部分為任意顏色,其余位置透明的png圖標(biāo)圖片,現(xiàn)在希望將這張圖片進(jìn)行重新著色。

最終效果

實現(xiàn)和解釋

CSS mask

mask這個詞應(yīng)該接觸過Adobe系列軟件(或者喜歡在PowerPoint里面玩騷操作)的同學(xué)都接觸過。它的概念很簡單,就是在最上層的圖層當(dāng)中挖一個洞,下面的圖層自然就可以透過這個洞展示出來了。

大部分現(xiàn)代瀏覽器(IE不支持)都支持mask聲明。不同的是,在Webkit內(nèi)核的瀏覽器(例如使用Chromium內(nèi)核的瀏覽器)當(dāng)中,需要顯式指明“-webkit-mask…”,瀏覽器才會接受這些聲明。在一些前端框架例如Vue.js當(dāng)中,可以通過 :src="{ maskImage:… }"來讓Vue決定是否應(yīng)該加上-webkit前綴。

一張png圖片能夠被用作mask的前提條件是圖片當(dāng)中必須含有透明部分(主體顏色不限)。如果圖片不透明,那么瀏覽器就會將圖片所占的矩形區(qū)域作為mask整體來使用,在這種情況下還不如直接指定節(jié)點(diǎn)的寬度和高度。在這種情況下,應(yīng)該使用復(fù)合背景并將“background-blend-mode”設(shè)置為“l(fā)ighten”(僅對主體顏色比目標(biāo)顏色深的圖片生效)。

在了解了這些過后,就可以使用“mask-image”來設(shè)置遮罩圖像了。

(以下css全部基于上面的html結(jié)構(gòu))

——玩我是吧,阿婆?

——作為遮罩的圖像不會根據(jù)元素大小進(jìn)行適配,默認(rèn)是圖像的原本大小。就像指定其他圖片元素的寬度和高度一樣,也需要使用“(-webkit-)mask-size”來指定遮罩的大小。

——行,那給我來個64px的吧。

——如果遮罩尺寸小于元素尺寸,那么瀏覽器的默認(rèn)行為將會是重復(fù)(repeat)這一遮罩。

如果要避免的話,可以使用“no-repeat”來防止這個行為。但是我個人不太推薦這個用法,因為這代表著設(shè)計者自己對這個元素應(yīng)該顯示多大也不知道,要扣工資的。

zongjie

總結(jié)


Web前端純css實現(xiàn)任意png圖像重上色的評論 (共 條)

分享到微博請遵守國家法律
沅江市| 香港| 孟州市| 中江县| 仁寿县| 疏附县| 红河县| 宁津县| 界首市| 门头沟区| 德令哈市| 彭州市| 会昌县| 高碑店市| 德化县| 崇文区| 炉霍县| 乳山市| 富阳市| 屏东县| 通州区| 新兴县| 扶沟县| 瓦房店市| 淮安市| 乐至县| 建瓯市| 伽师县| 河津市| 潮安县| 阿图什市| 奉化市| 孝昌县| 绿春县| 本溪市| 张家港市| 东兴市| 泽库县| 运城市| 军事| 开化县|