CSS3 Filter

作者: ghwaphon | 来源:发表于2016-11-24 20:27 被阅读293次

需要说明的是,这是一篇译文,原文地址 .

Image Adjustment with CSS Filter Effects


调整图片的亮度和对比度,或者将图片变成灰色或棕褐色是一种在图片编辑软件中常见的行为, 比如说 Photoshop. 但是现在已经可以利用 CSS 给网页上的图片添加相同的特性。

而这种能力来源于 Filter Effects, 实际上这是一种还处在草案阶段的特性 。 但是,webkit 浏览器似乎要起头去实现这么一个特性。

所以,让我们来尝试一下而且我将使用一张图片去展示效果。

The Effects


使用这些效果其实是非常简单的,看下面给出的一段代码,目的是将图片变成灰色。

    img {
        -webkit-filter: grayscale(100%);
    }
demo01.png

下面是为了将图片转换成棕褐色

    img {
        -webkit-filter: sepia(100%);
    }
demo02.png

grayscalesepia 的值都是以百分比的格式表示的,100% 是最大值,如果使用的是 0% ,那么图片将保持不变,而且如果不明确指定它们的值,它们会将 100% 视为默认值。

为图像设置亮度是十分有必要的,而且我们确实可以通过 brightness 去做到,就像下面这样。

    img {
        -webkit-filter: brightness(50%);
    }
demo03.png

brightness 的行为和之前介绍的 sepiagrayscale 有所不同,因为 sepia, grayscale 将值设置为 0%, 将会保持原图不变,而 brightness 以 100% 为基准点,也就是说 100% 以下,图片会变暗,而 100% 以上图片会变暗,而且值可以为负,不过这个时候只是黑色一片,完全看不出图片内容了。

而且我们可以用这种方式调整图片的对比度。

    img {
        -webkit-filter: contrast(200%);
    }
demo04.png

同样,对比度的设置和亮度的设置是类似的,以 100% 为基准点,100% 以下为低对比,100% 以上为高对比度。

另外,我们还可以在一行声明中组合使用多个效果,就像下面这个例子。我们设置图片的灰度,与此同时提高图片 50% 的对比度。

    img {
        -webkit-filter: grayscale(100%) contrast(150%);
    }
demo05.png

通过结合 filterCSS3 中的 transition 我们可以做出一些优美的 hover 效果。

    img:hover {
      -webkit-filter: grayscale(0%);
    }
    img:hover {
      -webkit-filter: sepia(0%); 
    }
    img:hover {
      -webkit-filter: brightness(0%); 
    }
    img:hover {
      -webkit-filter: contrast(100%); 
    }

最后,还有一个属性我们可以尝试,那就是高斯模糊,通过它我们可以将一个目标元素变得模糊。

        img {
            -webkit-filter: blur(5px);
        }
demo06.png

就像在 Photoshop 中,模糊度的值以像素半径表示,而且如果你不明确指定这个值,它默认为 0, 图片将保持原样。

Final Thought


其实还有一些其它的效果,比如说 hue-rotate, invertsaturate, 但是我认为它们在真正的网页情景中很少使用。因此,我们的介绍将只包含上述的四种效果。

尽管我们这篇文章所介绍的图片都是应用在图片上的,但在实际上这些属性可以应用在 DOM 中的任何元素上。


在翻译之前,我去查看了一下 Filter 在各个浏览器中的支持情况,发现这一属性已经被各大主流浏览器支持,所以我们在使用属性的时候,最好像下面这样书写。

      -webkit-filter: grayscale(0%);        
              filter: grayscale(0%);

而且原作者在介绍 brightness 的过程中出现了错误,我已经在文章中改正过来(也可能作者在写这篇文章的时候那么使用是正确的,不过后来不适用了)。

这篇翻译文我也不是逐字逐句的翻译,而是将其大概意思翻译出来了,我想这样可能更加容易理解。

Ending..., thanks.

相关文章

  • filter

    mdn css3 filter:none|blur()|brightness()|contrast()|drop-...

  • 图片模糊处理/计算盒子宽度calc函数/

    CSS3滤镜filter: filter CSS属性将模糊或颜色偏移等图形效果应用于元素。 盒子宽度calc函数 ...

  • 使用css把彩色图片设置成黑白色

    IE下可以轻松实现,使用(filter:gray) CSS3 grayscale 实现滤镜 .gray{ ...

  • css 一些技巧

    鼠标选择字体时候改变颜色 和背景颜色 CSS3 filter(滤镜) 属性

  • css3

    css3中会忘记的主要是filter,transform,animation,transtion,box-shad...

  • CSS3的filter属性详解

    CSS3新增了滤镜属性filter,总共定义了10种效果,filter目前的浏览器的兼容情况如下: 当blur(1...

  • CSS3 Filter

    今天下午设计稿拿到手之后,有一个如下的需求: 产品的要求:每张图片hover的时候变暗,选中的时候加上右下角的小钩...

  • CSS3 Filter

    需要说明的是,这是一篇译文,原文地址 . Image Adjustment with CSS Filter Eff...

  • filter css3

    最近到处看到有人在说CSS3的filter一直没有时间自己去测试这效果。今天终于抽出时间学习这个CSS3的Filt...

  • HTML透明度样式filter和opacity

    HTML透明度样式filter和opacity opacity属性   opacity是CSS3的属性, 能够元...

网友评论

本文标题:CSS3 Filter

本文链接:https://www.haomeiwen.com/subject/ynxipttx.html