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

所属分类: 网页制作 / CSS 阅读数: 1589
收藏 0 赞 0 分享

当我们添加一张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 svg动态切换颜色内容请搜索脚本之家以前的文章或继续浏览下面的相关文章,希望大家以后多多支持脚本之家!

更多精彩内容其他人还在看

动态的样式语言less语法详解之变量与extend

本质上,LESS 包含一套自定义的语法及一个解析器,用户根据这些语法定义自己的样式规则,这些规则最终会通过解析器,编译生成对应的 CSS 文件。LESS 并没有裁剪 CSS 原有的特性,更不是用来取代 CSS 的,而是在现有 CSS 语法的基础上,为 CSS 加入程序式语言的特性
收藏 0 赞 0 分享

动态的样式语言less语法详解之混合属性

这篇文章主要介绍了动态的样式语言less语法详解之混合属性,需要的朋友可以参考下
收藏 0 赞 0 分享

浏览器端如何使用Less

这篇文章主要介绍了浏览器端如何使用Less,需要的朋友可以参考下
收藏 0 赞 0 分享

CSS3动画效果回调处理详解

这篇文章主要详细介绍了CSS3动画效果回调处理,需要的朋友可以参考下
收藏 0 赞 0 分享

纯css3实现的竖形无限级导航

本文给大家介绍了一款非常漂亮的纯CSS3打造的竖形无限级导航特效,小伙伴们需要的话直接拿走使用吧
收藏 0 赞 0 分享

一款纯css3实现的tab选项卡的实列教程

css3怎么做tab选项卡?下面费大家分享一款纯css3实现的tab选项卡的实列教程,单击左侧的选项的时候,右侧内容以动画的形式展示。下文有具体代码,想学的朋友可以进来参考一下
收藏 0 赞 0 分享

一款利用纯css3实现的win8加载动画的实例分析

之前已经和大家分享了很多css3动画的实例教程,今天给大家分享一款纯css3实现的win8加载动画。在这款实例中动画效果完全由css3实现,需要的朋友可以参考下
收藏 0 赞 0 分享

一款纯css3实现的竖形二级导航的实例教程

这篇文章主要为大家介绍了一款纯css3实现的竖形二级导航的实例教程,这款导航菜单特色是可以是无限级。下面有代码,不会的朋友可以过来借鉴学习哦
收藏 0 赞 0 分享

padding ie 不兼容问题

这篇文章主要介绍了padding ie 不兼容问题,需要的朋友可以参考下
收藏 0 赞 0 分享

CSS3简单实现照片墙

本文给大家推荐的是使用CSS3简单实现照片墙效果的代码,非常简单,也很实用,需要的朋友可以参考下
收藏 0 赞 0 分享
查看更多