news 2026/6/16 10:03:51

css filter

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
css filter

一、基本概念
filter 属性用于对元素应用图形效果,如模糊、颜色偏移、亮度调整等。通常用于图片、背景和视频的视觉效果处理。

语法:

.element {
filter: []* | none;
}
二、所有滤镜函数详解

  1. blur() - 模糊
    /* 高斯模糊,数值越大越模糊/
    filter: blur(5px);
    filter: blur(0); /
    无模糊 */
    参数:长度值(不能为百分比)
    不接受负值
  2. brightness() - 亮度
    filter: brightness(1); /* 原始亮度/
    filter: brightness(1.5); /
    更亮/
    filter: brightness(0.5); /
    更暗(50%)/
    filter: brightness(0); /
    完全黑色 */
    0% 为纯黑,100% 为原始,超过 100% 更亮
  3. contrast() - 对比度
    filter: contrast(1); /* 原始对比度/
    filter: contrast(1.5); /
    增强对比度/
    filter: contrast(0.5); /
    降低对比度/
    filter: contrast(0); /
    完全灰色 */
  4. grayscale() - 灰度
    filter: grayscale(0); /* 原始颜色/
    filter: grayscale(0.5); /
    50% 灰度/
    filter: grayscale(1); /
    完全灰度(黑白) */
  5. sepia() - 棕褐色/怀旧
    filter: sepia(0); /* 原始颜色/
    filter: sepia(0.6); /
    60% 棕褐色/
    filter: sepia(1); /
    完全棕褐色 */
  6. saturate() - 饱和度
    filter: saturate(1); /* 原始饱和度/
    filter: saturate(2); /
    超级饱和/
    filter: saturate(0); /
    完全不饱和(等同于灰度)/
    filter: saturate(0.5); /
    降低饱和度 */
  7. hue-rotate() - 色相旋转
    filter: hue-rotate(0deg); /* 原始色相/
    filter: hue-rotate(90deg); /
    旋转90度/
    filter: hue-rotate(180deg); /
    旋转180度(补色) */
    filter: hue-rotate(270deg);
    参数:角度值(deg、rad、turn 等)
    色相环旋转
  8. invert() - 反色
    filter: invert(0); /* 原始颜色/
    filter: invert(0.5); /
    50% 反色/
    filter: invert(1); /
    完全反色(负片效果) */
  9. opacity() - 透明度
    filter: opacity(1); /* 完全不透明/
    filter: opacity(0.5); /
    50% 透明/
    filter: opacity(0); /
    完全透明 */
    类似 opacity 属性,但硬件加速性能更好
  10. drop-shadow() - 投影
    filter: drop-shadow(4px 4px 10px rgba(0, 0, 0, 0.5));
    filter: drop-shadow(0 0 5px blue);
    参数: ?
    与 box-shadow 不同,它遵循元素的透明轮廓
    三、组合使用
    可以同时应用多个滤镜:

/* 多个滤镜用空格分隔 */
.element {
filter: blur(2px) brightness(1.2) contrast(1.1);
}

/* 创建特定效果/
.image:hover {
filter: grayscale(100%) brightness(0.8) contrast(1.2);
/
黑白、稍暗、高对比度 */
}
四、常见效果示例

  1. 复古照片效果
    .vintage {
    filter: sepia(0.5) contrast(0.9) brightness(0.9) saturate(0.8);
    }
  2. 冷色调效果
    .cool-tone {
    filter: hue-rotate(180deg) saturate(0.8) brightness(1.1);
    }
  3. 高对比度黑白
    .high-contrast-bw {
    filter: grayscale(1) contrast(1.5) brightness(0.9);
    }
  4. 毛玻璃效果
    .glass {
    filter: blur(10px) brightness(1.1);
    }
  5. 霓虹灯效果
    .neon {
    filter: brightness(1.5) contrast(1.2) saturate(2)
    drop-shadow(0 0 10px currentColor);
    }
    五、性能与注意事项
  6. 性能对比
    /* ✅ 推荐:使用 filter 实现透明度(硬件加速) */
    filter: opacity(0.5);

/* ⚠️ 避免:opacity 属性可能触发重绘/
opacity: 0.5;
2. 创建堆叠上下文
/
filter 会创建新的堆叠上下文/
.parent {
filter: blur(1px);
/
子元素的 z-index 相对于这个父元素/
}
3. 影响后代元素
/
注意:filter 会影响所有后代元素/
.container {
filter: blur(5px); /
容器内所有内容都会模糊 */
}

/* 解决方案:只对背景应用滤镜/
.container {
position: relative;
}
.container::before {
content: ‘’;
position: absolute;
inset: 0;
background: url(‘bg.jpg’);
filter: blur(5px); /
只有背景模糊 */
}
六、backdrop-filter
对元素后面的内容应用滤镜:

/* 常见的毛玻璃导航栏/
.navbar {
background: rgba(255, 255, 255, 0.2);
backdrop-filter: blur(10px) saturate(1.5);
-webkit-backdrop-filter: blur(10px); /
Safari 支持 */
}

/* 背景变暗 */
.overlay {
backdrop-filter: brightness(0.5);
}
七、完整对比表
函数 作用 默认值 范围
blur() 模糊 0 0+
brightness() 亮度 1 0+
contrast() 对比度 1 0+
grayscale() 灰度 0 0-1
sepia() 棕褐色 0 0-1
saturate() 饱和度 1 0+
hue-rotate() 色相旋转 0deg 任意角度
invert() 反色 0 0-1
opacity() 透明度 1 0-1
drop-shadow() 投影 none -
八、实用技巧
/1. 悬浮高亮/
.btn-back {
cursor: pointer;
transition: all 0.25s ease-out;

.btn-wrap__icon { background-image: url('~@/assets/images/icon-left.png'); } &:hover { filter: brightness(1.15) saturate(1.1); // 提亮15%,增加10%饱和度,色彩更鲜艳 }

}

/* 2. 禁用状态 */
.disabled {
filter: grayscale(1) opacity(0.5);
pointer-events: none;
}

/* 3. 暗色模式图片适配 */
@media (prefers-color-scheme: dark) {
img {
filter: brightness(0.8) contrast(1.2);
}
}

/* 4. 加载占位符 */
.loading {
filter: blur(20px);
transition: filter 0.3s;
}
.loaded {
filter: blur(0);
}
CSS filter 是一个非常强大的视觉处理工具,合理使用可以创造出丰富的视觉效果!

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/6/16 10:03:18

智能家居本地化中枢:从Home Assistant到Zigbee的实战搭建指南

1. 项目概述:从“聪慧819”看智能家居的本地化中枢革命最近在折腾家里的智能设备,发现一个挺有意思的现象:大家好像都默认智能家居就得“上网”,所有指令都得绕一圈云端服务器再回来。这带来的延迟、隐私顾虑,还有断网…

作者头像 李华
网站建设 2026/6/16 9:57:55

华为“朋友圈”再添一员!乾崑高阶智驾「杀」至15万?

6月7日,东风风行与华为乾崑智驾的合作正式签约,星海V6将成为双方合作后首款落地车型。该车定位“智慧亲民大六座”,将搭载华为乾崑智驾系统,目前新车已在2026北京车展上首发亮相,并在工信部完成新车申报,预…

作者头像 李华
网站建设 2026/6/16 9:55:51

2000-2025年省级、地级市人工智能企业数量

一、数据指标 统计年份、省份、地级市、地级市代码(没有省级代码)、当年新注册企业数、从基期开始累计注册企业数 二、数据详情 统计口径:31个省(含直辖市)和340个城市 数据样本:观测值情况具体见描述性统计…

作者头像 李华
网站建设 2026/6/16 9:52:57

命令行自省:用ps、lsof、ss等原生命令诊断Linux系统状态

1. 什么是命令行自省:不是调试,而是和系统对话“Introspection with command line tools”——这个标题乍看像一句技术黑话,其实它描述的是一种极其朴素却常被忽视的能力:用终端里的基础命令,主动、系统性地观察当前运…

作者头像 李华
网站建设 2026/6/16 9:47:01

从 Interface 到 Lambda:一次串起 Java 和 Kotlin 的回调设计

引言最近在写自己的日志库。设计网络模块和日志模块解耦的时候,遇到了一个很自然的问题:网络请求完成后,怎么通知日志模块?第一反应很简单:定义一个 Interface。interface NetworkEventListener {fun onNetworkEvent(e…

作者头像 李华
网站建设 2026/6/16 9:46:56

本地跑大模型实操指南:Ollama+LM Studio+Open WebUI部署全流程

1. 为什么“自己电脑跑AI”不是玄学,而是今天就能动手的日常操作?“自己电脑跑AI?”——去年这时候我听到这句话,第一反应是:这得是顶配工作站显卡堆叠散热塔吧?结果上个月,我用一台2020款MacBo…

作者头像 李华