如何實(shí)現(xiàn)網(wǎng)頁變灰效果

2020 年 4 月 4 日勘纯,星期六局服,清明節(jié)。

我們的國家經(jīng)歷了非常慘痛的時(shí)刻驳遵,很多英雄在救助他人的路上倒下腌逢,更有很多烈士英雄保衛(wèi)人民的安危遇難,今天全國下降半旗超埋,北京時(shí)間 10 點(diǎn)全國默哀三分鐘搏讶,來致敬英雄們。同時(shí)今天一切公共娛樂活動(dòng)也都會停止霍殴,包括直播媒惕、綜藝、影視来庭、游戲等等妒蔚。

我也在這里也向全國抗擊新冠肺炎疫情斗爭犧牲的烈士和逝世的同胞表達(dá)深切的哀悼,向所有在抗戰(zhàn)在疫情前線的工作和醫(yī)護(hù)人員致敬月弛。我們每一個(gè)人的平安面前肴盏,都是英雄的人墻。

網(wǎng)站變灰


今天大家可以看到很多很多網(wǎng)站包括主頁和內(nèi)容也都已經(jīng)變成了灰色帽衙,比如百度菜皂、B 站、愛奇藝厉萝、CSDN 等等恍飘。


CSDN
愛奇藝
百度

大家可以看到全站的內(nèi)容都變成灰色了,包括按鈕谴垫、圖片等等章母。這時(shí)候我們可能會好奇這是怎么做到的呢?

有人會以為所有的內(nèi)容都統(tǒng)一換了一個(gè) CSS 樣式翩剪,圖片也全換成灰色的了乳怎,按鈕等樣式也統(tǒng)一換成了灰色樣式。但你想想這個(gè)成本也太高了前弯,而且萬一某個(gè)控件忘記加灰色樣式了豈不是太突兀了蚪缀。

其實(shí)焦辅,解決方案很簡單,只需要幾行代碼就能搞定了椿胯。

實(shí)現(xiàn)


我們選擇一個(gè)網(wǎng)站,比如 B 站吧剃根,打開瀏覽器開發(fā)者工具哩盲。

審查一下網(wǎng)頁的源代碼,我們可以發(fā)現(xiàn)在 html 的這個(gè)地方多了一個(gè)疑似的 class狈醉,叫做 gray廉油,gray 中文即灰色。


變灰效果

可以看到苗傅,我們只要將下面這行 CSS 樣式抒线,加入到頁面指定節(jié)點(diǎn),即可實(shí)現(xiàn)網(wǎng)頁變灰的效果:

-webkit-filter: grayscale(.95);

其完整內(nèi)容為:


html.gray {
    -webkit-filter: grayscale(.95);
}

我們將其取消渣慕,就能發(fā)現(xiàn)網(wǎng)站的顏色就能重新還原回來了嘶炭。


還原效果

果然是這個(gè)樣式在起作用,而且是全局的效果逊桦,因?yàn)樗亲饔迷诹?html 這個(gè)節(jié)點(diǎn)之上的眨猎。

另外看看 CSDN,它也是用的這個(gè) CSS 樣式强经,其內(nèi)容為:

html {
    -webkit-filter: grayscale(100%);
    -moz-filter: grayscale(100%);
    -ms-filter: grayscale(100%);
    -o-filter: grayscale(100%);
    filter: grayscale(100%);
    filter: progid:DXImageTransform.Microsoft.BasicImage(grayscale=1);
}

這個(gè)實(shí)現(xiàn)看起來兼容性會更好一些睡陪。

因此我們可以確定,通過一個(gè)全局的 CSS 樣式就能將整個(gè)網(wǎng)站變成灰色效果匿情。

分析


那么這里我們就來詳細(xì)了解一下這究竟是一個(gè)什么樣的 CSS 樣式兰迫。

這個(gè)樣式名叫做 filter,搜下 MDN 的官方介紹炬称,其鏈接為:https://developer.mozilla.org/zh-CN/docs/Web/CSS/filter汁果。

官方介紹內(nèi)容如下:

filter CSS 屬性將模糊或顏色偏移等圖形效果應(yīng)用于元素。濾鏡通常用于調(diào)整圖像玲躯,背景和邊框的渲染须鼎。
CSS 標(biāo)準(zhǔn)里包含了一些已實(shí)現(xiàn)預(yù)定義效果的函數(shù)。你也可以參考一個(gè) SVG 濾鏡府蔗,通過一個(gè) URL 鏈接到 SVG 濾鏡元素 (SVG filter element[1])晋控。

其實(shí)就是一個(gè)濾鏡的意思。

官方有一個(gè) Demo姓赤,可以看下效果赡译,如圖所示。


Demo

比如這里通過 filter 樣式改變了圖片不铆、顏色蝌焚、模糊裹唆、對比度等等信息。

其所有用法示例如下:

/* URL to SVG filter */
filter: url("filters.svg#filter-id");

/* <filter-function> values */
filter: blur(5px);
filter: brightness(0.4);
filter: contrast(200%);
filter: drop-shadow(16px 16px 20px blue);
filter: grayscale(50%);
filter: hue-rotate(90deg);
filter: invert(75%);
filter: opacity(25%);
filter: saturate(30%);
filter: sepia(60%);

/* Multiple filters */
filter: contrast(175%) brightness(3%);

/* Global values */
filter: inherit;
filter: initial;
filter: unset;

各個(gè)用法介紹大家可以參考官方的文檔說明:https://developer.mozilla.org/zh-CN/docs/Web/CSS/filter

比如這里如果我們可以使用 blur 設(shè)置高斯模糊只洒,用法如下:

filter: blur(radius)

給圖像設(shè)置高斯模糊许帐。radius 一值設(shè)定高斯函數(shù)的標(biāo)準(zhǔn)差,或者是屏幕上以多少像素融在一起毕谴,所以值越大越模糊成畦;如果沒有設(shè)定值,則默認(rèn)是 0涝开;這個(gè)參數(shù)可設(shè)置絕對像素值循帐,但不接受百分比值。

可以達(dá)成這樣的效果:


效果

再說回剛才的灰色圖像舀武,這里其實(shí)就是設(shè)置了 grayscale拄养,其用法如下:

filter: grayscale(percent)

將圖像轉(zhuǎn)換為灰度圖像。值定義轉(zhuǎn)換的比例银舱。percent 值為 100% 則完全轉(zhuǎn)為灰度圖像瘪匿,值為 0% 圖像無變化。值在 0% 到 100% 之間寻馏,則是效果的線性乘子柿顶。若未設(shè)置,值默認(rèn)是 0操软。另外除了傳遞百分比嘁锯,還可以傳遞浮點(diǎn)數(shù),效果是一樣的聂薪。

如:

filter: grayscale(1)
filter: grayscale(100%)

都可以將節(jié)點(diǎn)轉(zhuǎn)化為 100% 的灰度模式家乘。

所以一切到這里就清楚了,如果我們想要把全站變成灰色藏澳,再考慮到各瀏覽器兼容寫法仁锯,可以參考下 CSDN 的寫法:

.gray {
    -webkit-filter: grayscale(100%);
    -moz-filter: grayscale(100%);
    -ms-filter: grayscale(100%);
    -o-filter: grayscale(100%);
    filter: grayscale(100%);
    filter: progid:DXImageTransform.Microsoft.BasicImage(grayscale=1);
}

這樣想要變灰的節(jié)點(diǎn)只需要加上 gray 這個(gè) class 就好了,比如加到 html 節(jié)點(diǎn)上就可以全站變灰了翔悠。

最后呢业崖,看一下瀏覽器對 filter 這個(gè)樣式的兼容性怎樣,如圖所示:



這里我們看到蓄愁,這里除了 IE双炕,其他的 PC、手機(jī)端的瀏覽器都支持了撮抓,F(xiàn)irefox 的 PC妇斤、安卓端還單獨(dú)對 SVG 圖像加了支持,可以放心使用。

總結(jié)


本篇文章簡單介紹了一下今天觀察到的網(wǎng)站變灰的實(shí)現(xiàn)站超,也學(xué)習(xí)了 filter 的更詳細(xì)的用法荸恕,希望有幫助。


from:https://mp.weixin.qq.com/s/2GNEky-NU4ywdADVOs3iiA

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末死相,一起剝皮案震驚了整個(gè)濱河市融求,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌算撮,老刑警劉巖生宛,帶你破解...
    沈念sama閱讀 206,378評論 6 481
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異钮惠,居然都是意外死亡,警方通過查閱死者的電腦和手機(jī)七芭,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 88,356評論 2 382
  • 文/潘曉璐 我一進(jìn)店門素挽,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人狸驳,你說我怎么就攤上這事预明。” “怎么了耙箍?”我有些...
    開封第一講書人閱讀 152,702評論 0 342
  • 文/不壞的土叔 我叫張陵撰糠,是天一觀的道長。 經(jīng)常有香客問我辩昆,道長阅酪,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 55,259評論 1 279
  • 正文 為了忘掉前任汁针,我火速辦了婚禮术辐,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘施无。我一直安慰自己辉词,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 64,263評論 5 371
  • 文/花漫 我一把揭開白布猾骡。 她就那樣靜靜地躺著瑞躺,像睡著了一般。 火紅的嫁衣襯著肌膚如雪兴想。 梳的紋絲不亂的頭發(fā)上幢哨,一...
    開封第一講書人閱讀 49,036評論 1 285
  • 那天,我揣著相機(jī)與錄音嫂便,去河邊找鬼嘱么。 笑死,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的曼振。 我是一名探鬼主播几迄,決...
    沈念sama閱讀 38,349評論 3 400
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼冰评!你這毒婦竟也來了映胁?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 36,979評論 0 259
  • 序言:老撾萬榮一對情侶失蹤甲雅,失蹤者是張志新(化名)和其女友劉穎解孙,沒想到半個(gè)月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體抛人,經(jīng)...
    沈念sama閱讀 43,469評論 1 300
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡弛姜,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 35,938評論 2 323
  • 正文 我和宋清朗相戀三年,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了妖枚。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片廷臼。...
    茶點(diǎn)故事閱讀 38,059評論 1 333
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡,死狀恐怖绝页,靈堂內(nèi)的尸體忽然破棺而出荠商,到底是詐尸還是另有隱情,我是刑警寧澤续誉,帶...
    沈念sama閱讀 33,703評論 4 323
  • 正文 年R本政府宣布莱没,位于F島的核電站,受9級特大地震影響酷鸦,放射性物質(zhì)發(fā)生泄漏饰躲。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 39,257評論 3 307
  • 文/蒙蒙 一臼隔、第九天 我趴在偏房一處隱蔽的房頂上張望属铁。 院中可真熱鬧,春花似錦躬翁、人聲如沸焦蘑。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,262評論 0 19
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽例嘱。三九已至,卻和暖如春宁舰,著一層夾襖步出監(jiān)牢的瞬間拼卵,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 31,485評論 1 262
  • 我被黑心中介騙來泰國打工蛮艰, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留腋腮,地道東北人。 一個(gè)月前我還...
    沈念sama閱讀 45,501評論 2 354
  • 正文 我出身青樓,卻偏偏與公主長得像即寡,于是被迫代替她去往敵國和親徊哑。 傳聞我的和親對象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 42,792評論 2 345

推薦閱讀更多精彩內(nèi)容

  • 圖像(image) 常用的圖像文件存儲格式: CDR格式 該格式是CoreDraw軟件專用的一種圖形文件存儲格式聪富;...
    我才不是稻草人閱讀 1,588評論 0 0
  • 第一章 HTML5 (2014年10月29日發(fā)布)新特性: 10個(gè) (1)新的語義標(biāo)簽 (2)增強(qiáng)型表單 (3)視...
    fastwe閱讀 942評論 0 1
  • 林沖是水滸傳中非常重要的一個(gè)人物莺丑。書中描述他:豹頭環(huán)眼,身高八尺墩蔓,東京八十萬禁軍教頭梢莽,使一桿丈八蛇矛槍。想起...
    瑞松閱讀 678評論 0 3
  • 師北宸21天寫作訓(xùn)練營Vol.1 無由來厭惡一個(gè)人,我們會歸咎于天命阵面。因?yàn)槲覀儧]有辦法判斷為什么會厭惡你轻局,所以我們...
    小黃叔_43d6閱讀 607評論 0 0
  • 嘗試了兩個(gè)有點(diǎn)不一樣的背景,試試感覺膜钓,你們喜歡哪張呢~
    remember_RM閱讀 393評論 0 5