css:使用filter和backdrop-filter实现高斯模糊效果

news2025/7/13 8:36:10

背景

今天接到一个需求是,使用高斯模糊的效果对一个页面进行模糊处理,正好借这个机会来整理一下 css3 中高斯模糊的两个 API

API介绍

filter

说明:
该 API 是一个过滤器,不仅能实现高斯模糊,还有很多比如颜色偏移、饱和度、灰度等等

语法:

// 使用空格分隔多个滤镜
filter: none;
// 高斯模糊
filter: blur(4px);
// 线性亮度
filter: brightness();
// 对比度
filter: contrast();
// 阴影效果
filter: drop-shadow();
// 灰度
filter: grayscale();
// 色相旋转
filter: hue-rotate();
// 反转图像
filter: invert();
// 转换透明度
filter: opacity();
// 饱和度
filter: saturate();
// 褐色
filter: sepia();
// SVG滤镜
filter: url();

其中高斯模糊 filter: blur();

backdrop-filter

说明:
当你创造一个元素加上这个属性后,会使得这个元素后面的区域添加效果(如模糊或颜色偏移)

对比:
filter 属性必须要加载图像上或者背景图上,而 backdrop-filter 只要是一个元素就可以。

语法:

backdrop-filter: blur(2px);
backdrop-filter: brightness(60%);
backdrop-filter: contrast(40%);
backdrop-filter: drop-shadow(4px 4px 10px blue);
backdrop-filter: grayscale(30%);
backdrop-filter: hue-rotate(120deg);
backdrop-filter: invert(70%);
backdrop-filter: opacity(20%);
backdrop-filter: sepia(90%);
backdrop-filter: saturate(80%);

示例

filter例一

<!DOCTYPE html>
<html lang="en">
  <head>
    <style>
      .wrapBox2 {
        width: 800px;
        height: 300px;
        overflow: hidden;
        position: relative;
        background-image: url("./win.jpeg");
        background-size: 100% 100%;
        background-repeat: no-repeat;
        filter: blur(10px);
      }
      .subBox {
        position: absolute;
        width: calc(100% - 100px);
        height: calc(100% - 100px);
        z-index: 2;
      }
      .text {
        position: relative;
        /* z-index: 10; */
        font-size: 40px;
        font-weight: bold;
        color: #f00;
      }
    </style>
  </head>
  <body>
    <div class="wrapBox2">
      <div class="subBox"></div>
      <div class="text">全部模糊</div>
    </div>
  </body>
</html>

在这里插入图片描述
这里要注意的一点是,添加模糊后,实际的大小会超出我们设置的宽高,因为周围的毛边效果,你可以在外面包一层并设置 overflow: hidden;

filter例二

<!DOCTYPE html>
<html lang="en">
  <head>
    <style>
      .wrapBox2 {
        width: 800px;
        height: 300px;
        /* overflow: hidden; */
        position: relative;
      }
      .subBox {
        width: 100%;
        height: 100%;
        position: absolute;
        width: calc(100% - 100px);
        height: calc(100% - 100px);
        z-index: 2;
        filter: blur(10px);
      }
      .text {
        position: relative;
        /* z-index: 10; */
        font-size: 40px;
        font-weight: bold;
        color: #f00;
      }
    </style>
  </head>
  <body>
    <div class="wrapBox2">
      <img src="./win.jpeg" class="subBox" />
      <div class="text">全部模糊</div>
    </div>
  </body>
</html>

在这里插入图片描述
这种方式的话,文字和图片由于是平级的,所以文字要么在图片下方,要么在上方(根据z-index来控制),而不会对文字进行模糊。

backdrop-filter例一

<!DOCTYPE html>
<html lang="en">
  <head>
    <style>
      .wrapBox2 {
        width: 800px;
        height: 300px;
        overflow: hidden;
        position: relative;
        background-image: url("./win.jpeg");
        background-size: 100% 100%;
        background-repeat: no-repeat;
      }
      .subBox {
        position: absolute;
        width: calc(100% - 100px);
        height: calc(100% - 100px);
        z-index: 2;
        backdrop-filter: blur(10px);
        /* top: 100px; */
      }
      .text {
        position: relative;
        /* z-index: 10; */
        font-size: 40px;
        font-weight: bold;
        color: #f00;
      }
    </style>
  </head>
  <body>
    <div class="wrapBox2">
      <div class="subBox"></div>
      <div class="text">部分模糊</div>
    </div>
  </body>
</html>

在这里插入图片描述
可以看到,backdrop-filter 属性不必设置在一个图片元素上面,而是任何元素上面就行,这种方式我觉得更加灵活

总结

  • 如果只是模糊一张图片,那么直接用 filter 就可以实现。
  • 如果想要用一个模糊蒙层盖住html页面/图片的某一部分,那么使用 backdrop-filter。

当然,使用 backdrop-filter 也可以满足第一种场景。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/396137.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

【Linux】网络基础(1)

前言 相信没有网络就没有现在丰富的世界。本篇笔记记录我在Linux系统下学习网络基础部分知识&#xff0c;从关于网络的各种概念和关系开始讲起&#xff0c;逐步架构起对网络的认识&#xff0c;对网络编程相关的认知。 我的上一篇Linux文章呀~ 【Linux】网络套接字编程_柒海啦的…

利用 socket.io 实现前后端实时交互

官网地址&#xff1a;Socket.IO 项目结构&#xff1a; 服务端&#xff08;node&#xff09;代码&#xff1a; 首先安装 express&#xff0c;socket.io npm i express socket.io -S/server/index.js // 官网用例&#xff1a;https://socket.io/zh-CN/docs/v4/server-initial…

数据库-基础篇-6-多表查询(内连接、外连接、自连接)

一、多表关系 1.概述&#xff1a;项目开发中&#xff0c;在进行数据库表结构设计时&#xff0c;会根据业务需求及业务模块之间的关系&#xff0c;分析并设计表结构&#xff0c;由于业务之间相互关联&#xff0c;所以各个表结构也存在着各种联系&#xff0c;基本上分为三种&…

idea中 使用git实现远程仓库master分支和dev分支互相合并

一 新建dev分支 1.在右下角当前分支下&#xff0c;选择创建分支选项 2.给分支起名字 3.创建后&#xff0c;自动切换成新分支 4.将dev分支内容提交到远程dev仓库 进行add&#xff0c;commit&#xff0c;pull&#xff0c;push操作。 1commit操作 2.进行pull操作&#xff0c;远…

浅析CSRF跨域读取型漏洞之CORS

目录 前提知识 CORS介绍 跨域访问的一些场景 跨域请求方式 漏洞原理 非简单请求的预检过程 安全隐患 漏洞复现 挖掘技巧 防御 前提知识 CORS介绍 H5提供的一种机制&#xff0c;WEB应用程序可以通过在HTTP增加字段来告诉浏览器&#xff0c;哪些不同来源的服务器是有权…

7天收割10个offer,软件测试面试题 (项目经验问题+回答)(超级全细)

目录&#xff1a;导读前言一、Python编程入门到精通二、接口自动化项目实战三、Web自动化项目实战四、App自动化项目实战五、一线大厂简历六、测试开发DevOps体系七、常用自动化测试工具八、JMeter性能测试九、总结&#xff08;尾部小惊喜&#xff09;前言 1、简单介绍下最近做…

Android Vsync原理简析

屏幕渲染原理"现代计算机之父"冯诺依曼提出了计算机的体系结构: 计算机由运算器&#xff0c;存储器&#xff0c;控制器&#xff0c;输入设备和输出设备构成&#xff0c;每部分各司其职&#xff0c;它们之间通过控制信号进行交互。计算机发展到现在&#xff0c;已经出…

E90-DTU系列无线数传电台网关与节点4gDTU通信教程

以E90-DTU(400SL22-ETH)与E90-DTU(400SL22)为例实现网关与节点进行数据交换&#xff0c;其它频段或功率的网关/节点&#xff0c;其操作方式与该视频教程一致。 第一步【安装网关】 为网关安装天线电源模块。 第二步【调试网关】&#xff08;根据连接方式不同&#xff0c;配置方…

【java】Java 重写(Override)与重载(Overload)

文章目录重写(Override)方法的重写规则Super 关键字的使用重载(Overload)重载规则实例重写与重载之间的区别总结重写(Override) 重写是子类对父类的允许访问的方法的实现过程进行重新编写, 返回值和形参都不能改变。即外壳不变&#xff0c;核心重写&#xff01; 重写的好处在于…

城市通电(prim算法)

acwing3728 蓝桥杯集训每日一题 平面上遍布着 n 座城市&#xff0c;编号 1∼n。 第 i 座城市的位置坐标为 (xi,yi) 不同城市的位置有可能重合。 现在要通过建立发电站和搭建电线的方式给每座城市都通电。 一个城市如果建有发电站&#xff0c;或者通过电线直接或间接的与建…

重温数据结构与算法之深度优先搜索

文章目录前言一、实现1.1 递归实现1.2 栈实现1.3 两者区别二、LeetCode 实战2.1 二叉树的前序遍历2.2 岛屿数量2.3 统计封闭岛屿的数目2.4 从先序遍历还原二叉树参考前言 深度优先搜索&#xff08;Depth First Search&#xff0c;DFS&#xff09;是一种遍历或搜索树或图数据结…

数据结构(七)优先级队列——堆

一、优先级队列概念队列是一种先进先出(FIFO)的数据结构&#xff0c;但有些情况下&#xff0c;操作的数据可能带有优先级&#xff0c;一般出队列时&#xff0c;可能需要优先级高的元素先出队列&#xff0c;该中场景下&#xff0c;使用队列显然不合适&#xff0c;比如&#xff1…

前端秘籍之=>八股文经卷=>(原生Js篇)【持续更新中...】

大家好&#xff0c;最近想了想&#xff0c;打算总结归纳一版前端八股文经卷&#xff0c;给大家提供学习参考&#xff0c;如果帮助到大家&#xff0c;请大家&#xff0c;一键三连支持一下&#xff0c;你们的支持会激励我更加努力的更新更多有用的知识&#xff0c;博主先在这里谢…

ONLYOFFICE中利用chatGPT帮助我们策划一场生日派对

近日&#xff0c;人工智能chatGPT聊天机器人爆火&#xff0c;在去年年底发布后&#xff0c;仅仅两个月就吸引了全球近一亿的用户&#xff0c;成为史上最快的应用消费程序&#xff0c;chatGPT拥有强大的学习和交互能力 可以被学生&#xff0c;教师&#xff0c;上班族各种职业运…

C++复习笔记1

字符串 字符串的输入 面向行输入&#xff1a;getline() 通过回车键来确定输入结尾&#xff0c;调用方法为cin.getline() 面向行的输入&#xff1a;get() 处理换行符方法&#xff1a; cin.get(name,20); cin.get(); cin.get(nn,20); 或者将两个类成员函数拼接起来 混合输入…

超赞,用python实现流媒体服务器功能,寥寥几句搞定。

步骤&#xff1a; 要使用Python将实时摄像机传送流写入H5页面&#xff0c;可以使用以下步骤。 1、安装必要的软件包。您需要安装OpenCV和Flask以及gunicorn 与 gevent 。您可以通过在终端中运行以下命令来执行此操作。 pip install opencv-python pip install Flask pip ins…

buu [HDCTF2019]together 1

题目描述&#xff1a; 给了4个文件 pubkey2.pem:-----BEGIN PUBLIC KEY----- MIIBIDANBgkqhkiG9w0BAQEFAAOCAQ0AMIIBCAKCAQB1qLiqKtKVDprtSNGGN q7jLqDJoXMlPRRczMBAGJIRsz5Dzwtt1ulr0s5yu8RdaufiYeU6sYIKk92b3yygL FvaYCzjdqBF2EyTWGVE7PL5lh3rPUfxwQFqDR8EhIH5xOb8rjlkftI…

SQL的优化思路和使用规范

1、索引优化 1.1 建表或加索引时&#xff0c;保证表里互相不存在冗余索引。 对于MySQL来说&#xff0c;如果表里已经存在key(a,b)&#xff0c;则key(a)为冗余索引&#xff0c;需要删除。 1.2 复合索引 建立索引时&#xff0c;多考虑建立复合索引&#xff0c;并把区分度最高…

基于Django4.1.4的入门学习记录

基于Django4.1.4的入门学习记录Django创建Django项目创建工程工程目录说明运行开发服务器settings.py配置文件应用的创建创建应用模块应用模块文件说明App应用配置注册安装子应用数据模型ORM概述定义模型类生成数据库表查看数据库文件Admin管理工具管理界面本地化创建管理员注册…

STM32CubeMX使用说明

目录1 软件安装1.1 软件&环境下载1.1.1 STM32CubeMX软件下载1.1.2 Java环境下载1.2 安装1.2.1 Java环境安装1.2.2 STM32CubeMX软件安装2 软件启动与安装库文件2.1 软件界面2.2 修改默认库文件路径2.3 在线安装固件库3 新建第一个工程3.1 新建工程3.2 选择MCU型号3.3 设置De…