实现毛玻璃效果最简单的方式就是使用 CSS 的 backdrop-filter 属性。这个属性可以对元素背后的区域应用各种滤镜效果,如模糊、饱和度调节等。示例:
- .blur-element {
- background-color: rgba(255, 255, 255, 0.2); /* 半透明背景 */
- backdrop-filter: blur(10px); /* 背景模糊 */
- -webkit-backdrop-filter: blur(10px); /* 兼容老版本 Safari */
- }
扩展:CSS滤镜(filter)
filters是CSS3里新增的一种神奇的功能,一般我们提及滤镜,就会想到使用PhotoShop制作的图片,但是使用CSS滤镜不需要任何作图软件,仅使用CSS就会生成多种的滤镜效果,例如模糊效果、透明效果、色彩反差调整等等;同时,CSS滤镜不仅可以对图片进行滤镜处理,还可以对网页元素甚至视频进行滤镜处理。
CSS 中实现滤镜效果需要通过 filter 属性并配合一些函数来实现。
常用filter函数
滤镜效果 |
函数 |
补充 |
无 |
none |
默认值,表示没有效果 |
模糊 |
blur(px) |
为图像设置高斯模糊,默认值为 0,单位为像素,值较大越模糊 |
调整亮度 |
brightness(number) |
number越大图像越亮,number不能取负值,可以是整数也可以是百分比 |
调整灰度 |
grayscale(%) |
将图像转换为灰度图像,默认值为 0%,表示原始图像;100% 表示将图像完全变成灰度图像(即黑白图像),不允许为负值 |
调整对比度 |
contrast(%) |
默认值为 100%,代表原始图像;0% 将使图像完全变黑;当值超过 100% 时图像将获得更高的对比度 |
阴影 |
drop-shadow(h-shadow v-shadow blur spread color) |
为图像添加阴影效果,参数说明如下: h-shadow:必填值,指定水平方向阴影的像素值,若值为负,则阴影会出现在图像的左侧; v-shadow:必填值,指定垂直方向阴影的像素值,若值为负,则阴影会出现在图像的上方; blur:可选值,为阴影添加模糊效果,默认值为 0,单位为像素,值越大创建的模糊就越多(阴影会变得更大更亮),不允许使用负值; spread:可选值,默认值为 0,单位为像素。若值为正,则阴影将会扩展并增大;若值为负,则阴影会缩小; color:可选值,为阴影添加颜色,如未指定,则由浏览器来绝对,通常为黑色。 注意:Chrome、Safari 和 Opera 等浏览器不支持第 4 个参数,如果添加,则不会有任何效果 |
反转图像 |
invert(%) |
默认值为 0%,表示原始图像;100% 则表示完全反转,不允许使用负值 |
不透明度 |
opacity(%) |
默认值为 100%,表示原始图像;0% 表示完全透明,不允许使用负值 |
图像转为棕褐色 |
sepia(%) |
默认值为 0%,表示原始图像;100% 表示图像完全变成棕褐色,不允许使用负值 |
调整饱和度 |
saturate(%) |
默认值为 100%,表示原始图像;0% 表示图像完全不饱和,不允许使用负值 |
图像色相旋转 |
hue-rotate(deg) |
该值用来定义色环的度数,默认值为 0deg,代表原始图像,最大值为 360deg |
文章点评