使用“use”时,剪辑路径无法在 SVG 精灵中正确显示

2023-12-02

我正在尝试将一组图标拼凑成一个精灵表。我对 SVG 几乎一无所知。我可以使用简单的图标,但带有剪辑路径的图标无法正确显示。据我所知,它似乎没有使用剪辑路径。

精灵在 jsfilddle 中工作,如果我只加载它自己的 svg 并在 SVG 中包含 语句,它就可以工作。但如果我有一个单独的,它就不起作用。

我所有的测试都是在 Chrome (50.0.2661.94) 中完成的

<svg xmlns:xlink="http://www.w3.org/1999/xlink" xmlns="http://www.w3.org/2000/svg" version="1.1">
  <defs>
    <clipPath id="folder-clip-0">
      <path d="..." />
    </clipPath>

    <symbol id="folder" viewBox="0 0 32 32">
      <g class="container" data-width="32" data-height="27" transform="translate(0 2)">
        <path d="..." class="..." />
        <path class="..." d="..." />
        <path clip-path="url(#folder-clip-0)" d="..." class="..." />
      </g>
    </symbol>
  </defs>
</svg>

我这样使用它:

<svg>
  <use
    xmlns:xlink="http://www.w3.org/1999/xlink"
    xlink:href="/img/path/sprite.svg#folder">
  </use>
</svg>

当我使用单独的语句时,它看起来像这样:

Bad folder

但它应该看起来像这样:

Good folder

色差无关紧要,只是拍摄图像时的背景。

Edit:

我刚刚发现,如果我将整个精灵表转储到 HTML 页面中并在本地引用它而不是外部文件,它就可以工作。所以我不知道我的外部参考有什么问题。

e.g.

<svg>
  <use xlinkHref={"/img/path/not/work/sprite.svg#folder"}></use>
</svg>

vs.

<svg>
  <symbol id="folder"></symbol>
</svg>
<svg>
  <use xlinkHref={"#folder"}></use>
</svg>

这对我来说是一种后备方案,但我宁愿有一个外部 SVG 文件,而不是将其嵌入到我的 HTML 中。

Edit 2:

如果直接使用外部链接将 SVG 精灵表嵌入到 HTML 中,则会正确显示图标。


这似乎是浏览器支持问题。在 Firefox 中使用外部引用可以正常工作。 Chrome 不处理外部引用中的剪辑路径和其他一些功能。已提交一份未完成的错误报告。 Safari 也不支持它。

相关 StackOverflow 票证:为什么我无法引用外部文件(绘画服务器)中定义的 SVG 线性渐变?

打开的错误:https://code.google.com/p/chromium/issues/detail?id=109212 https://bugs.webkit.org/show_bug.cgi?id=105904

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

使用“use”时,剪辑路径无法在 SVG 精灵中正确显示 的相关文章

随机推荐

  • 如何使用 openpyxl 3.03 找到 excel 的最后一个非空行?

    如何使用 python 和 openpyxl 找到整个 xlsx 工作表的最后一个非空行的编号 该文件可以有之间有空行最后的单元格和空行可能有已删除的内容 此外 我不想给出特定的列 而是检查整个表 例如 图中最后一个非空行是第 13 行 我
  • 需要基于网络的 AR 解决方案进行平面检测[关闭]

    Closed 此问题正在寻求书籍 工具 软件库等的推荐 不满足堆栈溢出指南 目前不接受答案 我正在寻找基于网络的 AR 解决方案 使用无标记检测 即使用平面检测或物体检测 尝试使用 a frame 框架和 Three js 但它们只是基于标
  • 采用 ISO8601 日期格式的两个日期之间的天数

    我想做同样的事情如何在 JavaScript 中获取两个日期之间的天数 但我想对这个日期格式做同样的事情 2000 12 31 function daysBetween date1String date2String var d1 new
  • 如何过滤多索引数据帧上的日期

    我正在寻找一种方法来过滤多索引数据框 如下所示按星期几和 或选定的日期 假设我需要 查询select only mondays 我想要的另一个查询select all days except monday and friday 第三个查询用
  • Javascript正则表达式返回true..然后false..然后true..等等[重复]

    这个问题在这里已经有答案了 我在表单上编写的验证有一个奇怪的问题 它是输入旁边的 检查用户名 按钮 输入默认值是用户名 例如 betamax 当我按 检查用户名 时 它会传递正则表达式并将用户名发送到服务器 服务器按预期运行并返回 2 以告
  • 公司如何邀请我参加 TestFlight?

    与编程略有相关 但我似乎无法弄清楚 我有一个 Apple 开发者帐户和一个 iTunes Connect 帐户 当公司邀请我时 我得到的只是 XY Ltd 邀请您加入 iTunes Connect 如果我通过链接登录没有任何反应 我将获得自
  • 如何在 iPhone 项目中使用 DCMTK

    我已经成功使用CCmake编译dcmtk3 6并在ios环境中构建它 但我不知道如何将这些编译文件包含在新的ios项目中 编译到新的 iphone 项目后我已经移动了 dcmtk 并使用 include dcm2xml h 但路径有错误 尝
  • 如何使用自动字段反序列化在 Rust Rocket 中返回 JSON 作为响应?

    我正在尝试使用 Rust 创建打印服务器 并在尝试发送 JSON 作为响应时遇到问题 我在 Rocket 文档中发现发送 JSON 作为响应非常容易 您只需使用 Serde 库即可 不幸的是 这对我来说并不是那么简单 这是我当前的代码 de
  • 升级到 OS X Mavericks 后 OpenCV 架构 x86_64 未定义符号

    我有一个运行良好的 opencv 项目 今天 我已将 OS X lion 升级到 Maverick 但 imwrite 函数出现以下错误 Undefined symbols for architecture x86 64 cv imwrit
  • 用R代码确定斜率[关闭]

    Closed 这个问题不符合堆栈溢出指南 目前不接受答案 我有许多熔化曲线 我想使用 R 代码确定最小值 谷 和最大值 峰 之间最陡部分的斜率 拐点中的斜率对应于熔点 我能想到的解决方案要么是确定每个点的斜率 然后找到最大正值 要么通过使用
  • 值对象如何存储在数据库中?

    我还没有真正看到任何示例 但我假设它们保存在数据库内的包含实体表中 IE 如果我有一个 Person 实体 聚合根和一个相应的 Person 表 如果它有一个名为 Address 的值对象 则地址值将保存在该 Person 表中 对于我拥有
  • 使用 JQuery UI 对话框时提交操作被击中两次

    我正在使用 JQuery 和 bootstrap 编写 ASP NET MVC 4 应用程序 我的网站中有一个模式对话框功能 该功能过去一直运行顺利 直到最近另一位开发人员在网站中进行了一些与样式相关的更改 以下是我在部分视图之一中编写的代
  • jQuery 和边距:0 自动

    所以 这是一个以前被问过的问题 但我希望我们可以解决这个问题 我正在使用 jQuery 1 4 如果我定义样式 obj margin 0 auto 然后做 obj css marginLeft 结果是以像素为单位的计算值 有什么方法可以判断
  • 将列名传递给函数

    我怎样才能把这个ggplot 调用一个函数 我不知道如何让 R 识别我想要传递给函数的列名称 我遇到过几个听起来类似的问题 但我没有成功地调整想法 看here for substitute setup library dplyr libra
  • PHP中类似smarty的字符串的参数和值的解析

    我正在尝试创建类似 smarty 的解析器 对于非常小的代码部分 并且不想实现巨大的类似 smarty 的解析器 我想出的是 a zA Z0 9 v a zA Z0 9 On https regex101 com r l5FI5f 2 看起
  • 使用 spring-data-redis 更新 redis 中的实体

    我目前正在将 Redis 3 2 100 与 Spring data redis 1 8 9 和 Jedis 连接器一起使用 当我对现有实体使用 save 函数时 Redis 会删除我的实体并重新创建该实体 就我而言 我需要保留这个现有实体
  • 在 MS Edge 中,在输入类型=“数字”中输入文本后,占位符文本不会消失

    要查看该问题 请尝试以下代码片段 div span A number input span div
  • 如何自动创建目录中每个类的实例?

    如何在 ruby 中创建目录中每个文件中每个类的实例 将其作为数组提供 先感谢您 您可以使用ObjectSpace找到新的类然后实例化它们 def load and instantiate class files Find all the
  • Python Flask 故意空响应

    有没有办法返回响应 来自make response 对象或类似的对象 具有某些属性 这样它就不会再次渲染页面 也不会执行任何其他操作 我试图在服务器上运行代码而不生成任何输出 一个简单的 return None 会产生 ValueError
  • 使用“use”时,剪辑路径无法在 SVG 精灵中正确显示

    我正在尝试将一组图标拼凑成一个精灵表 我对 SVG 几乎一无所知 我可以使用简单的图标 但带有剪辑路径的图标无法正确显示 据我所知 它似乎没有使用剪辑路径 精灵在 jsfilddle 中工作 如果我只加载它自己的 svg 并在 SVG 中包