前言

  前段时间找工作面试官问到一个问题,你如何将一个网页整体置灰?面试遇到这样的问题,一下束手无策,之前没有接触过这样的需求,因此没有回答上来,面试结束我才知道了这是考查对 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. 【分布式】-- 基于Nacos、OpenFeign搭建的微服务抽奖系统后台小案例

    1.项目介绍 最近入项目之前要求熟悉一下SpringCloud Nacos微服务基于Feign接口调用并整合Swagger2进行接口文档展示给前端,所以自己按照要求来编写并整合了一套基于SpringC ...

  2. SystemVerilog数组(一)

  3. 多表联合查询 - 基于注解SQL

    作者:汤圆 个人博客:javalover.cc 前言 背景:Spring Boot + MybatisPlus 用MybatisPlus就是为了不写SQL,用起来方便: 但是如果需要多表联合查询,还是 ...

  4. 达梦数据库产品支持技术学习分享_Week1

    本周主要从以下几个方面进行本人对达梦数据库学习的分享,学习进度和学习情况因人而异,仅供参考. 一.达梦数据库的体系架构 二.达梦数据库的安装 三.达梦数据库的数据类型 四.达梦数据库的DDL.DML. ...

  5. Supervisor 开始

    Supervisor 是 Linux/Unix 操作系统上的进程管理工具.本文介绍了于 Ubuntu 18 上如何使用 Supervisor 开机启动.保活守护自己的服务进程. 安装 建议系统方式安装 ...

  6. Tengine MLOps概述

    Tengine MLOps概述 大幅提高产业应用从云向边缘迁移的效率 MLOps Cloud Native 聚焦于提升云端的运营过程效率 MLOps Edge Native 聚焦于解决边缘应用开发及异 ...

  7. nvGRAPH原理概述

    nvGRAPH原理概述 nvGRAPH的API参考分析. 简介 数据分析是高性能计算的不断增长的应用.许多高级数据分析问题可以称为图形问题.反过来,当今许多常见的图形问题也可以称为稀疏线性代数.这是N ...

  8. CodeGen用户定义的扩展令牌

    CodeGen用户定义的扩展令牌 用户定义的扩展令牌是一种特殊的令牌,开发人员可以确定令牌的名称以及在代码生成过程中遇到令牌时要插入的值. CodeGen支持多种机制,允许通过以下方式实现用户定义的令 ...

  9. 如何为应用选择最佳的FPGA(下)

    如何为应用选择最佳的FPGA(下) How to select an FPGA board? FPGA板的选择在很大程度上受FPGA本身的影响,也受整个板的特性和性能的影响.们已经在上面的章节中讨论了 ...

  10. 用华为MindSpore进行分布式训练

    技术背景 分布式和并行计算,在计算机领域是非常重要的概念.对于一些行外人来说,总觉得这是一些很简单的工作,但是如果我们纵观计算机的硬件发展史,从CPU到GPU,再到TPU和华为的昇腾(NPU),乃至当 ...