您好,登录后才能下订单哦!
这篇文章将为大家详细讲解有关CSS中如何引用svg图片支持动态切换颜色,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。
当我们添加一张svg图片显示时,react提示找不到文件。
我们可以在全局文件global.d.ts内,添加图片类型的声明:
声明之后,引用不报错了。然后我们看看svg图片,里面有颜色及其它设置:
<?xml version="1.0" encoding="UTF-8"?> <svg width="24px" height="24px" viewBox="0 0 24 24" 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"> <g id="窗口_返回"> <rect id="Rectangle-6" fill="#D8D8D8" opacity="0" x="0" y="0" width="24" height="24"></rect> <path d="M8.35417135,12.9957726 C8.13320936,12.7345458 8,12.3967967 8,12.0279541 C8,11.6586058 8.13357489,11.3204363 8.3550807,11.0590615 L8.3521103,11.0564202 L14.356041,4.51971371 L14.3599873,4.52318728 C14.635253,4.20288524 15.0434555,4 15.4990737,4 C16.3280124,4 17,4.67157288 17,5.5 C17,5.8870199 16.8533375,6.23980607 16.6125263,6.50587693 L16.6210783,6.51340439 L11.5390798,12.0228281 L16.5124905,17.3935277 C16.8121157,17.6677653 17,18.0619548 17,18.5 C17,19.3284271 16.3280124,20 15.4990737,20 C15.0262153,20 14.6044287,19.7814702 14.3293154,19.439953 L8.35278214,12.9970098 L8.35417135,12.9957726 L8.35417135,12.9957726 Z" id="Oval-43-Copy-3" fill="#808080"></path> </g> </g> </svg>
是否可以根据一张svg,显示不同的效果?比如hover后高亮
理论上添加xml代码解析,然后将svg以组件形式添加渲染,是可行的。
在网上逛了一圈,发现大多数都比较水,很多是通过加载全局的图片,作为单独组件或者缓存来使用,不适用
react-inlinesvg
发现了一个比较不错的开源,超级不错,安利!
https://github.com/gilbarbara/react-inlinesvg
安装:npm i react-inlinesvg
或者 yarn addreact-inlinesvg
添加引用:import SVG from 'react-inlinesvg';
添加图片:
import BackPng from '../../../../assets/images/back.svg'; <SVG className="backIcon" src={BackPng} />
设置动态样式:
&:hover { path { fill: #4ecb78; } .backContent { color: #4ecb78; } } &:active { path { fill: #2baf57; } .backContent { color: #2baf57; } }
关于“CSS中如何引用svg图片支持动态切换颜色”这篇文章就分享到这里了,希望以上内容可以对大家有一定的帮助,使各位可以学到更多知识,如果觉得文章不错,请把它分享出去让更多的人看到。
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。