filter 属性将模糊或颜色偏移等图形效果应用于元素,常用于调整图像、背景和边框的渲染。
一个 filter 例子
/*定义一个div基本样式*/ div {   margin: 10px auto;   padding: 20px;   width: 200px;   border: 5px dashed orange; }  /* 滤镜样式 */ .filter-one {   -webkit-filter: drop-shadow(5px 5px 1px rgba(0, 0, 0, 0.7));   filter: drop-shadow(5px 5px 1px rgba(0, 0, 0, 0.7)); } 
定义了一个基本的 div 样式,和一个滤镜样式类。这是一个为元素添加阴影的样式。
<div>没有滤镜</div> <div class="filter-one">滤镜 1</div> 
应用之后,看一下效果如下:

这个滤镜的效果非常的明显。那滤镜使用语法是什么样的呢?
滤镜函数
滤镜多使用函数实现,常见的滤镜函数及使用语法如下:
/* 滤镜函数( 值 )*/ filter: blur(5px); /* 将高斯模糊应用于输入图像。 */ filter: brightness(0.4); /* 将线性乘法器应用于输入图像,以调整其亮度。 */ filter: contrast(200%); /* 调整输入图像的对比度。 */ filter: drop-shadow(16px 16px 20px blue); /* 沿图像的轮廓生成阴影效果。 */ filter: grayscale(50%); /* 将图像转换为灰度图。 */ filter: hue-rotate(90deg); /* 应用色相旋转。 */ filter: invert(75%); /* 反转输入图像。 */ filter: opacity(25%); /* 应用透明度。 */ filter: saturate(30%); /* 改变图像饱和度。 */ filter: sepia(60%); /* 将图像转换为深褐色。 */ 
正如一开始所说,滤镜多用于图像,看看这些图像应用到同一张图像上是什么效果。
.img-1 {   filter: blur(5px);   /* 将高斯模糊应用于输入图像。 */ }  .img-2 {   filter: brightness(0.4);   /* 将线性乘法器应用于输入图像,以调整其亮度。 */ }  .img-3 {   filter: contrast(200%);   /* 调整输入图像的对比度。 */ }  .img-4 {   filter: drop-shadow(16px 16px 20px yellow);   /* 沿图像的轮廓生成阴影效果。 */ }  .img-5 {   filter: grayscale(50%);   /* 将图像转换为灰度图。 */ }  .img-6 {   filter: hue-rotate(90deg);   /* 应用色相旋转。 */ }  .img-7 {   filter: invert(75%);   /* 反转输入图像。 */ }  .img-8 {   filter: opacity(25%);   /* 应用透明度。 */ }  .img-9 {   filter: saturate(30%);   /* 改变图像饱和度。 */ }  .img-10 {   filter: sepia(60%);   /* 将图像转换为深褐色。 */ } 
<p>   <span>原图</span>   <img src="../img/css-0.png" /> </p> <p>   <span>应用样式 img-1</span>   <img class="img-1" src="../img/css-0.png" /> </p> <p>   <span>应用样式 img-2</span>   <img class="img-2" src="../img/css-0.png" /> </p> <p>   <span>应用样式 img-3</span>   <img class="img-3" src="../img/css-0.png" /> </p> <p>   <span>应用样式 img-4</span>   <img class="img-4" src="../img/css-0.png" /> </p> <p>   <span>应用样式 img-5</span>   <img class="img-5" src="../img/css-0.png" /> </p> <p>   <span>应用样式 img-6</span>   <img class="img-6" src="../img/css-0.png" /> </p> <p>   <span>应用样式 img-7</span>   <img class="img-7" src="../img/css-0.png" /> </p> <p>   <span>应用样式 img-8</span>   <img class="img-8" src="../img/css-0.png" /> </p> <p>   <span>应用样式 img-9</span>   <img class="img-9" src="../img/css-0.png" /> </p> <p>   <span>应用样式 img-10</span>   <img class="img-10" src="../img/css-0.png" /> </p> 
这里展现出来的效果如下:

应用多个滤镜
.img-11 {   filter: drop-shadow(16px 16px 20px yellow) blur(1px); } 
同时应用多个滤镜,使用空格分隔。
<p>   <span>应用样式 .img-11</span>   <img class="img-11" src="../img/css-0.png" /> </p> 

当多个滤镜应用时,按顺序依次应用。
不使用滤镜
如果不想使用滤镜,可以把 filter 值设置成 none。
总结
该文章在 2024/10/19 12:43:49 编辑过