前言

  前段时间找工作面试官问到一个问题,你如何将一个网页整体置灰?面试遇到这样的问题,一下束手无策,之前没有接触过这样的需求,因此没有回答上来,面试结束我才知道了这是考查对 CSS3 的新属性的了解。这里需要掌握 filter(滤镜) 这个新属性。细想一下,这个需求成立啊,比如遇到清明节、全国哀悼日、大地震等灾害的日子,我们的网页可以全局置灰,相当于加一层滤镜,以表示我们对逝者的悼念。

正文

  1.定义和使用

  filter 属性定义了元素(通常是<img>)的可视效果(例如:模糊与饱和度)。本文用谷歌浏览器测试,暂不烤炉兼容问题。

  语法:

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

  注意:可以使用空格分割加多个滤镜。

  默认值:none;不加任何效果。

  2.filter函数使用

  基础代码如下:

    <div>
<img src="./图片/2222.jpeg" alt="">
<img src="./图片/2222.jpeg" alt="">
<img src="./图片/2222.jpeg" alt="">
<img src="./图片/2222.jpeg" alt="">
</div>
<style>
div{
display: flex;
justify-content: space-around;
width: 500px;
margin: 100px auto;
}
img{
width: 100px;
}
</style>

  基础效果如下:

  (1)blur(),该函数给图像设置模糊度,默认值为0,可以设置长度值,但是不能设置百分比。

        img:nth-child(1) {}
img:nth-child(2) {
filter: blur(2px);
}
img:nth-child(3) {
filter: blur(4px);
}
img:nth-child(4) {
filter: blur(6px);
}

  (2)brightness(),图片高亮显示,使得图片看起来更亮或者更暗,参数为0%,图片会全黑;参数为100%,图片无变化;参数越大,图片越亮;默认值为100%。通常为75%达到滤镜效果,同时也可以用小数作为参数(如0.75)。

        img:nth-child(1) {}
img:nth-child(2) {
filter: brightness(0%)
}
img:nth-child(3) {
filter: brightness(75%)
}
img:nth-child(4) {
filter: brightness(125%)
}

  

  (3)contrast(),调整图像对比图,参数为0%,图像全黑;参数为100%,图像不变;参数越大,表示对比越低;默认值为100%。

        img:nth-child(1) {}
img:nth-child(2) {
filter: contrast(0%)
}
img:nth-child(3) {
filter: contrast(75%)
}
img:nth-child(4) {
filter: contrast(125%)
}

  (4)drop-shadow(h-shadow  v-shadow  blur spread  color) ,给图像设置一个阴影效果,阴影是合成在图像下面,可以又模糊度的,可以以特定的颜色色画出遮罩图的偏移版本,该函数与box-shadow属性相似,不同之处在于,通过滤镜,一些浏览器为了更好的性能会提供硬件加速。具体参数设置如下:

  h-shadow和v-shadow,两个参数是必选的,表示阴影偏移量,分别在水平方向和垂直方向的便宜距离,同样设置负值的时候会出现相反的方向。

  blur,该参数可选,表示模糊程度,值越大越模糊,则阴影会变大更大更淡,不允许负值,默认是为0表示阴影的边界很锐利。

  spread,该参数可选,正值会使阴影扩张和变大,负值会使阴影缩小,默认值为0表示阴影与元素一样大小。

  color,该参数可选,表示阴影的颜色,若未设定,颜色基于浏览器。

        img:nth-child(1) {}
img:nth-child(2) {
filter: drop-shadow(20px 10px 4px #4444dd);
}
img:nth-child(3) {
filter: drop-shadow(0 -6mm 4mm rgb(160, 0, 210));
}
img:nth-child(4) {
filter: drop-shadow(0 0 0.75rem crimson);
}

  (5)grayscale(),将图像转为灰度图像,值定义转换的比例,值为1--%表示全部转换为灰度,值为0表示图像无变化。

        img:nth-child(1) {}
img:nth-child(2) {
filter: grayscale(30%);
}
img:nth-child(3) {
filter: grayscale(60%);
}
img:nth-child(4) {
filter: grayscale(100%);
}

  (6)hue-rotate(),该函数给图像添加色相旋转,参数为角度值deg,值为0deg,表示图像无变化;360deg表示图像色相旋转一圈;超过360deg相当于又绕一圈;默认值为0deg。

        img:nth-child(1) {}
img:nth-child(2) {
filter: hue-rotate(90deg);
}
img:nth-child(3) {
filter: hue-rotate(180deg);
}
img:nth-child(4) {
filter: hue-rotate(450deg);
}

  (7)invert(),该函数反转输入图像,参数值定义转换比例,参数为100%表示完全反转;参数为0%表示无变化,值在0%-100%之间。默认值为0%。

          img:nth-child(1) {}
img:nth-child(2) {
filter: invert(30%);
}
img:nth-child(3) {
filter: invert(60%);
}
img:nth-child(4) {
filter: invert(100%);
}

  (8)opacity(),该函数转化图像的透明度,值定义转化比例。值为0%表示图像完全透明;值为100%表示图像无变化;值在0%-100%之间。默认值为100%。

          img:nth-child(1) {}
img:nth-child(2) {
filter: opacity(30%);
}
img:nth-child(3) {
filter: opacity(60%);
}
img:nth-child(4) {
filter: opacity(100%);
}

  (9)saturate(),该函数设置图像饱和度,值定义转化比例,值为0%则是完全不饱和,值为100%表示图像无变化;值在0%-100%之间。默认值为100%。

          img:nth-child(1) {}
img:nth-child(2) {
filter: saturate(0%);
}
img:nth-child(3) {
filter: saturate(30%);
}
img:nth-child(4) {
filter: saturate(60%);
}

  (10)sepia(),该函数将图像转化为深褐色,之定义转化比例,值为100%表示完全深褐色,值为0%表示图像无变化;值在0%-100%之间。默认值为0%。

          img:nth-child(1) {}
img:nth-child(2) {
filter: sepia(30%);
}
img:nth-child(3) {
filter: sepia(60%);
}
img:nth-child(4) {
filter: sepia(100%);
}

写在最后

    有了上面的知识储备,实现面试官这个需求就不难了,一行代码解决 filter: grayscale(1);比如在某宝首页中就可以有如下的效果对比了

  以上就是本文的全部内容,希望给读者带来些许的帮助和进步,方便的话点个关注,小白的成长踩坑之路会持续更新一些工作中常见的问题和技术点。

css--filter(滤镜) 属性的更多相关文章

  1. 巧用 CSS3 filter(滤镜) 属性

    原文链接:CSS3 filter(滤镜) 属性 效果预览 filter: grayscale(100%); 定义和使用 filter 属性定义了元素(通常是<img>)的可视效果(例如:模 ...

  2. css3中强大的filter(滤镜)属性

    CSS3中强大的filter(滤镜)属性 博主最近在做网站的过程中发现了一个非常强大的CSS3属性,就是filter(滤镜)属性,喜欢p图的朋友看名字都应该知道这是什么神器了吧.当然,这个属性的效果肯 ...

  3. 20190614笔记(颜色透明度,css,filter,滤镜,计算属性,json和formData转换)

    今天忙里偷闲,把最近做的笔记做一下整理. 1.json和formData互相转换 适用场景:对接后台接口.后台接口写的因人而异,不同的人有不同的风格.比如,文件上传,原本就是formData格式,有人 ...

  4. filter(滤镜) 属性 内部资料 请勿转载 谢谢合作

    Filter 描述 none 默认值,没有效果. blur(px) 给图像设置高斯模糊."radius"一值设定高斯函数的标准差,或者是屏幕上以多少像素融在一起, 所以值越大越模糊 ...

  5. css3 filter(滤镜)属性汇总与使用介绍,来源W3C

    实例 修改所有图片的颜色为黑白 (100% 灰度): img { -webkit-filter: grayscale(%); /* Chrome, Safari, Opera */ filter: g ...

  6. CSS3 filter(滤镜) 属性

    filter 属性定义了元素(通常是<img>)的可视效果 语法: object.style.WebkitFilter="grayscale(100%)" 小栗子: 修 ...

  7. CSS filter滤镜试玩

    1.模糊(blur). 用法:给相应元素设置高斯模糊,传入的px数值越大越模糊. 2.亮度(brightness). 用法:给元素设置亮度,0%为全黑,100%为元素原始亮度,>100%表示会比 ...

  8. 关于CSS3的filter(滤镜) 属性

    修改所有图片或者元素的颜色为黑白 (100% 灰度) DOM{ -webkit-filter: grayscale(100%); /* Chrome, Safari, Opera */ filter: ...

  9. filter: grayscale(100%)滤镜属性

    效果图: filter滤镜属性

  10. CSS filter 属性

    filter 将模糊或者颜色偏移等图像效果用于元素,通常用于调整图像,背景和边框的渲染 css 标准中已内置一些预定义效果的函数,也可通过url使用SVG滤镜 语法 /* URL to SVG fil ...

随机推荐

  1. GO语言面向对象08---投胎游戏

    package main import ( "fmt" "math/rand" "os" "time" ) /* @内存 ...

  2. Go string 详解

    前言 字符串(string) 作为 go 语言的基本数据类型,在开发中必不可少,我们务必深入学习一下,做到一清二楚. 本文假设读者已经知道切片(slice)的使用,如不了解,可阅读 Go 切片 基本知 ...

  3. MindSpore模型精度调优实践

    MindSpore模型精度调优实践 引论:在模型的开发过程中,精度达不到预期常常让人头疼.为了帮助用户解决模型调试调优的问题,为MindSpore量身定做了可视化调试调优组件:MindInsight. ...

  4. CUDA 9中张量核(Tensor Cores)编程

    CUDA 9中张量核(Tensor Cores)编程 Programming Tensor Cores in CUDA 9 一.概述 新的Volta GPU架构的一个重要特点是它的Tensor核,使T ...

  5. 我的第一部原创《JavaScript 全栈开发》正式上市了!

    在经过了漫长的创作.审校过程之后,<JavaScript 全栈开发>终于迎来了在各大平台上正式出版的日子,以下是这本书的基本信息: 出品方: 异步社区:https://www.epubit ...

  6. JUC 并发编程--02,生产者和消费者 synchronized的写法 , juc的写法. Condition的用法

    synchronized的写法 class PCdemo{ public static void main(String[] args) { //多个线程操作同一资源 Data data = new ...

  7. Java如何使用while和for嵌套循环控制输出数据,使数据奇偶行不同

    /* 题目1 使用Eclipse编写控制台应用程, 使用while循环在控制台打印10行10列的如下图形 □ □ □ □ □ □ □ □ □ □ ■ ■ ■ ■ ■ ■ ■ ■ ■ ■ □ □ □ □ ...

  8. Pytorch Dataset和Dataloader 学习笔记(二)

    Pytorch Dataset & Dataloader Pytorch框架下的工具包中,提供了数据处理的两个重要接口,Dataset 和 Dataloader,能够方便的使用和加载自己的数据 ...

  9. (鸡汤文)这一次我终于搞懂了 JavaScript 定时器的 this 指向!

    开篇语 忽然有一种感觉,每次学习一个知识点就像是谈一场恋爱:从初次邂逅,到彼此了解,一切都那么的符合恋爱的过程! 如果这个知识点再有点"调皮"的话,那简直是让人欲仙欲死而又不可自拔 ...

  10. JAVA微服务应用(1)--SpringBoot中的REST API调用(学习笔记)

    好长时间没有写学习小结了,最近宁正好看了小马哥的微服务系列之<Spring Boot>系列,颇有收获,并且公司也布置一个课题就是关于Spring中的REST API调用.于是乎回归本行,再 ...