CSS 过滤器

CSS 过滤器

在本文中,我们将介绍CSS的过滤器,包括filter属性以及一些常用的过滤器函数。

阅读更多:CSS 教程

filter属性

CSS3中引入了filter属性,允许我们通过一些函数来改变元素的外观。filter属性可以应用于大多数HTML元素,包括图片和背景图像。

语法

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

/* 或者多个函数组合在一起 */
filter: blur(2px) invert(50%) drop-shadow(0 0 3px #888);

例子

下面是一些常见的CSS过滤器及其效果。

1. 模糊过滤器 – blur()

blur()函数用于创建一个模糊效果。该函数接受一个数字参数,表示模糊的程度。数值越大,模糊效果越明显。

img {
  filter: blur(5px);
}

2. 亮度过滤器 – brightness()

brightness()函数用于改变元素的亮度。该函数接受一个百分比参数,表示元素的亮度。百分比越高,元素越亮。

img {
  filter: brightness(150%);
}

3. 对比度过滤器 – contrast()

contrast()函数用于改变元素的对比度。该函数接受一个百分比参数,表示元素的对比度。百分比越高,元素的对比度越强。

img {
  filter: contrast(200%);
}

4. 阴影过滤器 – drop-shadow()

drop-shadow()函数用于为元素创建一个阴影效果。该函数接受多个参数,包括阴影的偏移量、模糊半径和阴影颜色。

img {
  filter: drop-shadow(2px 2px 5px #888);
}

5. 灰度过滤器 – grayscale()

grayscale()函数用于将元素转换为灰度图像。该函数接受一个百分比参数,表示元素的灰度级别。百分比越高,元素越接近黑白图像。

img {
  filter: grayscale(100%);
}

6. 色相旋转过滤器 – hue-rotate()

hue-rotate()函数用于改变元素的色相。该函数接受一个角度参数,表示元素的色相。角度越大,色相旋转的越明显。

img {
  filter: hue-rotate(90deg);
}

7. 反转颜色过滤器 – invert()

invert()函数用于将元素的颜色反转。该函数接受一个百分比参数,表示元素颜色反转的程度。百分比越高,反转的程度越大。

img {
  filter: invert(100%);
}

8. 不透明度过滤器 – opacity()

opacity()函数用于改变元素的不透明度。该函数接受一个百分比参数,表示元素的透明度。百分比越低,元素越透明。

img {
  filter: opacity(50%);
}

9. 饱和度过滤器 – saturate()

saturate()函数用于改变元素的饱和度。该函数接受一个百分比参数,表示元素的饱和度。百分比越高,元素的颜色越鲜艳。

img {
  filter: saturate(200%);
}

10. 褐色过滤器 – sepia()

sepia()函数用于将元素转换为褐色图像。该函数接受一个百分比参数,表示转换的程度。百分比越高,元素越褐色。

img {
  filter: sepia(100%);
}

过滤器组合

可以将多个过滤器组合在一起,以创建更复杂的效果。可以像下面这样组合多个过滤器。

img {
  filter: grayscale(100%) sepia(100%) opacity(50%);
}

浏览器兼容性

CSS的过滤器是CSS3的一部分,因此不是所有浏览器都支持它们。兼容性问题主要出现在IE浏览器和早期版本的Chrome和Firefox中。可以使用CSS前缀来解决兼容性问题。

/* Firefox */
-moz-filter: blur(2px);

/* Chrome 和 Safari */
-webkit-filter: blur(2px);

/* Opera */
-o-filter: blur(2px);

/* IE10+ */
-ms-filter: blur(2px);
filter: blur(2px);

总结

CSS的过滤器是可以改变元素外观的一种强大的工具,可以使用多个过滤器来创建更复杂的效果。虽然过滤器不是所有浏览器都支持,但是在现代的浏览器中得到了广泛的应用。

Camera课程

Python教程

Java教程

Web教程

数据库教程

图形图像教程

办公软件教程

Linux教程

计算机教程

大数据教程

开发工具教程

CSS 精选教程