如何在CSS中为图像添加过滤器和反射?

189 阅读5分钟

如果你打算吸引越来越多的观众到你的网站,网站的外观是非常关键的。因此,为了提高网站的整体外观,我们非常建议在图像上添加图形效果或反映图像。CSS提供了各种属性,可以让你轻松地完成这些任务。我们已经在本篇文章中详细讨论了这些属性。在这篇文章中,我们讨论了以下内容。

  1. CSS中的图像过滤
  2. CSS中的图像反射

CSS中的图像滤镜

为了给图像添加各种特殊效果,如不透明度、模糊度、饱和度等,可以使用CSS的过滤器属性。

语法

filter: value;

与过滤器属性相关的不同方法解释如下。

说明
这个值不增加任何效果,是一个默认值。
模糊它为图像增加模糊度,并以像素为单位进行渲染。
亮度它用于增加或减少图像的亮度,并以百分比形式显示数值。
对比度该值调整图像的对比度,数值以百分比定义。
灰度它将一个图像转化为灰度图像,也是以百分比为单位展示数值。
色调-旋转这个值用来旋转一个图像,并以度为单位显示数值。
反转它颠倒了图像中存在的样本,数值以百分比定义。
不透明度这个值可以调整图像的透明度,取值范围是0到1。
饱和度它使图像饱和,取值为百分比。
棕褐色该值用于将一个图像转换为棕褐色,并以百分比为单位进行展示。
阴影(drop-shadow它用于在图像上应用一个阴影效果。
url()这是一个需要包含SVG过滤器的XML文档的位置的函数,可能会渲染一个特定过滤器元素的链接。
初始值这个值给了该属性的初始值。
继承这个值从祖先元素中继承过滤器属性。

现在你知道了过滤器属性可以表现出的所有值,下面我们演示了这些值,以便更好地理解。

首先,让我们用基本的HTML在我们的网页上添加一个图片。

HTML

<img src="car.jpg" alt="Car">

在这里,我们使用标签简单地添加了一张图片。

CSS

img {
  width: 30%;
  height: auto;
}

现在我们使用基本的CSS来给图片添加一些宽度和高度。

输出


图片已经被添加到网页上了。

现在让我们对这张图片应用过滤器,并探索过滤器属性所能表现的各种数值。

模糊

我们已经将模糊效果设置为2px。模糊方法的数值越多,模糊程度就越大。

.blur {
    filter: blur(2px);
}

输出


这是一张模糊的图像。

亮度

图片的亮度已经被设置为0.50。该值的减少将导致亮度的下降,反之亦然。

.brightness {
    filter: brightness(0.50);
}

输出


图像的亮度已被成功调整。

对比度

我们已经将图像的对比度设置为160%。如果你想增加对比度,那么就按你的意愿增加这个值。

.contrast {
    filter: contrast(160%);
}

输出


一个对比度效果的添加非常容易。

灰度

让我们给grayscale()方法一些数值,看看图像的变化。

.grayscale {
    filter: grayscale(100%);
}

输出


使用过滤器属性的grayscale()方法将彩色图像转换为黑白图像。

色相-旋转

我们正在给hue-rotate()方法分配270度。这个方法基本上是通过围绕颜色圆圈旋转图像来修改图像的。

.hue-rotate {
    filter: hue-rotate(270deg);
}

输出


这是一张色调旋转270度的图像。

反转

反转值通过反转图像来增加一些特殊效果。这里我们将图像反转80%。

.invert {
    filter: invert(80%);
}

输出


图像的样本已经被反转了。

不透明度

要使图像透明,需要使用不透明度值。下面我们将图像的不透明度调整为0.4。不透明度的值越小,图像将变得越透明。

.opacity {
    filter: opacity(0.4);
}

输出


这是一个透明度为40%的图像。

饱和度

为了增加饱和度,使用过滤器属性的saturate()方法。数值越大,图像的饱和度就越高。

.saturate {
    filter: saturate(4);
}

输出


饱和度效果已成功添加到图像中。

棕褐色

为了给图像添加棕褐色效果,给它一些值,就像我们在下面的代码段中给它指定的50%。

.sepia {
    filter: sepia(50%);
}

输出


棕褐色效果正常工作了。

阴影

为了添加一个阴影,我们使用了阴影法。阴影的长度已被分配给图像的每一面。

.shadow {
    filter: drop-shadow(8px 8px 10px red);
}

输出


阴影效果已成功添加。

现在我们已经深入了解了过滤器属性,让我们继续前进,看看什么是反射属性。

CSS中的图像反射

为了反射图像,我们使用了CSS的box-reflect属性。

语法

-webkit-box-reflect: below | above | right | left;

为了使该属性在各种浏览器上完全发挥作用,需要使用前缀"-webkit-"。

注意:火狐浏览器不支持box-reflect属性。

下面我们借助相关的例子来演示其中的一些值,以便你能抓住图像反射的概念。

让我们首先在我们的网页上添加一个图像。

HTML

<img src="pisa.jpg" alt="Pisa Tower" width="200px" height="200px;">

在这里,我们已经添加了一个图像,并给它一些宽度和高度。

输出

一张图片被插入到网页中。

下面是

简单地分配box-reflect属性 "below "的值,就可以在原始图像下面反映出一个图像。

img {
  -webkit-box-reflect: below;
}

输出


图像已经反映在下面了。

右边

我们来探讨一下box-reflect属性的 "右 "值。

img {
  -webkit-box-reflect: right;
}

输出


图片已经成功地反射到了右边。

总结

为了给网站上出现的图像添加特殊效果,我们使用了CSS过滤属性。这个属性可以展示的各种方法有:灰度()、饱和()、不透明度()、模糊()、亮度()、色调旋转()等。除了添加特殊效果外,你还可以使用CSS box-reflect属性将图像反射到右边、左边、上面或下面。这篇文章涵盖了在图片上添加滤镜或反射的所有深度,并有相关的例子帮助。