javascript - 使用 Sass 在 React 中设置 svg 样式

标签 javascript css reactjs svg sass

我之前的 2 个元素都是用 React 完成的,并且使用 Sass 文件来设计组件的样式。但在这个元素中,它变得有点困惑,因为我必须为我的图像使用 SVG。现在我一直在使用 Sass 文件设计 SVG 样式。

这是 codesandbox仅包括我想更改 logoBookmark svg 颜色的 navbar 组件。

我不想粘贴整个 xml 内容。所以我直接导入 SVG

从“../../images/logo-bookmark.svg”导入 logoBookmark,

并为 img 标签设置 src={logoBookmark}

要设置外部 SVG 的样式,我发现这个很简单 solution堆栈溢出。

但我不知道如何在 React 中实现这一点,我有一个 Sass 文件,该文件进一步导入到 JSX 文件中。

那么有人可以分享这个问题的最佳解决方案吗?

最佳答案

您需要将 SVG 作为组件导入,这样它就会挂载为 <svg/>而不是 <img/> . See adding SVG in CRA .

然后您只需要定位 circlesvg使用 CSS:

.logo {
    circle {
        fill: red;
    }
}

import { ReactComponent as Logo } from "../../images/logo-bookmark.svg";

export default function NavBar() {
  return (
    <nav className="navbar">
      <div className="brand">
        <a href="/">
          <Logo className="logo" />
        </a>
      </div>
    </nav>
  );
}

Edit project1

关于javascript - 使用 Sass 在 React 中设置 svg 样式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62911013/

相关文章:

javascript - 用户输入时进行单词替换 (JS)

javascript - 在react中收到消息后,Websocket立即未定义

reactjs - 为什么 React Hooks Axios API 调用返回两次?

reactjs - 使用 React 和 Bootstrap 的响应式导航菜单 - 汉堡包不起作用

css - 使用css调整下划线和文本之间的距离

css - 激活悬停在 2 个元素上以同时更改

javascript - 键值对的正则表达式

javascript - Globalize.js - cldr.once 不是函数

JavaScript 在 'onmouseover' 事件中更改 HTML CSS 属性

即使当前时间是标准时间,Javascript 日期构造函数也默认为夏令时