純乾貨,前端學者的福音!如何使用css濾鏡改變圖片顏色

說到對圖片進行處理,我們經常會想到PS,美圖秀秀這類的圖像處理工具。作為前端,全棧開發者,我們經常會需要處理一些特效,例如根據不同的狀態,讓圖片顯示不同的顏色。或者是hover的時候,對圖片的對比度,陰影進行處理。

純乾貨,前端學者的福音!如何使用css濾鏡改變圖片顏色

你以為這些是經過PS軟件處理出來的?不不不,只有一張圖片,純粹的是用css寫出來的。

本文的目標就是:手把手教大家學習CSS濾鏡(filter)屬性,CSS濾鏡提供的圖形特效,像模糊,銳化或元素變色。過濾器通常被用於調整圖片,背景和邊界的渲染。

使用CSS濾鏡只需要如下5步:

1. 準備工作

2. 使用sublime快速書寫HTML結構

3. 使用CSS選擇器選中目標標籤

4. CSS濾鏡的基本用法

5. CSS濾鏡實例演示

一、第一步 —— 準備工作

目標 : 下載並安裝sublime以及準備一張圖片素材

下載對應你操作系統的sublime編輯器,http://www.sublimetext.com/3

純乾貨,前端學者的福音!如何使用css濾鏡改變圖片顏色

圖片素材:

純乾貨,前端學者的福音!如何使用css濾鏡改變圖片顏色

小結 : 準備好代碼編輯器,比如sublime,hbuilder,vscode等編輯,都是可以的,再準備一張圖片素材

二、第二步 —— 書寫HTML結構

目標 : 使用sublime編輯器快速生成HTML5結構的頁面

1. 安裝sublime以後,並打開sublime.exe

2. 在電腦的某個目下新建一個空目錄code,將我們的圖片素材放一個images文件夾下,並把這個images文件夾也放在code中

3. 使用sublime打開我們剛準備好的code文件夾

4. 使用sublime新建一個HTML網頁文件,後綴名需要為html

5. 接著輸入一個英文輸入狀態下的!再按tab鍵,即可快速生成HTML5的基本結構!

純乾貨,前端學者的福音!如何使用css濾鏡改變圖片顏色

6. 在網頁中插入內容

純乾貨,前端學者的福音!如何使用css濾鏡改變圖片顏色

小結 : 使用代碼編輯器新建網頁文件,並加入兩張img圖片標籤,正確引入圖片

三、第三步 —— 使用CSS選擇器選中目標標籤

目標:使用CSS類選擇器選中我們頁面中的目標圖片標籤, 格式 .類名

純乾貨,前端學者的福音!如何使用css濾鏡改變圖片顏色

小結 : 使用 css類選擇 格式: .類名 選中對應的目標標籤

四、第四步 —— CSS濾鏡的基本用法

目標:瞭解CSS濾鏡的基本用法以及各方法之間效果差異

1. CSS濾鏡基本語法

filter: function(param);

filter: none | blur() | brightness() | contrast() | drop-shadow() | grayscale() | hue-rotate() | invert() | opacity() | saturate() | sepia() ;

提示:允許同時使用多個濾鏡,多個濾鏡效果之間使用空格分隔。

2. CSS濾鏡支持的方法(function)有

– grayscale 灰度

– sepia 褐色

– saturate 飽和度

– hue-rotate 色相旋轉

– invert 反色

– opacity 透明度

– brightness 亮度

– contrast 對比度

– blur 模糊

– drop-shadow 陰影

注意:為了實現兼容性,我們加上-webkit- 前綴

-webkit-filter : function (param);

3. filter函數

注意: 濾鏡通常使用百分比 (如:75%), 當然也可以使用小數來表示 (如:0.75)。

純乾貨,前端學者的福音!如何使用css濾鏡改變圖片顏色

純乾貨,前端學者的福音!如何使用css濾鏡改變圖片顏色

小結 : filter: none | blur() | brightness() | contrast() | drop-shadow() | grayscale() | hue-rotate() | invert() | opacity() | saturate() | sepia() ;

五、第五步 —— CSS濾鏡實例演示

目標:理解CSS濾鏡各種效果之間的不同

1. 模糊: blur(長度值) 值越大越模糊 這個參數可設置css長度值,但不接受百分比值

filter : blur(2px);

-webkit-filter : blur(2px);

純乾貨,前端學者的福音!如何使用css濾鏡改變圖片顏色

值越大越模糊

純乾貨,前端學者的福音!如何使用css濾鏡改變圖片顏色

2. 亮度 : brightness(百分比) 如果值是0%,圖像會全黑。值是100%,則圖像無變化。其他的值對應線性乘數效果。值超過100%也是可以的,圖像會比原來更亮。如果沒有設定值,默認是1。

filter : brightness(30%);

-webkit-filter : brightness(30%);

純乾貨,前端學者的福音!如何使用css濾鏡改變圖片顏色

純乾貨,前端學者的福音!如何使用css濾鏡改變圖片顏色

3. 對比度 : contrast(%) 值是0%的話,圖像會全黑。值是100%,圖像不變。值可以超過100%,意味著會運用更低的對比。若沒有設置值,默認是1。

filter : contrast(0);

-webkit-filter : contrast(0);

純乾貨,前端學者的福音!如何使用css濾鏡改變圖片顏色

純乾貨,前端學者的福音!如何使用css濾鏡改變圖片顏色

4. 陰影 : drop-shadows(陰影水平偏移位置 陰影垂直偏移位置 陰影模糊程度 陰影顏色)

/*drop-shadows(陰影水平偏移位置 陰影垂直偏移位置 陰影模糊程度 陰影顏色)*/

filter : drop-shadow(10px 10px 5px #000);

-webkit-filter : drop-shadow(10px 10px 5px #000);

純乾貨,前端學者的福音!如何使用css濾鏡改變圖片顏色

純乾貨,前端學者的福音!如何使用css濾鏡改變圖片顏色

5. 灰度 : grayscalel(%) 值為100%則完全轉為灰度圖像,值為0%圖像無變化。值在0%到100%之間,則是效果的線性乘子。若未設置,值默認是0

filter : grayscale(100%);

-webkit-filter : grayscale(100%);

純乾貨,前端學者的福音!如何使用css濾鏡改變圖片顏色

純乾貨,前端學者的福音!如何使用css濾鏡改變圖片顏色

6. 色相旋轉 : hue-rotate(deg) deg為旋轉度數,如果值為0deg,則圖像無變化。若值未設置,默認值是0deg。該值雖然沒有最大值,超過360deg的值相當於又繞一圈。

filter : hue-rotate(50deg);

-webkit-filter : hue-rotate(50deg);

純乾貨,前端學者的福音!如何使用css濾鏡改變圖片顏色

純乾貨,前端學者的福音!如何使用css濾鏡改變圖片顏色

7. 反色 : invert(%) 如果100%的值是完全反轉。值為0%則圖像無變化。值在0%和100%之間,則是效果的線性乘子。 若值未設置,值默認是0。

filter : invert(100%);

-webkit-filter : invert(100%);

純乾貨,前端學者的福音!如何使用css濾鏡改變圖片顏色

純乾貨,前端學者的福音!如何使用css濾鏡改變圖片顏色

8. 透明度 : opacity(%) 值為0%則是完全透明,值為100%則圖像無變化。值在0%和100%之間,則是效果的線性乘子,也相當於圖像樣本乘以數量。 若值未設置,值默認是1。該函數與已有的opacity屬性很相似,不同之處在於通過filter,一些瀏覽器為了提升性能會提供硬件加速。

filter : opacity(.5);

-webkit-filter : opacity(.5);

純乾貨,前端學者的福音!如何使用css濾鏡改變圖片顏色

9. 飽和度 : saturate(%) 值為0%則是完全不飽和,值為100%則圖像無變化。其他值,則是效果的線性乘子。超過100%的值是允許的,則有更高的飽和度。 若值未設置,值默認是1。

/*5代表500%*/

filter : saturate(5);

-webkit-filter : saturate(5);

純乾貨,前端學者的福音!如何使用css濾鏡改變圖片顏色

10. 褐色(有種復古的舊照片感覺) : sepia(%) 值為100%則完全是深褐色的,值為0%圖像無變化。值在0%到100%之間,則是效果的線性乘子。若未設置,值默認是0;

filter : sepia(100%);

-webkit-filter : sepia(100%);

純乾貨,前端學者的福音!如何使用css濾鏡改變圖片顏色

11. 使用多個濾鏡,每個濾鏡使用空格分隔。 注意: 順序是非常重要的 (例如使用 grayscale() 後再使用 sepia()將產生一個完整的灰度圖片)。 順序有可能會導致效果不一樣。

/*使用多個濾鏡,每個濾鏡使用空格分隔。*/

filter: contrast(200%) brightness(150%) hue-rotate(50deg);

-webkit-filter: contrast(200%) brightness(150%) hue-rotate(50deg);

純乾貨,前端學者的福音!如何使用css濾鏡改變圖片顏色

小結 : filter: none | blur(px) | brightness(%) | contrast(%) | drop-shadow(px,px,px,color) | grayscale(%) | hue-rotate(deg) | invert(%) | opacity(%) | saturate(%) | sepia(%) ;

總結

到此,我們已經對CSS濾鏡有了一定的初步瞭解,在以後開發過程中,可以根據我們所需要的效果,選擇使用相應的CSS濾鏡效果。

我們再來回顧一下,我們剛剛實現的步驟

1. 準備工作:下載sublime代碼編輯器以及準備圖片素材

2. 書寫HTML基本結構:使用sublime創建一個HTML文件以後,輸入!以後再按tab鍵,在body標籤中插入相應標籤,並正確引入圖片

3. 使用CSS選擇器選中目標標籤:我們使用的是CSS類選擇器,通過標籤的class屬性值獲取目標標籤

4. CSS濾鏡的基本使用: CSS濾鏡語法

filter: function(param);

filter: none | blur() | brightness() | contrast() | drop-shadow() | grayscale() | hue-rotate() | invert() | opacity() | saturate() | sepia() | url();

/*為了實現兼容性,我們加上-webkit- */

-webkit-filter : function (param);

-webkit-filter : filter: none | blur() | brightness() | contrast() | drop-shadow() | grayscale() | hue-rotate() | invert() | opacity() | saturate() | sepia() | url();

/*提示: 允許多個濾鏡,之間使用空格分隔。*/

5. CSS濾鏡實例演示 : 通過代碼演示,瞭解各個濾鏡之間不同的效果

– grayscale 灰度

– sepia 褐色

– saturate 飽和度

– hue-rotate 色相旋轉

– invert 反色

– opacity 透明度

– brightness 亮度

– contrast 對比度

– blur 模糊

– drop-shadow 陰影


分享到:


相關文章: