html - 无法在 svg 中的 <defs> 内使用 <use>

标签 html svg

我正在尝试复制一个模式,但我希望复制的元素位于 <defs> 之外。为什么不起作用?

  <svg width="750" height="750">
    <defs>
      <pattern id="pat" x="0" y="0" width="250" height="250">
        <use href="foo" x="0" y="0"></use>
      </pattern>
    </defs>
    <rect fill="url(#pat)" width="1000" height="500"></rect>
    <rect id="#foo" fill="red" width="15" height="15"></rect>
  </svg>

最佳答案

您可以使用patternUnits="userSpaceOnUse"

<svg width="750" height="750">
    <defs>
      <pattern id="pat" x="0" y="0" width="250" height="250" patternUnits="userSpaceOnUse">
        <use xlink:href="#foo" x="0" y="0"></use>
      </pattern>
    </defs>
    <rect fill="url(#pat)" width="1000" height="500"></rect>
    <rect id="foo" fill="red" width="15" height="15"></rect>
  </svg>

关于html - 无法在 svg 中的 <defs> 内使用 <use>,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57559245/

相关文章:

git - 有人知道 ~BROMIUM 目录是什么吗?它与 svg 文件有关

javascript - d3 旋转轮带固定夹

javascript - SVG 元素在变换后丢失事件监听器

html - 将此设计转化为代码的最佳方法是什么?

html - 使用@page 在 html/css 中创建 header

javascript - 内存高效的js图像管理

html - 为什么我的小型字体变体 CSS 类被忽略了?

javascript - 在页面加载时使用 javascript 设置段落文本

javascript - 如何在响应式设计中防止文本超过 svg?

svg - 有没有办法为SVG ARC创建圆角?