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


Posted in HTML / CSS onJuly 23, 2022

引言

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

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

svg填充色用的fill

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

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

下面是例子:

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

前端使用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,那么就变成红色了。

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

你可以试试。

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>

效果如下:

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

然后我们调整下原本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>

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

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

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

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

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

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

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

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

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

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

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

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

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


Tags in this post...

HTML / CSS 相关文章推荐
CSS3用@font-face实现自定义英文字体
Sep 23 HTML / CSS
CSS3提交意见输入框样式代码
Oct 30 HTML / CSS
css3实现的多级渐变下拉菜单导航效果代码
Aug 31 HTML / CSS
简单掌握CSS3中resize属性的用法
Apr 01 HTML / CSS
css3 中translate和transition的使用方法
Mar 26 HTML / CSS
Android本地应用打开方法——通过html5写连接
Mar 11 HTML / CSS
html5 拖拽上传图片实例演示
Apr 01 HTML / CSS
解决HTML5手机端页面缩放的问题
Oct 27 HTML / CSS
详解canvas多边形(蜘蛛图)的画法示例
Jan 29 HTML / CSS
详解使用双缓存解决Canvas clearRect引起的闪屏问题
Apr 29 HTML / CSS
HTML5实现移动端点击翻牌功能
Oct 23 HTML / CSS
面试必问:圣杯布局和双飞翼布局的区别
May 13 HTML / CSS
详解flex:1什么意思
Jul 23 #HTML / CSS
CSS子盒子水平和垂直居中的五种方法
Jul 23 #HTML / CSS
如何用H5实现好玩的2048小游戏
Jul 23 #HTML / CSS
css让页脚保持在底部位置的四种方案
Jul 23 #HTML / CSS
浅谈为什么我的 z-index 又不生效了
Jul 15 #HTML / CSS
纯CSS实现一个简单步骤条的示例代码
Jul 15 #HTML / CSS
CSS中使用grid布局实现一套模板多种布局
Jul 15 #HTML / CSS
You might like
浅谈PHP与C#的值类型指向区别的详解
2013/05/21 PHP
ThinkPHP入口文件设置及相关注意事项分析
2014/12/05 PHP
extjs 列表框(multiselect)的动态添加列表项的方法
2009/07/31 Javascript
cookie在javascript中的使用技巧以及隐私在服务器端的设置
2012/12/03 Javascript
5个书写JavaScript代码的坏习惯,看看你中枪了没?
2014/11/06 Javascript
jQuery简单获取键盘事件的方法
2016/01/22 Javascript
jQuery使用animate实现ul列表项相互飘动效果示例
2016/09/16 Javascript
简单的js计算器实现
2016/10/26 Javascript
微信小程序 中wx.chooseAddress(OBJECT)实例详解
2017/03/31 Javascript
Bootstrap 树控件使用经验分享(图文解说)
2017/11/06 Javascript
jQuery进阶实践之利用最优雅的方式如何写ajax请求
2017/12/20 jQuery
Vue编程式跳转的实例代码详解
2019/07/10 Javascript
layui输入框只允许输入中文且判断长度的例子
2019/09/18 Javascript
在vue中阻止浏览器后退的实例
2019/11/06 Javascript
详解为element-ui的Select和Cascader添加弹层底部操作按钮
2020/02/07 Javascript
15个简单的JS编码标准让你的代码更整洁(小结)
2020/07/16 Javascript
python利用拉链法实现字典方法示例
2017/03/25 Python
Python使用getpass库读取密码的示例
2017/10/10 Python
Pandas 合并多个Dataframe(merge,concat)的方法
2018/06/08 Python
Python使用pandas处理CSV文件的实例讲解
2018/06/22 Python
Python PIL图片添加字体的例子
2019/08/22 Python
Python制作词云图代码实例
2019/09/09 Python
Python 导入文件过程图解
2019/10/15 Python
Python实现图片识别加翻译功能
2019/12/26 Python
Python SSL证书验证问题解决方案
2020/01/13 Python
美国最大的网络男装服装品牌:Bonobos
2017/05/25 全球购物
给分销商的致歉信
2014/01/14 职场文书
客户服务经理岗位职责
2014/01/29 职场文书
“三支一扶”支教教师思想汇报
2014/09/13 职场文书
终止或解除劳动合同及劳动关系的证明书
2014/10/06 职场文书
县级领导干部开展党的群众路线教育实践活动工作汇报
2014/10/25 职场文书
母亲节主题班会
2015/08/14 职场文书
2019个人半年工作总结
2019/06/21 职场文书
小学作文指导之如何写人?
2019/07/08 职场文书
Python字符串对齐方法使用(ljust()、rjust()和center())
2021/04/26 Python
Win11 Beta 22621.601 和 22622.601今日发布 KB5017384修复内容汇总
2022/09/23 数码科技