前端使用svg图片改色实现示例

 更新时间:2022年07月21日 09:52:17   作者:前端架构师陈龙威  
这篇文章主要为大家介绍了前端使用svg实现图片改色的示例详解,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪

引言

周六来公司写点东西,刚好有个icon颜色不对,ui又不在公司,那么就只能自己动手丰衣足食了。

呜呜呜,好想住公司,都不用上下班了。

svg填充色用的fill

当ui给你了svg图片,且是单色的,又只有你用

svg填充色用的fill,修改里面的颜色即可。

下面是例子:

首先,ui一般会直接给你svg图片,比如这样的:

,用idea或者笔记本打开里面是这样的:

<?xml version="1.0" encoding="UTF-8"?>
<svg width="16px" height="16px" viewBox="0 0 16 16" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
    <title>元件/组件图标/提示/面</title>
    <g id="元件/组件图标/提示/面" stroke="none" stroke-width="1" fill="none" fill-rule="evenodd">
        <path d="M8,16 C3.581722,16 0,12.418278 0,8 C0,3.581722 3.581722,0 8,0 C12.418278,0 16,3.581722 16,8 C16,12.418278 12.418278,16 8,16 Z M7.5,11.5 C7.5,11.7762581 7.72387097,12 8,12 C8.27612903,12 8.5,11.7762581 8.5,11.5 C8.5,11.2237419 8.27612903,11 8,11 C7.72387097,11 7.5,11.2237419 7.5,11.5 Z M8,4 C7.72385763,4 7.5,4.22385763 7.5,4.5 L7.5,9.5 C7.5,9.77614237 7.72385763,10 8,10 C8.27614237,10 8.5,9.77614237 8.5,9.5 L8.5,4.5 C8.5,4.22385763 8.27614237,4 8,4 Z" id="icon换色层" fill="#f2b044"></path>
    </g>
</svg>

搜索关键词,找到id="icon换色层" fill="#f2b044",替换fill的值为#df2222,那么就变成红色了。

你可以试试。

css改色利用过滤器filter

当你用的公司统一的svg格式的icon,但是颜色和这次的需求不一致,直接改svg文件可能影响其他显示,可以考虑css

看到这个,有人就要说了,还不如按方法1,改个颜色,然后复制下文件改名,粘贴,简单粗暴。

确实,可惜我们是前端,一点点优化也是优化,一点点体积也是体积(一点点味道一般,还是蜜雪冰城好喝)。css改色利用的是过滤器filter的drop-shadow属性,它的功能是可定点定位生成一个可调整模糊度以及颜色的投影,卧槽,真牛,感觉能做好多炫酷的东西,属实是彩色影分身术了。

具体代码:

<div style="position: relative; width: 20px; height: 20px; border: 1px solid;">
    <img src="./svg/img/demo1.svg" style="position:absolute; top: 0; left: 0; filter: drop-shadow(20px 0 #32bb65)"/>
</div>

效果如下:

然后我们调整下原本icon的位置,将它往左挪出去:left:-20px,代码如下:

<div style="position: relative; width: 20px; height: 20px; border: 1px solid;">
  <img src="./svg/img/demo1.svg" style="position:absolute; top: 0; left: -20px; filter: drop-shadow(20px 0 #32bb65)"/>
</div>

最后我们去掉方便识别的边框,并给div加上overflow:hidden,一个简单的icon改色就完成了!!好棒!!。

最后顺便介绍下filter: drop-shadow()

filter: drop-shadow(x, y, blurry, color),第一个参数距离源x轴的像素大小,第二个参数是距离源y轴的像素大小,第三个是模糊度,第四个是投影的颜色。

这是mdn的资料,有个很好看的实现:developer.mozilla.org/zh-CN/docs/…

这个蓝色底就是drop-shadow实现的。

最后看我多重影分身之术:

drop-shadow(20px 0 red) drop-shadow(20px 20px green) drop-shadow(20px 39px blue) drop-shadow(20px 0 skyblue)

原图是橙色,第一次是红色,第二次是绿色,第三次是蓝色,第四次是天蓝,每多一次drop-shadow,都会把上一次的图像复制一次,把上一次的作为原图进行投影,是裂变了没错!!

以上就是前端使用svg图片改色实现示例的详细内容,更多关于前端 svg图片改色的资料请关注脚本之家其它相关文章!

相关文章

  • kettle在windows上安装配置与实践案例

    kettle在windows上安装配置与实践案例

    Kettle是一款开源的ETL工具,纯java编写,可以在Window、Linux、Unix上运行,绿色无需安装,数据抽取高效稳定,这篇文章主要介绍了kettle在windows上安装配置与实践案例,需要的朋友可以参考下
    2022-11-11
  • chatgpt 1020 错误码成功解决的三种方案(推荐)

    chatgpt 1020 错误码成功解决的三种方案(推荐)

    造成1020错误的主要原因是代理问题,当打开代理时,登录该网站会直接显示上述错误“Access denied Error code 1020”,怎么解决这个问题呢,下面小编给大家带来了chatgpt 1020 错误码成功解决的三种方案,感兴趣的朋友一起看看吧
    2023-02-02
  • Jebrains付费插件Activation code[持续更新]

    Jebrains付费插件Activation code[持续更新]

    这篇文章主要介绍了Jebrains付费插件Activation code[持续更新],使用本Activation code需要jetbrains-agent支持!感兴趣的朋友跟随小编一起看看吧
    2020-09-09
  • 本地部署DeepSeek-R大模型的详细教程

    本地部署DeepSeek-R大模型的详细教程

    今天我来分享一篇超级详细的教程,教你如何在本地部署 DeepSeek-R1 大模型,让你的电脑也能成为一个强大的 AI 工作站!这篇文章会从零开始,手把手带你完成所有步骤,适合小白操作,废话不多说,咱们直接开始吧
    2025-02-02
  • 电子邮件 退信原因大全

    电子邮件 退信原因大全

    我们可以对邮件多尝试几次发送,如果实在不行那就过一会再发送邮件。
    2009-06-06
  • 字符集和字符编码(Charset & Encoding)

    字符集和字符编码(Charset & Encoding)

    相信大家一定碰到过,打开某个网页,却显示一堆像乱码,如"б&#1031;ЯАзЪСЯ"、"&#65533;????????"?还记得HTTP中的Accept-Charset、Accept-Encoding、Accept-Language、Content-Encoding、Content-Language等消息头字段?这些就是接下来我们要探讨的
    2012-04-04
  • Win10下配置VScode远程开发ssh-remote(免密登录)

    Win10下配置VScode远程开发ssh-remote(免密登录)

    在开发或者做实验的过程中,我们经常会用到远程服务器或者Github的项目,本文详细介绍的VScode配置免密ssh+remote,一旦连接成功,我们就可以在本地自己喜欢的IDE上操作远程服务器端的项目了
    2021-08-08
  • 国内环境搭建私有知识问答库踩坑记录(ollama+deepseek+ragflow)

    国内环境搭建私有知识问答库踩坑记录(ollama+deepseek+ragflow)

    本文给大家利用deepseek模型搭建私有知识问答库的详细步骤和遇到的问题及解决办法,感兴趣的朋友一起看看吧
    2025-03-03
  • 利用ChatGPT编写一段嵌入式代码

    利用ChatGPT编写一段嵌入式代码

    ChatGPT也热火朝天了有一段时间了,今天闲来没事,也想着玩一玩ChatGPT,看看是不是网上说的那么强大!本文就来用ChatGPT编写一段嵌入式代码,看看效果如何
    2023-02-02
  • 在Windows系统上安装Cygwin搭建Swoole测试环境的图文教程

    在Windows系统上安装Cygwin搭建Swoole测试环境的图文教程

    这篇文章主要介绍了在Windows系统上安装Cygwin搭建Swoole测试环境的方法,本文通过图文并茂的形式给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2020-05-05

最新评论