background-image使用svg如何改变颜色
结论
在我多番测试之后,才发现background-image使用svg,改变颜色根本做不了。
分析
当svg图片被使用成background-image,颜色的设置需要在svg内部才能生效。在外部CSS设置颜色样式,却是无效,这其实可以从CSS选择器得到解释,CSS选择器必须选择到DOM元素,而svg却被做成背景图,并没有以元素引入,所以在外部也就设不了颜色。
例子
CSS:
i { display: inline-block; width: 100px; height: 100px; } .icon-del{ background-image: url(delete.svg); } .st0{fill:#EC665E;} .st1{fill:#FFFFFF;}
HTML:
<i class="icon-del"></i>
SVG:
<?xml version="1.0" encoding="utf-8"?> <!-- Generator: Adobe Illustrator 19.0.0, SVG Export Plug-In . SVG Version: 6.00 Build 0) --> <svg version="1.1" id="图层_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px" viewBox="-691 693 16 16" style="enable-background:new -691 693 16 16;" xml:space="preserve"> <title>删除群成员</title> <desc>Created with Sketch.</desc> <g id="Page-1"> <g id="群组名片成员_x28_管理员_x29_" transform="translate(-284.000000, -249.000000)"> <g id="Group-19"> <g id="Group-14" transform="translate(20.000000, 120.000000)"> <g id="群成员-copy-4" transform="translate(0.000000, 121.000000)"> <g id="删除群成员" transform="translate(264.000000, 8.000000)"> <g id="Group" transform="translate(2.000000, 2.000000)"> <g id="Oval-9"> <circle class="st0" cx="-685" cy="699" r="6"/> </g> <g id="Path-2"> <path class="st1" d="M-681,700h-8c-0.6,0-1-0.4-1-1s0.4-1,1-1h8c0.6,0,1,0.4,1,1S-680.4,700-681,700z"/> </g> </g> </g> </g> </g> </g> </g> </g> </svg>
分类:
1.前端基础
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· winform 绘制太阳,地球,月球 运作规律
· AI与.NET技术实操系列(五):向量存储与相似性搜索在 .NET 中的实现
· 超详细:普通电脑也行Windows部署deepseek R1训练数据并当服务器共享给他人
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 上周热点回顾(3.3-3.9)
2016-10-10 他叫索隆