css技巧混合模式

看上面这个神奇的效果,文字在黑色背景里面显示为白色,而在白色的背景里面显示为黑色,这就是文字智能适配背景。

看到这样的需求,大多数人第一时间想到的是,文字元素有两个,是完全重叠的两层,一层是黑色,一层是白色,然后通过遮罩实现,这里使用了CSS3 新增了一个属性 -- mix-blend-mode 混合模式来实现。

实现代码


<template><div class="bg"><div class="text">Hello World!</div></div></template><style scoped>.bg{background:url('/uploadUrl/dataroom/2024/07/19/1814116805079793665.png') no-repeat;background-size:100%;display:flex;align-items:center;width:677px;height:106px;justify-content:center;.text{color:#fff;font-size:50px;mix-blend-mode: difference;}}</style>

mix-blend-mode 概述

除去 initial 默认、inherit 继承 和 unset 还原这 3 个所有 CSS 属性都可以取的值外,还有另外的 16 个具体的取值,对应不同的混合效果。

{mix-blend-mode: normal;         // 正常mix-blend-mode: multiply;       // 正片叠底mix-blend-mode: screen;         // 滤色mix-blend-mode: overlay;        // 叠加mix-blend-mode: darken;         // 变暗mix-blend-mode: lighten;        // 变亮mix-blend-mode: color-dodge;    // 颜色减淡mix-blend-mode: color-burn;     // 颜色加深mix-blend-mode: hard-light;     // 强光mix-blend-mode: soft-light;     // 柔光mix-blend-mode: difference;     // 差值mix-blend-mode: exclusion;      // 排除mix-blend-mode: hue;            // 色相mix-blend-mode: saturation;     // 饱和度mix-blend-mode: color;          // 颜色mix-blend-mode: luminosity;     // 亮度mix-blend-mode: initial;        // 默认mix-blend-mode: inherit;        // 继承mix-blend-mode: unset;          // 还原
}

如果不是专业的 PSer 天天和混合模式打交道,想要记住这么多效果,还是挺困难的。不过有前人帮我们总结了一番,看看如何比较好的理解或者说记忆这些效果

当然,上图是 PS 中的混合模式,数量比 CSS 中的多出几个,但是分类还是通用的。

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

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

相关文章

Facebook在内容创作中的新策略与机会

随着社交媒体的不断发展&#xff0c;内容创作已经成为了平台吸引和留住用户的核心竞争力。Facebook作为全球最大的社交平台之一&#xff0c;不断调整和优化其内容创作策略&#xff0c;以适应用户需求的变化和技术的进步。本文将深入探讨Facebook在内容创作中的新策略与机会&…

最新全流程Python编程、机器学习与深度学习实践技术应用

近年来&#xff0c;人工智能领域的飞速发展极大地改变了各个行业的面貌。当前最新的技术动态&#xff0c;如大型语言模型和深度学习技术的发展&#xff0c;展示了深度学习和机器学习技术的强大潜力&#xff0c;成为推动创新和提升竞争力的关键。特别是PyTorch&#xff0c;凭借其…

考研复习7月进度严重滞后?

宇哥说&#xff1a;来不及了&#xff01; 因为基础30讲和强化36讲&#xff0c;加起来已经快300小时了。 所以&#xff0c;必须换个思路&#xff1a; 不看课行吗&#xff1f; 大多数人7月的情况是这样的&#xff1a; 1. 听完线代&#xff0c;高数知识点忘得差不多了&#xf…

React/Vue项目解决跨域的方法

在Vue项目中&#xff0c;一般使用以下几种方法来解决跨域问题&#xff1a; 一、代理&#xff08;Proxy&#xff09;&#xff1a; 通过Vue的配置文件&#xff08;vue.config.js&#xff09;中的devServer选项&#xff0c;可以设置代理来解决跨域问题。通过将请求发送到同一域名…

JMeter接口测试-3.断言及参数化测试

1. 断言 JMeter官方断言&#xff08;Assertion&#xff09;的定义 用于检查测试中得到的响应数据是否符合预期&#xff0c;用于保证测试过程中的数据交互与预期一致 断言的目的&#xff1a; 一个取样器可以添加多个不同形式的断言&#xff0c;根据你的检查需求来添加相应的…

自动驾驶系列—智能巡航辅助功能中的路口通行功能介绍

自动驾驶系列—智能巡航辅助功能中的车道中央保持功能介绍 自动驾驶系列—智能巡航辅助功能中的车道变换功能介绍 自动驾驶系列—智能巡航辅助功能中的横向避让功能介绍 自动驾驶系列—智能巡航辅助功能中的路口通行功能介绍 文章目录 2. 功能定义3. 功能原理4. 传感器架构5. 实…

Java语言程序设计基础篇_编程练习题**15.18(使用鼠标来移动一个矩形)

**15.18(使用鼠标来移动一个矩形) 请编写一个程序显示一个矩形。可以使用鼠标单击矩形内部并且拖动&#xff08;即按住鼠标移动&#xff09;矩形到鼠标的位置。鼠标点成为矩形的中央习题思路&#xff1a; 新建一个面板Pane()&#xff0c;新建一个Rectangle() 为Rectangle注册…

【北京迅为】《i.MX8MM嵌入式Linux开发指南》-第三篇 嵌入式Linux驱动开发篇-第三十九章 Linux MISC驱动

i.MX8MM处理器采用了先进的14LPCFinFET工艺&#xff0c;提供更快的速度和更高的电源效率;四核Cortex-A53&#xff0c;单核Cortex-M4&#xff0c;多达五个内核 &#xff0c;主频高达1.8GHz&#xff0c;2G DDR4内存、8G EMMC存储。千兆工业级以太网、MIPI-DSI、USB HOST、WIFI/BT…

web每日一练

每日一题 每天一题罢了。。 ctfshow内部赛签到 扫到备份文件 login.php <?php function check($arr){ if(preg_match("/load|and|or|\||\&|select|union|\|| |\\\|,|sleep|ascii/i",$arr)){echo "<script>alert(bad hacker!)</script>&q…

微服务和VUE入门教程(16): zuul 熔断

1. 前言 在开发工程中&#xff0c;我们发现当一个微服务挂掉之后&#xff0c;如果我们访问此微服务的接口&#xff0c;zuul也会挂掉。因为zuul负责分配请求&#xff0c;当目标微服务挂掉之后&#xff0c;zuul便找不到目标微服务&#xff0c;因为我们需要设置一个熔断&#xff0…

电机调速控制模块说明文档

电机调速控制模块说明文档 图1-1总览图片 概述本电机控制模块是用于精确控制直流无刷电机运行、以及转速的关键组件&#xff0c;它能够实现对电机的启动、停止、调速、转向等操作&#xff0c;并提供多种保护功能&#xff0c;以确保电机的安全稳定运行。 驱动方式&#xff1a;…

SpringBoot中如何使用Spring Security安全框架

在Spring Boot中使用Spring Security的基本步骤如下&#xff1a; 1&#xff0c;添加Spring Security依赖到你的 pom.xml 文件中&#xff1a; <dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-security<…

如何学习Python:糙快猛的大数据之路(学习地图)

在这个AI和大数据主宰的时代,Python无疑是最炙手可热的编程语言之一。无论你是想转行还是提升技能,学习Python都是一个明智之选。但是,该如何开始呢?今天,让我们聊聊"糙快猛"的Python学习之道。 什么是"糙快猛"学习法? "糙快猛"学习法,顾名思…

Spark SQL----JOIN

Spark SQL----JOIN 一、描述二、语法三、参数四、Join类型4.1 Inner Join4.2 Left Join4.3 Right Join4.4 Full Join4.5 Cross Join4.6 Semi Join4.7 Anti Join 五、例子 一、描述 SQL连接用于根据join criteria组合来自两个关系的行。以下部分描述了整个join语法&#xff0c;…

OpenGL笔记十四之GLM数学库的配置与使用

OpenGL笔记十四之GLM数学库的配置与使用 —— 2024-07-20 中午 bilibili赵新政老师的教程看后笔记 code review! 文章目录 OpenGL笔记十四之GLM数学库的配置与使用1.旋转变换运行效果2.平移变换运行效果3.缩放变换运行效果4.复合变换&#xff1a;先旋转 再平移运行效果5.复合…

OpenTeleVision复现及机器人迁移

相关信息 标题 Open-TeleVision: Teleoperation with Immersive Active Visual Feedback作者 Xuxin Cheng1 Jialong Li1 Shiqi Yang1 Ge Yang2 Xiaolong Wang1 UC San Diego1 MIT2主页 https://robot-tv.github.io/链接 https://robot-tv.github.io/resources/television.pdf代…

八股文之java基础

jdk9中对字符串进行了一个什么优化&#xff1f; jdk9之前 字符串的拼接通常都是使用进行拼接 但是的实现我们是基于stringbuilder进行的 这个过程通常比较低效 包含了创建stringbuilder对象 通过append方法去将stringbuilder对象进行拼接 最后使用tostring方法去转换成最终的…

c++线程传参

在C中&#xff0c;可以使用std::thread的构造函数来向线程传递参数。这里有一个示例&#xff1a; #include <iostream> #include <thread>// 定义一个被线程调用的函数 void threadFunc(int arg1, double arg2, std::string arg3) {std::cout << "arg1…

filebeat把日志文件上传到Es中配置(ES7版本)

默认的filebeat配置会把所有的索引都放到一个文件中&#xff0c;通过摸索发现可以自定义索引的名字、模板、生命周期 &#xff08;重点注意&#xff09;该配置文件只适应于ES版本是7&#xff0c;不适应于8的版本&#xff0c;两个版本的配置文件差异很大 /app/logs/info.log日…

glibc: getifaddrs_internal 占用大量cpu

Samples: 60K of event cpu-clock:pppH, Event count (approx.): 15027000000Overhead Command Shared Object Symbol - 34.84% arping libc-2.28.so [.] getifaddrs_internal getifaddrs_internal__GI___getifaddrs