必須要說明的是,這裏的CSS3 Filter與我們所熟悉的CSS Filter是完全不同的兩個概念,也不是我們所熟悉的IE濾鏡,它是指通過CSS或SVG渲染元素概念可以描述的元素,包括它的子元素。
關於CSS3 Filter的具體解釋您可以參考《Filter Effects 1.0》這篇文章。
接下來我們就開始探討如何使用CSS3 Filter實現我們想要的效果。
首先,我們介紹一下Filters的使用:Filters主要是運用在圖片上,以實現一些特效(儘管他們也能運用於video上)。但是,我們主要討論的是Filter圖片上的運用。
再來,介紹一下Filters的語法:Filters使用時候的語法非常簡單,例如:
1 2 3 | elm { filter: none | <filter-function > [ <filter-function> ]* } |
它的默認值是none,且不具備繼承性。其中filter-function具有以下可選值:
1、grayscale灰度
2、sepia褐色
3、saturate飽和度
4、hue-rotate色相旋轉
5、invert反色
6、opacity透明度
7、brightness亮度
8、contrast對比度
9、blur模糊
10、drop-shadow陰影
最後,談一談Filters在瀏覽器中的兼容性:
目前支持這個屬性的瀏覽器少得可憐,現在只有webkit支持,而且只有webkit nightly版本和Chrome 18.0.976以上以上版本才支持,所以說,你要是想看到效果就需要下載這兩個版本中的一個。
下面我們一起來見證這些效果的實現過程,首先在頁面中應該有一張圖片:
1 | <img title=”normal” width=”128″ height=”128″ alt=”HTML5 Logo” src=”http://www.php100.com/uploadfile/2012/1030/20121030080410580.jpg” /> |
將圖片取名爲“normal”,表示此圖沒有任何“filter”效果,接着在效果實現的過程中,我們依次將其類名改成對應的效果名。
一、grayscale灰度
使用這個特效,會把圖片變成灰色,也就是說你的圖片將只有兩種顏色——“黑色”和“白色”。
1 2 3 | .grayscale{ -webkit-filter:grayscale(1); } |
默認值:100%。
如果你在grayscale()中沒有任何參數值,默認的將會以“100%”渲染。其效果下圖所示:
二、sepia
sepia譯爲“褐色”,使用這種特效,會將你的圖片復古成黑白老照片。
1 2 3 | .sepia{ -webkit-filter:sepia(1); } |
默認值:100%。
如果你在sepia()中沒有任參數值,默認將會以“100%”渲染,具體效果如下圖所示:
三、saturate飽和度
saturat的作用是用來改變圖片的飽和度。
1 2 3 | .saturate{ -webkit-filter:saturate(0.5); } |
默認值:100%。
如果我們將其值變大到300%,那麼效果將如下圖所示:
1 2 3 | .saturate{ -webkit-filter:saturate(3); } |
四、hue-rotate色相旋轉
hue-rotate的作用用來改變圖片的色相。
1 2 3 | .hue-rotate{ -webkit-filter:hue-rotate(90deg); } |
默認值:0deg。
五、invert反色
invert做出來的效果就像是我們照相機底面的效果一樣。
1 2 3 | .invert{ -webkit-filter:invert(1); } |
默認值:100%。
六、opacity透明度
opacity的作用是改變圖片的透明度。
1 2 3 | .opacity{ -webkit-filter:opacity(.2); } |
默認值:100%。
七、brightness亮度
brightness的作用是改變圖片的亮度。
1 2 3 | .brightness{ -webkit-filter:brightness(.5); } |
默認值:100%。
八、contrast對比度
contrast的作用是改變圖片的對比度,學習過photoshop的,應該都知道。
1 2 3 | .contrast{ -webkit-filter:contrast(2); } |
默認值:100%。
九、blur模糊
blurt的作用是改變圖片的清晰度。
1 2 3 | .blur{ -webkit-filter:blur(3px); } |
默認值:0。
十、drop-shadow陰影
drop-shadow的效果類似於box-shadow,作用是給圖片加陰影效果。
1 2 3 | .drop-shadow{ -webkit-filter:drop-shadow(5px 5px 5px #ccc); } |
以上所列出的就是CSS3 Filter能夠實現的10種效果,當然,如果你需要什麼樣的效果還得自己設定。
例如:
1 2 3 | .custom{ -webkit-filter:saturate(5) hue-rotate(500deg) grayscale(0.3) sepia(0.7) contrast(1.5) invert(0.2) brightness(.9); } |
其實大家仔細一看,這些效果就像是photoshop做出來的一樣,CSS3 Filter能夠實現的很多效果都是類似於photoshop中的某種特效。但是,大家想一想不需要自己用photoshop去做效果,幾句簡簡單單的 CSS3代碼就能夠實現這樣的效果是不是很炫?
不光光是Filter,CSS3只用代碼就能夠實現的效果還有很多很多,是不是覺得很期待?不用圖片,不用Javascript,幾句簡簡單單的CSS3代碼就能實現以前不敢想的效果,還等什麼?趕快進入CSS3的世界吧。