首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >SvgIcon继承viewBox

SvgIcon继承viewBox
EN

Stack Overflow用户
提问于 2020-10-27 17:22:56
回答 1查看 460关注 0票数 0

我有不同的定制SVG。每个SVG都有自己的viewBox。

第一Svg

代码语言:javascript
复制
<svg viewBox="-4 -4 24 24"><path something/></svg>

第二次Svg

代码语言:javascript
复制
<svg viewBox="-5 -7 24 24"><path something/></svg>

第三代Svg

代码语言:javascript
复制
<svg viewBox="-2 -1 24 24"><path something/></svg>

等等..。

我正在使用Material组件:SvgIcon

代码语言:javascript
复制
<SvgIcon
  component={component} // This is my custom SVG
/>

SvgIcon有一个默认的'0 0 24 24'视图,它是每个SVG的“设置”。我希望它从component继承。

我知道我可以定义一个属性,例如:

代码语言:javascript
复制
<SvgIcon
  component={component}
  viewBox="my values" // Example "0 0 20 20"
/>

但是viewBox因不同的SVGs而异。

EN

回答 1

Stack Overflow用户

发布于 2022-06-21 08:29:14

我发现的一个解决方案是从原始svg文件向MUI的viewBox组件提供相同的匹配SvgIcon。否则,MUI的SvgIcon将使用它们的默认0 0 24 24 (定义这里),这可能与您的svg中的这里不匹配。

示例:

最初的svg可能如下所示,定义了它自己的viewBox:

代码语言:javascript
复制
<svg width="12" height="12" viewBox="0 0 12 12">
    <path d="..."/>
</svg>

在MUI的SvgIcon中使用您的自定义svg文件

代码语言:javascript
复制
import MyCustomIcon from '../assets/MyCustomIcon.svg';

// ...

<SvgIcon
  component={MyCustomIcon}
  viewBox="0 0 12 12"
/>

您可以看到,在viewBox中使用的SvgIcon与原始svg文件中的那个匹配。

我希望这能帮到你。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/64559729

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档