如果未找到 ID,如何默认 SVG 精灵

Posted

技术标签:

【中文标题】如果未找到 ID,如何默认 SVG 精灵【英文标题】:How to default a SVG sprite if an ID was not found 【发布时间】:2019-07-08 22:55:59 【问题描述】:

我的数据库中有一个 SVG 精灵和一个图标/徽标列表。

我遍历所有这些并使用模板引擎生成我的图标,例如:

<div class="partsvg__container">
  <svg class="partsvg__wt-icon partsvg__wt-icon--icon">
    <use xlink:href="svg/icons.svg#wt-icon-icon"></use>
  </svg>
</div>

我可能没有为数据库中的每个项目创建一个 SVG,在这种情况下,模板会呈现一个空白区域。

如果(例如)svg/icons.svg#wt-icon-*** 不存在,我该怎么做才能仍然显示默认值(即:svg/icons.svg#wt-icon-default)?

【问题讨论】:

为什么不只是有一个默认图标 (wt-icon-default),并将 icon 属性设置为 "default" 对于您没有图标的任何记录? 我知道,但是数据库客户端和设计团队设法实现了多少 svg 之间没有联系。 【参考方案1】:

我找到了解决办法! 您可以在 svg 中为“未找到的情况”插入一个符号。这样,如果找不到符号,则会在背景中绘制一个占位符。

<div class="partsvg__container">
  <svg class="partsvg__wt-icon partsvg__wt-icon--icon">
    <use xlink:href="svg/icons.svg#wt-icon-'Placeholder'"></use>
    <use xlink:href="svg/icons.svg#wt-icon-icon"></use>
  </svg>
</div>

【讨论】:

但是如果找到图标,那么两者都会出现。 @GRboss 是的,但是找到的图标会和“占位符”图标重叠,所以你只会看到一个图标

以上是关于如果未找到 ID,如何默认 SVG 精灵的主要内容,如果未能解决你的问题,请参考以下文章

React 和 SVG 精灵

用按键精灵如何自动选择网页中combox中选项

如何连接相对路径或生成嵌套文件夹中包含的唯一标识符 svg?

按键精灵 如何找图

代码签名错误如何修复未找到团队 ID [重复]

如何从弹簧控制器返回未找到状态