乐闻世界logo
搜索文章和话题

How do I add color to my svg image in react

4 个月前提问
3 个月前修改
浏览次数39

1个答案

1

在 ReactJS 中,修改 SVG 图像的颜色可以通过几种不同的方法实现。以下是几种主要的方法:

1. 直接在 SVG 代码中使用 CSS

如果你直接在React组件中使用SVG的XML代码,可以通过设置fill属性来控制SVG的颜色。例如:

jsx
function MySvgComponent() { return ( <svg width="100" height="100"> <circle cx="50" cy="50" r="40" stroke="black" strokeWidth="3" fill="red" /> </svg> ); }

在这个例子中,圆形的填充颜色被设置为红色。你可以通过修改fill属性的值来改变颜色。

2. 使用 CSS

如果SVG作为一个文件被引入,你可以在CSS文件中通过类名或者id来定位SVG元素,然后改变其颜色:

css
.my-svg { fill: blue; }
jsx
import React from 'react'; import { ReactComponent as MySvg } from './my-svg.svg'; function App() { return <MySvg className="my-svg" />; }

在这个例子中,SVG文件通过React的ReactComponent引入,并且用my-svg类来控制颜色。

3. 利用CSS变量动态改变颜色

你可以在SVG中使用CSS变量,然后在React组件中动态改变这些变量的值。

css
.my-svg { fill: var(--my-svg-color, black); }
jsx
import React from 'react'; import { ReactComponent as MySvg } from './my-svg.svg'; function App() { return <MySvg style={{ '--my-svg-color': 'green' }} />; }

在这个例子中,CSS变量--my-svg-color用来控制SVG的填充色,然后在React组件的style属性中动态设置这个变量。

通过以上方法,你可以在ReactJS中灵活地修改SVG的颜色。这些方法可以根据你的具体需求和项目情况选择使用。

2024年6月29日 12:07 回复

你的答案