网页制作 
首页 > 网页制作 > 浏览文章

CSS中引用svg图片支持动态切换颜色的实现代码

(编辑:jimmy 日期: 2024/11/28 浏览:3 次 )

当我们添加一张svg图片显示时,react提示找不到文件。

我们可以在全局文件global.d.ts内,添加图片类型的声明:

详见《TypeScript 引用资源文件后提示找不到的错误处理方案》

声明之后,引用不报错了。然后我们看看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图片支持动态切换颜色的实现代码

上一篇:css高度随宽度比例变化的几种实现方法
下一篇:CSS使用calc()获取当前可视屏幕高度的实现
一句话新闻
高通与谷歌联手!首款骁龙PC优化Chrome浏览器发布
高通和谷歌日前宣布,推出首次面向搭载骁龙的Windows PC的优化版Chrome浏览器。
在对骁龙X Elite参考设计的初步测试中,全新的Chrome浏览器在Speedometer 2.1基准测试中实现了显著的性能提升。
预计在2024年年中之前,搭载骁龙X Elite计算平台的PC将面世。该浏览器的提前问世,有助于骁龙PC问世就获得满血表现。
谷歌高级副总裁Hiroshi Lockheimer表示,此次与高通的合作将有助于确保Chrome用户在当前ARM兼容的PC上获得最佳的浏览体验。
友情链接:杰晶网络 DDR爱好者之家 南强小屋 黑松山资源网 白云城资源网 网站地图 SiteMap