譯自:[http://net.tutsplus.com/tutorials/html-css-techniques/say-hello-to-css3-filters/](http://net.tutsplus.com/tutorials/html-css-techniques/say-hello-to-css3-filters/)
Jeffrey Way于2011年12月22日
譯者:蔣宇捷(轉載請標明出處-[http://blog.csdn.net/hfahe](http://blog.csdn.net/hfahe))
------
教程詳細內容
?主題:CSS濾鏡
?可用性: [Webkit每晚構建的版本](http://tools.google.com/dlpage/chromesxs)
?酷炫程度:100
[**觀看演示**](http://jsbin.com/uziyih)
? ? ? 本月初公布了一個新的規范-[濾鏡效果1.0](https://dvcs.w3.org/hg/FXTF/raw-file/tip/filters/index.html)。 它提出了一些令人興奮的新特性,我們可以使用它在瀏覽器中來創建Photoshop般的效果。 更妙的是, [Webkit](http://tools.google.com/dlpage/chromesxs)已經在每晚構建的版本中添加了支持!
**根據此規范...**
“濾鏡效果是一個圖形化的操作,它被應用到一個元素上以繪制到頁面文檔里。它是一種基于圖像的效果,因為它接受零個或多個圖像作為輸入,指定若干效果的具體參數,然后產生圖像作為輸出。“
現在,至少在這一點上,我并不認為可以告訴你這些新濾鏡可能相關的一切。 我自己仍然還在學習中。 這就是說,我將向你展示我們如何在新的項目中使用一些新的濾鏡,然后希望我們可以集思廣益,相互學習和借鑒。現在讓我們開始吧。
濾鏡通常和圖像結合(雖然它們也可以應用在視頻上)。 因此在下面的演示里,我們將使用Nettuts +的標志作為輸入。
~~~
<img src="http://d2o0t5hpnwv4c1.cloudfront.net/nt-logo.jpg" alt="Nettuts+ Logo">
~~~

*“請謹記:這些濾鏡在WebKit瀏覽器的公共版本中尚不可用。現在可以下載[Chrome Canary](http://tools.google.com/dlpage/chromesxs)用于觀看這些演示。“*
**色相旋轉**
? ? ??曾經和Photoshop色相/飽和度面板打過交道嗎? 現在好了,你可以在瀏覽器中應用它。
~~~
img {
-webkit-filter: hue-rotate(50deg);
}
~~~
? ? ??如果對這個度數值如何設定感到困惑,可以試想一下一個色輪。 您指定的度數值決定了該輪停止之處。 這意味著 0deg將不會有任何效果,而50deg會相應的轉動撥盤。
在這種情況下,Nettuts +的標志將采取ISH藍光色調。

[觀看演示](http://jsbin.com/ohuhek)
? ? ??或者如果你希望圖像不斷的改變顏色。 可能在真實項目中,色彩過渡會微妙得多,但這個演示中我們將簡單表示。
~~~
img {
-webkit-animation: adjustHue 1s alternate infinite;
}
@-webkit-keyframes adjustHue {
0% { -webkit-filter: hue-rotate(30deg); }
50% { -webkit-filter: hue-rotate(60deg); }
100% { -webkit-filter: hue-rotate(90deg); }
}
~~~
? ? ??相當簡單。 [查看演示](http://jsbin.com/ohuhek/65)
**灰度**
? ? ??我們過去曾經使用各種hack來在瀏覽器中實現從黑白色過渡為彩色圖像。其中一種技術要求兩幅圖像疊在彼此之上。 另一種選擇是使用Canvas。 現在我們可以使用grayscale濾鏡。
~~~
img {
-webkit-filter: grayscale(100%);
}
~~~
? ? ??當使用以百分比表示的grayscale函數時,自己可以考慮一下,“在0至100%之間“,我想要這個圖片以多深的灰度來表示?

[觀看演示](http://jsbin.com/ohuhek/2)
? ? ??在和CSS3的transitions配合使用時,我們可以表現一個非常干凈漂亮的鼠標懸停效果。
~~~
img {
-webkit-transition: -webkit-filter 1s;
}
img:hover {
-webkit-filter: grayscale(100%);
}
~~~
? ? ??將來你要提供其他瀏覽器的前綴,但是現在沒有必要。 無需添加Firefox的transitions,因為濾鏡目前僅WebKit內核。
[觀看演示](http://jsbin.com/ohuhek/3)
**Sepia-棕褐色**
? ? ??喜歡Instagram Sepia風格的濾鏡效果?讓我們看看Nettuts+圖標的懷舊風格。
~~~
img {
-webkit-filter: sepia(100%);
}
~~~

[查看演示](http://jsbin.com/ohuhek/4)
? ? ??不過通常情況下這個效果將會用到照片上。讓我們看看有史以來最偉大的藝術家在Sepia濾鏡下的效果。

[查看演示](http://jsbin.com/ohuhek/4)
? ? ??相當完美。
**虛化**
? ? ??通過設置半徑我們可以輕松的在瀏覽器中虛化一張圖片。
~~~
img {
-webkit-filter: blur(2px);
}
~~~

?
[觀看演示](http://jsbin.com/ohuhek/5)
? ? ??或將虛化半徑加大到50像素。

[觀看演示](http://jsbin.com/ohuhek/14)
**亮度**
? ? ??我們使用brightness濾鏡來指定輸入圖像呈現出的亮度。
~~~
img {
-webkit-filter: brightness(15%);
}
~~~

[觀看演示](http://jsbin.com/ohuhek/6)
? ? ??將100%考慮成基準點。brightness(100%)保持原圖不變。 然而當我們降低這個百分比時,圖像將不斷變暗。
*“不要忘記:你可以把所有這些濾鏡疊加起來。”*
~~~
img {
-webkit-filter: brightness(60%) sepia(100%);
}
~~~

[觀看演示](http://jsbin.com/ohuhek/7)
**對比度**
? ? ??現在我們可以很容易地調整圖像的對比度。
~~~
img {
-webkit-filter: contrast(200%);
}
~~~

[觀看演示](http://jsbin.com/ohuhek/9)
[](http://jsbin.com/ohuhek/9)? ? ? ??再次將100%考慮成基準點。 我們可以通過增加或減少這個值來調整圖像的對比度。 根據規范,設置為0%將會使圖像全黑。你可能期望-webkit-filter: brightness(0%)有類似的效果,不過我看到的是更多的暗灰色。
~~~
img {
-webkit-filter: contrast(0%);
}
~~~

[觀看演示](http://jsbin.com/ohuhek/8)
? ? ??現在我們將比例提高到2000%。
~~~
img {
-webkit-filter: contrast(2000%);
}
~~~

[觀看演示](http://jsbin.com/ohuhek/10)
? ? ??為了好玩,讓我們創建一個Nettuts +標志跳動的矩陣版本。 我們將結合CSS3動畫和濾鏡。
~~~
img {
-webkit-animation: bluePill 1s alternate infinite;
}
@-webkit-keyframes bluePill {
0% { -webkit-filter: contrast(2000%); }
100% { -webkit-filter: contrast(100%); }
}
~~~
[觀看演示](http://jsbin.com/ohuhek/12)
**反轉**
? ? ??Mac用戶請按下Control + Option + Command + 8 。請注意它是如何反轉屏幕顯示的(當然你可以注意到)。每當深夜當在電腦上閱讀,眼睛酸痛時我就采用這一招。
? ? ??將invert濾鏡設置為100%,就可以達到相同的效果。
~~~
img {
-webkit-filter: invert(100%);
}
~~~

[觀看演示](http://jsbin.com/ohuhek/13)
? ? ??請注意,0%會保持原圖不變。
? ? ??現在,從技術角度來說,你可以在網站的body元素上應用這個濾鏡。 然而你會發現頁面顯示相當慢,并且無法上下滾動。 除非是為了娛樂,否則不要這樣做。

**飽和度**
? ? ??除了設置grayscale(100%)之外,我們還可以將圖像去飽和度來達到相似的效果。
? ? ??在這種情況下,100%是不變的狀態,你可以增加或減少這個值。 因此,減少到0%將會從圖像中刪除所有的顏色。
~~~
img {
-webkit-filter: saturate(0%);
}
~~~

[查看演示](http://jsbin.com/ohuhek/15)
? ? ??或者將值增大到700%:

[觀看演示](http://jsbin.com/ohuhek/16)
**這是現在所有的內容**
? ? ??請繼續在下周關注這篇文章。 由于這些技術仍然非常新,我們都需要時間來弄清楚如何使用它們。 當我了解[更多內容](https://dvcs.w3.org/hg/FXTF/raw-file/tip/filters/index.html)時我會保持更新這篇文章。
- 前言
- AutoPager的簡單實現
- 利用CSS3特性巧妙實現漂亮的DIV箭頭
- IE9在Win7下任務欄新特性簡介
- 瀏覽器九宮格的簡單實現
- Raphael js庫簡介
- 使用CSS3構建Ajax加載動畫
- 用CSS3創建動畫價格表
- 用CSS3實現瀏覽器的縮放功能
- 用純CSS3實現QQ LOGO
- 用CSS3創建旋轉載入器
- 使用Javascript開發移動應用程序
- 用HTML5創建超酷圖像灰度漸變效果
- 使用CSS3創建文字顏色漸變(CSS3 Text Gradient)
- 僅用CSS創建立體旋轉幻燈片
- 如何創建跨瀏覽器的HTML5表單
- 用CSS3實現動畫進度條
- HTML5 Guitar Tab Player
- 奇妙的HTML5 Canvas動畫實例
- 談HTML5和CSS3的國際化支持
- 實現跨瀏覽器的HTML5占位符
- 前端開發必備工具:WhatFont Bookmarklet-方便的查詢網頁上的字體
- 使用HTML5和CSS3來創建幻燈片
- HTML5之美
- 如何使用HTML5創建在線精美簡歷
- 以小見大、由淺入深-談如何面試Javascript工程師
- 快速入門:HTML5強大的Details元素
- 用CSS3實現圖像風格
- HTML5視頻字幕與WebVTT
- 用純CSS3實現Path華麗動畫
- 用3個步驟實現響應式網頁設計
- 遇見CSS3濾鏡
- 關于CSS3濾鏡的碎念
- 用純CSS3繪制萌系漫畫人物動態頭像
- CSS3新的鼠標樣式介紹
- 用HTML5獻上愛的3D玫瑰
- 對HTML5 Device API相關規范的解惑
- 如何使用HTML5實現拍照上傳應用
- 2012第一季度國外HTML5移動開發趨勢
- HTML5新特性:范圍樣式
- 百度開發者大會-《用HTML5新特性開發移動App》PPT分享
- Chrome 19對于HTML5最新支持的動態:電池狀態API,全屏API,震動API,語音API
- 遇見Javascript類型數組(Typed Array)
- 用HTML5 Audio API開發游戲音樂
- 用HTML5實現人臉識別
- 用Javascript實現人臉美容
- Chrome 20對于HTML5最新支持的動態:顏色輸入,網絡信息API,CSS著色器
- 用HTML5實現手機搖一搖的功能
- 用HTML5實現iPad應用無限平滑滾動
- 用非響應式設計構建跨端Web App
- 了解SVG
- HTML5圖像適配介紹
- HTML5安全:內容安全策略(CSP)簡介
- HTML5安全:CORS(跨域資源共享)簡介
- 用CSS3 Region和3D變換實現書籍翻頁效果
- 談談移動App的思維誤區
- Chrome新特性:文件夾拖拽支持
- 《關注HTML5安全》
- HTML5安全風險詳析之一:CORS攻擊
- HTML5安全風險詳析之二:Web Storage攻擊
- HTML5圖像適配最新進展:響應式圖片規范草案
- HTML5移動Web App相關標準狀態及路線圖
- HTML5安全風險詳析之三:WebSQL攻擊
- Chrome引入WebRTC支持視頻聊天App
- HTML5安全風險詳析之四:Web Worker攻擊
- HTML5安全風險詳析之五:劫持攻擊
- HTML5安全風險詳析之六:API攻擊
- HTML5安全攻防詳析之七:新標簽攻擊
- 在iOS Safari中播放離線音頻
- 使用WebRTC實現遠程屏幕共享
- Firefox、Android、iOS遇見WebRTC
- HTML5光線傳感器簡介
- HTML5安全攻防詳析之八:Web Socket攻擊
- HTML5安全攻防詳析之完結篇:HTML5對安全的改進
- 激動人心!在網頁上通過語音輸入文字 - HTML5 Web Speech API介紹
- Web滾動性能優化實戰
- 用CSS3設計響應式導航菜單
- 用HTML5構建高性能視差網站
- 漫談@supports與CSS3條件規則
- HTML5下載屬性簡介
- 如何開發優秀的HTML5游戲?-迪斯尼《尋找奧茲之路》游戲技術詳解(一)
- 如何開發優秀的HTML5游戲?-迪斯尼《尋找奧茲之路》游戲技術詳解(二)
- 趨勢:Chrome為打包應用提供強大新特性
- 從HTML5移動應用現狀談發展趨勢
- 基于HTML5的Web跨設備超聲波通信方案