使用 CSS background-blend-mode 创造惊艳的视觉效果

引言

在现代 Web 设计中,CSS 提供了许多强大的属性来增强视觉效果,而 background-blend-mode 就是其中之一。它允许开发者混合背景图像和颜色,创造出类似 Photoshop 的图层混合效果,而无需依赖图片编辑软件。

本文将介绍 background-blend-mode 的基本概念、常见混合模式、浏览器支持、实际应用案例。

background-blend-mode概念

background-blend-mode 是一个 CSS 属性,属性定义了背景层的混合模式(图片与颜色)

基本语法

css 复制代码
background-blend-mode: normal|multiply|screen|overlay|darken|lighten|color-dodge|saturation|color|luminosity;

常见混合模式

background-blend-mode 支持多种混合模式,以下是几种常用的:

混合模式 效果描述
normal 默认模式,不混合
multiply 正片叠底模式,使图像变暗
screen 滤色模式,使图像变亮
overlay 叠加模式
darken 变暗模式
lighten 变亮模式
color-dodge 颜色减淡模式
hard-light 饱和度模式
hue 颜色模式
luminosity 亮度模式

浏览器支持

background-blend-mode 在现代浏览器(Chrome、Firefox、Safari、Edge)中支持良好,但 IE 完全不支持

实际应用案例

html 复制代码
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
    <style>
    .pic {
        width: 200px;
        height: 200px;
        margin: 50px;
        text-align: center;
        font-size: 42px;
        line-height: 420px;
        float: left;
        background-image: url('img/logo2.jpg');
        background-size: cover;
    }

    .pic1 {
        background-image: url('img/logo2.jpg'), linear-gradient(#f00, #f00);
        background-blend-mode: lighten;
        background-size: cover;
    }

    .pic2 {
        background-image: url('img/logo2.jpg'), linear-gradient(#27be72, #27be72);
        background-blend-mode: lighten;
        background-size: cover;
    }

    .pic3 {
        background-image: url('img/logo2.jpg'), linear-gradient(#f00, #00f);
        background-blend-mode: lighten;
        background-size: cover;
    }
    </style>

</head>
<body>
    <div class="pic">原图</div>
    <div class="pic pic1">红色</div>
    <div class="pic pic2">绿色</div>
    <div class="pic pic3">渐变色</div>
</body>
</html>

渲染效果如下:

结语

background-blend-mode 为 Web 设计提供了强大的视觉控制能力,可以轻松实现双色调、纹理叠加、动态换肤等效果。虽然浏览器兼容性有限,但在现代 Web 项目中,它仍然是一个值得探索的 CSS 特性。

尝试在你的下一个项目中使用它,让你的设计更具创意!

相关推荐
求道於盲15 分钟前
异步编程中的 Future
前端
Z兽兽32 分钟前
HBuilder打包web地址的apk,更新dist后如何自动清缓存
前端·android应用打包
Hilaku41 分钟前
Bun 真的能取代 Node.js 吗?
前端·javascript·程序员
奔跑的卡卡1 小时前
线上Web异常发现为什么总是滞后?一套自研Web实时异常分析监控系统整体架构拆解
前端·web安全·架构
梦曦i1 小时前
create-uni-app v1.1.0:结构化生成,工程骨架更规范
前端·uni-app
流光D1 小时前
AI时代,搭建 web 站点并配置 nginx 反向代理流程
运维·服务器·前端·人工智能·nginx·ai·ai编程
PBitW1 小时前
Travel Planner — 智能旅行行程规划助手
前端·后端
梨想橙汁2 小时前
CSS Grid 网格布局:二维布局神器,轻松实现复杂网页排版
前端·css
lhldsg2 小时前
酒吧点餐小程序开发:从需求分析到技术落地实战
java·前端·小程序·架构·交友
Csvn2 小时前
微前端样式隔离:为什么你的 CSS 串到别人家了?Shadow DOM、CSS Variables 与 @layer 实战
前端