理解 CSS3 滤镜函数


滤镜函数用于设置元素的视觉效果,例如对比度、亮度、色相旋转、不透明度以及图像等。让我们看看一些滤镜函数。

语法

以下是 CSS 中 filter 的语法:

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

如上所示,使用filter属性,我们可以设置以下效果:模糊、对比度、投影、模糊、亮度、灰度、色相旋转、反色、不透明度、饱和度、褐色调、url。

反色

invert()用于反转图像中的样本。这里,0% (0) 是实际图像,而 100% 的值将完全反转图像。要在 CSS3 中反转图像,请对filter属性使用invert()

示例

让我们来看一个使用反转为图像添加视觉效果的示例:

<!DOCTYPE html>
<html>
<head>
   <meta name="viewport" content="width=device-width, initial-scale=1">
   <style>
      img{
         margin: 20px;
      }
      img.normal{
         width: 300px;
         height: 300px;
      }
      img.filter {
         width: 300px;
         height: 300px;
         filter: invert(100%);
      }
   </style>
</head>
<body>
   <h1>CSS Image effects example</h1>
   <img class="normal" src="https://tutorialspoint.com/python/images/python-mini-logo.jpg">
   <img class="filter" src="https://tutorialspoint.com/python/images/python-mini-logo.jpg">
</body>
</html>

对比度

要在 CSS 中设置图像对比度,请使用 filter contrast(%)。请记住,值为 0 会使图像变黑,100% 用于原始图像和默认图像。其余的,您可以设置任何您选择的值,但超过 100% 的值会使图像对比度更高。

示例

现在让我们来看一个使用 CSS3 调整图像对比度的示例:

<!DOCTYPE html>
<html>
<head>
   <style>
      img.demo {
         filter: brightness(120%);
         filter: contrast(120%);
      }
   </style>
</head>
<body>
   <h1>Learn MySQL</h1>
   <img src="https://tutorialspoint.com/mysql/images/mysql-mini-logo.jpg" alt="MySQL" width="160" height="150">
   <h1>Learn MySQL</h1>
   <p>Below image is brighter and has more contrast than the original image above.</p>
   <img class="demo" src="https://tutorialspoint.com/mysql/images/mysql-mini-logo.jpg" alt="MySQL" width="160" height="150">
</body>
</html>

模糊

filter属性用于设置视觉效果,例如模糊、投影、对比度、亮度、饱和度、阴影等 CSS 中的图像。我们将看到如何创建一个模糊图像。blur用于模糊图像。要在 CSS3 中设置模糊效果,请对filter属性使用blur值。值越大,模糊程度越高。

示例

以下是使用 CSS 创建模糊背景图像的代码:

<!DOCTYPE html>
<html>
<head>
   <style>
      body,
      html {
         height: 100vh;
         margin: 0;
         font-family: "Segoe UI", Tahoma, Geneva, Verdana, sans-serif;
      }
      * {
         box-sizing: border-box;
      }
      .backgroundImage {
         background-image: url("https://images.pexels.com/photos/1172207/pexels-photo-1172207.jpeg?auto=compress&cs=tinysrgb&dpr=1&w=500");
         filter: blur(10px);
         height: 100%;
         background-position: center;
         background-repeat: no-repeat;
         background-size: cover;
      }
      .transparentText {
         background-color: rgba(0, 0, 0, 0.4);
         color: white;
         border: 3px solid #f1f1f1;
         position: absolute;
         top: 40%;
         left: 30%;
         width: 50%;
         padding: 20px;
         text-align: center;
      }
   </style>
</head>
<body>
   <div class="backgroundImage"></div>
   <div class="transparentText">
      <h1>I am Amit</h1>
      <h1>I am an Entrepreneur</h1>
   </div>
</body>
</html>

投影

要在 CSS3 中为图像添加投影,请对 filter 属性使用 drop-shadow 值。它具有以下值:

  • h-shadow - 指定水平阴影的像素值。

  • v-shadow - 指定垂直阴影的像素值。负值将阴影放在图像上方。

  • blur - 为阴影添加模糊效果。

  • spread - 正值会导致阴影扩大,负值会导致阴影缩小。

  • color - 为阴影添加颜色

示例

现在让我们来看一个示例:

<!DOCTYPE html>
<html>
<head>
   <style>
      img.demo {
         filter: brightness(120%);
         filter: contrast(120%);
         filter: drop-shadow(10px 10px 10px green);
      }
   </style>
</head>
<body>
   <h1>Learn MySQL</h1>
   <img src="https://tutorialspoint.com/mysql/images/mysql-mini-logo.jpg" alt="MySQL" width="160" height="150">
   <h1>Learn MySQL</h1>
   <img class="demo" src="https://tutorialspoint.com/mysql/images/mysql-mini-logo.jpg" alt="MySQL" width="160" height="150">
</body>
</html>

褐色调效果

要使用 CSS3 将褐色调效果应用于图像,请对 filter 属性使用 sepia 值。代码如下:

示例

<!DOCTYPE html>
<html>
<head>
   <style>
      img.demo {
         filter: sepia(100%);
      }
   </style>
</head>
<body>
   <h1>Learn Spring Framework</h1>
   <img src="https://tutorialspoint.com/spring/images/spring-mini-logo.jpg" alt="Spring Framework" width="160" height="150">
   <h1>Learn Spring Framework</h1>
   <img class="demo" src="https://tutorialspoint.com/spring/images/spring-mini-logo.jpg" alt="Spring Framework" width="160" height="150">
</body>
</html>

色相旋转

色相旋转调整即增加或减少图像色相值。要在 CSS3 中设置图像的色相旋转,请对filter属性使用hue-rotate值。色相旋转以度数设置,即

  • 实际图像 - 0 度,即默认值

  • 旋转 30 度 - 30 度

  • 旋转 90 度 - 90 度,等等。

  • 正色相旋转 - 增加色相值

  • 负色相旋转 - 减少色相值

示例

现在让我们来看一个使用 CSS3 应用色相旋转的示例。我们将使用色相旋转设置 45 度:

<!DOCTYPE html>
<html>
<head>
   <style>
      img.demo {
         filter: hue-rotate(45deg);
      }
   </style>
</head>
<body>
   <h1>Learn Spring Framework</h1>
   <img src="https://tutorialspoint.com/spring/images/spring-mini-logo.jpg" alt="Spring Framework" width="160" height="150">
   <h1>Learn Spring Framework</h1>
   <img class="demo" src="https://tutorialspoint.com/spring/images/spring-mini-logo.jpg" alt="Spring Framework" width="160" height="150">
</body>
</html>

更新于:2023-12-27

95 次浏览

启动你的职业生涯

通过完成课程获得认证

开始学习
广告