整合營銷服務商

          電腦端+手機端+微信端=數(shù)據(jù)同步管理

          免費咨詢熱線:

          「IT技術(shù)」網(wǎng)站變成灰色,是如何進行實現(xiàn)的

          「IT技術(shù)」網(wǎng)站變成灰色,是如何進行實現(xiàn)的


          計最近大家也都看到了,在瀏覽互聯(lián)網(wǎng)時,很多網(wǎng)站首頁都變成了灰色。比如百度首頁、淘寶、京東、嗶哩嗶哩等我們常瀏覽的網(wǎng)站。一般在紀念對社會有重大貢獻的任務或者大事件時,為了表達我們的尊重以及沉痛心情,將網(wǎng)站變成灰色進行紀念。

          那么,作為一個it從業(yè)的技術(shù)人員來說,將平時色彩鮮明的網(wǎng)站置成灰色是如何實現(xiàn)的呢?是如何可以做到文字、圖片、按鈕所有的元素都是灰色的效果呢?

          方案1:提前設計一套網(wǎng)站的灰色css樣式,在需要的時候進行替換。顯然這樣做的成本太大,而且有些網(wǎng)站還有一些flash的動畫效果,難道也要做一個黑白版本?甚至有些CG特效動畫更是燒錢。

          方案2:幾行代碼輕松搞定。

          其實這個效果的實現(xiàn)并沒有我們想象的那么復雜。在網(wǎng)頁端按下F12,打開開發(fā)者模式,定位到html標簽上,我們可以看到這樣一段代碼樣式:

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

          如果我們將這個樣式取消,或者是將樣式中的100%設置為0,又會恢復成網(wǎng)站本來的顏色配置。

          那么這段代碼是什么意思呢?主要看 filter grayscale(https://developer.mozilla.org/zh-CN/docs/Web/CSS/filter)是個什么東東。


          grayscale 是一個 CSS 函數(shù),可以把圖像轉(zhuǎn)成灰色,參數(shù)是個百分比,結(jié)果返回一個 filter 函數(shù)。目前的主流瀏覽器版本都支持 grayscale 函數(shù),比如說 PC 端的 Chrome、edge、Firefox、Opera、Safari 等等,除了 IE。

          天是 2020 年 4 月 4 日,星期六,清明節(jié)。

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

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

          網(wǎng)站變灰

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

          CSDN

          愛奇藝

          百度

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

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

          其實,解決方案很簡單,只需要幾行代碼就能搞定了。

          實現(xiàn)

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

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

          變灰效果

          其 CSS 內(nèi)容為:

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

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

          還原效果

          果然是這個樣式在起作用,而且是全局的效果,因為它是作用在了 html 這個節(jié)點之上的。

          另外看看 CSDN,它也是用的這個 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);
          }

          這個實現(xiàn)看起來兼容性會更好一些。

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

          分析

          那么這里我們就來詳細了解一下這究竟是一個什么樣的 CSS 樣式。

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

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

          filter CSS 屬性將模糊或顏色偏移等圖形效果應用于元素。濾鏡通常用于調(diào)整圖像,背景和邊框的渲染。

          CSS 標準里包含了一些已實現(xiàn)預定義效果的函數(shù)。你也可以參考一個 SVG 濾鏡,通過一個 URL 鏈接到 SVG 濾鏡元素 (SVG filter element[1])。

          其實就是一個濾鏡的意思。

          官方有一個 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;

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

          比如這里如果我們可以使用 blur 設置高斯模糊,用法如下:

          filter: blur(radius)

          給圖像設置高斯模糊。radius 一值設定高斯函數(shù)的標準差,或者是屏幕上以多少像素融在一起,所以值越大越模糊;如果沒有設定值,則默認是 0;這個參數(shù)可設置絕對像素值,但不接受百分比值。

          可以達成這樣的效果:

          效果

          再說回剛才的灰色圖像,這里其實就是設置了 grayscale,其用法如下:

          filter: grayscale(percent)

          將圖像轉(zhuǎn)換為灰度圖像。值定義轉(zhuǎn)換的比例。percent 值為 100% 則完全轉(zhuǎn)為灰度圖像,值為 0% 圖像無變化。值在 0% 到 100% 之間,則是效果的線性乘子。若未設置,值默認是 0。另外除了傳遞百分比,還可以傳遞浮點數(shù),效果是一樣的。

          如:

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

          都可以將節(jié)點轉(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é)點只需要加上 gray 這個 class 就好了,比如加到 html 節(jié)點上就可以全站變灰了。

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

          兼容性

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

          總結(jié)

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

          References

          [1] SVG filter element: https://developer.mozilla.org/en-US/docs/Web/SVG/Element/filter

          家好,我是吉礻羊。

          地球母親,每年都會發(fā)生點什么情況,不過地震就是旱澇。

          但是當我們站長想表達一下自己的哀傷,又不想把網(wǎng)站上的色采全部換掉,那么下面這段css就可以幫到大家。

          <style>

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

          </style>

          網(wǎng)站整體變成灰色,一條css完美解決

          試一下吧,為了愛。


          主站蜘蛛池模板: 精品日韩一区二区三区视频| 亚洲一区动漫卡通在线播放| 国产高清在线精品一区二区三区 | 天堂一区人妻无码| 日韩精品一区在线| 无码AV中文一区二区三区| 夜精品a一区二区三区| 日韩精品一区二区三区中文精品 | 激情内射亚洲一区二区三区| 高清无码一区二区在线观看吞精| 日韩精品一区二区三区大桥未久| 日韩一区二区三区无码影院| 久久精品黄AA片一区二区三区 | 视频一区在线播放| 91福利一区二区| 无码中文字幕一区二区三区| 2018高清国产一区二区三区 | 人妻无码一区二区三区AV| 亚洲AV无码一区二区二三区入口 | 国产凸凹视频一区二区| 无码国产精品一区二区免费模式| 国产精品无码一区二区三区毛片 | 精品一区二区三区无码免费视频| 国产福利一区二区在线视频 | 免费日本一区二区| www一区二区www免费| 国产亚洲日韩一区二区三区| 无码AV动漫精品一区二区免费 | 综合无码一区二区三区四区五区| 97精品一区二区视频在线观看| 国产91精品一区二区麻豆网站| 亚洲精品日韩一区二区小说| 中文字幕乱码人妻一区二区三区 | 亚洲日韩AV一区二区三区中文| 日韩在线一区视频| 国产探花在线精品一区二区| 毛片一区二区三区| 亚洲综合无码AV一区二区| 亚洲一区二区三区四区视频| 国产伦理一区二区三区| 一区二区三区在线免费看|