CSS3 在有了 filter 這個屬性後,我們就可以很簡單地透過設定來替圖片加上濾鏡效果,也就是不用每次都仰賴像 photoshop 這樣的影像繪圖軟體了。
這個屬性為 filter ,可以設定的值有以下這些
filter: none | blur() | brightness() | contrast() | drop-shadow() | grayscale() | hue-rotate() | invert() | opacity() | saturate() | sepia() | url();
各別介紹與可以給的值:
- blur(px)- 模糊,裡面可以給的單位為 px,預設為 0,但無法使用 %
- brightness(%)- 亮度,裡面給的值為 %,預設為 100%,超過 100% 會變亮,低於 100% 則會變暗,0%會全黑。
- contrast(%)- 對比,裡面給的值為 %,預設為 100%,超過 100% 增加對比,低於 100% 則降低對比,0%會變灰色。
- drop-shadow(h-shadow v-shadow blur spread color)- 跟 box-shadow 很像,第一個值為 x 軸偏移,第二個值為 y 軸偏移,blur 為模糊範圍,spread 則為陰影擴張,不一定要加也並非所有瀏覽器都支援,color 則為陰影顏色,與 box-shadow 最大的差別是可以套用在不規則形狀上。
- grayscale(%)- 灰階,值在 0%~100% 之間,100%為完全灰階,預設為 0
- hue-rotate(deg)- 顏色變換,預設為0,轉一圈為 360deg,顏色會在這區間內變化。
- invert(%)- 負片效果,預設為 0,範圍在 0~100%之間,100%的時候會完全負片。
- opacity(%)- 透明度,範圍為 0%~100%,設為 0的時候為完全透明,跟 css 的 opacity 屬性很像,但有些瀏覽器會在 filter 上有硬體加速的效果。
- saturate(%)- 飽和度,預設為 100%,低於 100%為降低飽和度,最低為 0%,超過 100% 則會增加飽和度。
- sepia(%)- 將顏色轉為泛黃的顏色,預設為 0%,100% 則為全轉換。
- url()- url 可以透過 svg 指定濾鏡元素,例如:filter: url(svg-url#element-id)
以下則為實際的效果: