CSS filter 有哪些神奇用途

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-nZmlSog1-1652076154463)(https://p6-juejin.byteimg.com/tos-cn-i-k3u1fbpfcp/7474f26aa04f46f49c588f003de75386~tplv-k3u1fbpfcp-zoom-in-crop-mark:1956:0:0:0.image?)]

背景

基本概念

CSS filter 属性将模糊或颜色偏移等图形效果应用于元素形成滤镜,滤镜通常用于调整图像,背景和边框的渲染。它的值可以为 filter 函数 <filter-function> 或使用 url 添加的svg滤镜。

filter: <filter-function> [<filter-function>]* | none
filter: url(file.svg#filter-element-id)

<filter-function> 可以用于 filterbackdrop-filter 属性。它的数据类型由下列过滤器函数之一指定。每个函数需要一个参数,如果参数无效,则滤镜不会生效。以下是对滤镜函数含义的解释:

  • blur():模糊图像
  • brightness() :让图像更明亮或更暗淡
  • contrast():增加或减少图像的对比度
  • drop-shadow():在图像后方应用投影
  • grayscale():将图像转为灰度图
  • hue-rotate():改变图像的整体色调
  • invert():反转图像颜色
  • opacity():改变图像透明度
  • saturate():超饱和或去饱和输入的图像
  • sepia():将图像转为棕褐色

用法示例

/* 使用SVG filter */
filter: url("filters.svg#filter-id");
/* 使用filter函数 */
filter: blur(5px);
filter: brightness(0.4);
filter: contrast(200%);
filter: drop-shadow(16px 16px 20px blue);
filter: grayscale(50%);
filter: hue-rotate(90deg);
filter: invert(75%);
filter: opacity(25%);
filter: saturate(30%);
filter: sepia(60%);
/* 多个filter */
filter: contrast(175%) brightness(3%);
/* 不使用filter */
filter: none;
/* 全局变量 */
filter: inherit;
filter: initial;
filter: unset;

应用案例

更加智能的阴影效果

在给元素添加阴影的时候,我们一般采用 box-shadow 属性,通过 box-shadow(x偏移, y偏移, 模糊大小, 阴影大小, 色值, inset) 的语法形式很容易为元素添加阴影效果,但 box-shadow 也有一个缺点,就是在给透明图片添加阴影效果时,无法穿透元素,只能添加到透明图片元素的盒模型上。这个时候,filter 属性的 drop-shadow 方法就能很好的解决这个问题,用它添加的阴影可以穿透元素,而不是添加到元素的盒模型边框上。

drop-shadow 添加的阴影除了可以穿透透明元素外,阴影效果和 box-shadow 是相同的,如果浏览器支持硬件加速的话,使用 filter 添加的阴影效果会更加逼真。

drop-shadow 语法如下(它除了不支持设置 inset,其他和 box-shadow 是完全相同的):

filter: drop-shadow(x偏移, y偏移, 模糊大小, 色值);

如:

filter: drop-shadow(1px 1px 15px rgba(0, 0, 0, .5));

下图是分别使用 box-shadowfilter: drop-shadow 为透明元素添加阴影的对比:

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-syxZ2U8Q-1652076154464)(https://p6-juejin.byteimg.com/tos-cn-i-k3u1fbpfcp/be7efbe81bac484d8426e0aa9f5df197~tplv-k3u1fbpfcp-zoom-in-crop-mark:1956:0:0:0.image?)]

<img class="box-shadow" src="futurama.png" />
<img class="drop-shadow" src="futurama.png" />
.box-shadow {box-shadow: 1px 1px 15px rgba(0, 0, 0, .5);
}
.drop-shadow {filter: drop-shadow(1px 1px 15px rgba(0, 0, 0, .5));
}

元素、网页置灰

发生重大灾害事故或其他哀悼日时,国企政府网站往往有网页全部置灰的需求。或者很多网页中有鼠标 hover 悬浮到灰色元素上时变成彩色的样式效果。此时就可以使用 filter 属性的 grayscale 方法实现,它可以调整元素灰度,通过给页面元素设置 filter: grayscale(100%) 就可将页面元素置灰。以下示例中,body 标签下有 h1img 标签,未添加 filter 样式前如下所示。

<body><h1 class="title">FUTURAMA</h1><img class="img" width="500" src="./images/futurama.png" />
</body>

现在我们给 body 元素添加一个 .gray 类,<body class="gray"> 就可实现整个网页置灰效果。

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

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-thjUrVU3-1652076154465)(https://p9-juejin.byteimg.com/tos-cn-i-k3u1fbpfcp/d3ac149b9a4d4ed4ac52c5b72b478272~tplv-k3u1fbpfcp-zoom-in-crop-mark:1956:0:0:0.image?)]

为了兼容 IE8 等其他低版本浏览器,我们可以加上浏览器前缀和 svg 滤镜。

`CSS filter` 有哪些神奇用途相关推荐

  1. CSS filter有哪些神奇用途

    来源 | https://www.cnblogs.com/dragonir/p/14807272.html 作者 | dragonir 背景 基本概念 css filter 属性将模糊或颜色偏移等图形 ...

  2. CSS filter 有哪些神奇用途

    背景 基本概念 CSS filter 属性将模糊或颜色偏移等图形效果应用于元素形成滤镜,滤镜通常用于调整图像,背景和边框的渲染.它的值可以为 filter 函数 <filter-function ...

  3. 深入学习下 CSS filter 相关的神奇属性

    来源 | https://www.cnblogs.com/dragonir/p/14807272.html 作者 | dragonir 背景 基本概念 css filter 属性将模糊或颜色偏移等图形 ...

  4. 【css技巧】CSS filter的神奇用法 | 褪色|融合效果等

    前言 css3的filter可以修改图片的可视效果,用的好堪比美图秀秀,做出来的网页非常炫酷,装上一个大比! 但是也不能滥用,毕竟兼容性摆在那里,用多了还可能卡. 你们看看,一张图加了filter效果 ...

  5. CSS filter有哪些用途

    css filter 属性将模糊或颜色偏移等图形效果应用于元素形成滤镜,滤镜通常用于调整图像,背景和边框的渲染.它的值可以为 filter 函数 <filter-function> 或使用 ...

  6. 用CSS Filter 可以实现相同的效果

    用CSS Filter 可以实现相同的效果,而且可以省去图片,代码如下: <table width="100%" height="133"  border ...

  7. Liferay Dynamic CSS Filter方法的研究 - 总体过程

    背景知识: 最近项目组遇到一个问题就是改了一个new theme之后导致某些css文件不起作用了,这也激起了我的好奇心,让我有机会去研究下Liferay Dynamic CSS Filter的原理. ...

  8. html中菜单触碰变色,利用css filter实现菜单图片变色效果

    需求场景 在制作菜单时,未增加响应效果,往往会加入鼠标移入移出时字体和图标进行变色的效果,字体的颜色变化比较好控制,通过color便可以设置,但如果图标是使用的图片,往往要一个图标制作两份不同颜色的图 ...

  9. 别小看了手机蓝牙功能,它有5大“神奇”用途!你用过其中几种

    手机里的蓝牙功能,不少朋友只会用来传送文件数据等,但其实它的用处远远不止如此,它还有很多别的神奇用途,话不多说,赶紧往下看.你又用过其中几种呢? 一.网络共享 手机的网络共享是一部手机将数据流量分享给 ...

最新文章

  1. Ocelot + Consul实践
  2. Read correction for non-uniform coverages 读校正非均匀覆盖
  3. 干货 | 100+个NLP数据集大放送,再不愁数据!
  4. Oracle EBS Color 色彩设置
  5. Python基本语法(基于3.x)
  6. python 赋值、表达式
  7. 地平线:黎明时分中的云渲染技术
  8. MIUI 13:带来全新小部件,新增三大隐私保护功能等
  9. php set_timeout,和 JS 一样的 php setTimeout 函数
  10. python列表常用方法实践_python 列表list 常用方法
  11. 若依前后端分离部署到tomcat中详细教程
  12. Extjs的radio单选框的使用
  13. SqlServer性能检测之Sql语句排查
  14. DataGrid 绑定定制的列
  15. android 网络错误分析,android wifi打开过程源码解析及Wifi打开失败原因分析
  16. MapStruct 详解
  17. java ssm框架项目_3个SSM框架应用实例教程
  18. python注释快捷键alt_python快捷键的使用【摘抄】
  19. 解决The given object has a null identifier问题
  20. 数据库系统设计与原理

热门文章

  1. Android Telephony框架结构简析
  2. 灰度直方图及直方图均衡化的MATLAB实现
  3. MySQL重启、启动、停止方式
  4. 服务器系统安装提示无法创建新的系统分区,安装win7旗舰版系统时提示“安装程序无法创建新的系统分区”怎么解决...
  5. 定位之相对定位不脱离文档流,绝对定位脱离文档流
  6. IDEA--如何解决Java:程序包xxxx不存在
  7. 关于MATLAB中clear的用法
  8. oracle插入报错-Caused by: java.sql.SQLException: 无效的列类型: 16
  9. mysql 更新的进度_如何查看mysql执行进度
  10. 什么软件质量/如何评价软件的质量