javascript - 页面上有 'use' 标签,但我找不到 'def' 标签

标签 javascript html css svg

我在这个 website 上看到了那些 html 代码:

<a href="https://medium.com/" class="siteNav-logo" data-log-event="home">
    <svg viewBox="0 0 45 45" width="45" height="45" class="svgIcon svgIcon--logoNew svgIcon-size--45px">
        <use class="svgIcon-use svgIcon-use--part0" xlink:href="#svg-logoNew-45px-p0"></use>
        <use class="svgIcon-use svgIcon-use--part1" xlink:href="#svg-logoNew-45px-p1"></use>
        <use class="svgIcon-use svgIcon-use--part2" xlink:href="#svg-logoNew-45px-p2"></use>
        <use class="svgIcon-use svgIcon-use--part3" xlink:href="#svg-logoNew-45px-p3"></use>
    </svg>
    <svg viewBox="0 0 95 45" width="95" height="45" class="svgIcon svgIcon--logoWordmarkNew svgIcon-size--95x45px">
        <use class="svgIcon-use svgIcon-use--part0" xlink:href="#svg-logoWordmarkNew-95x45px-p0"></use>
    </svg><span class="u-textScreenReader">Homepage</span>
</a>

通常当你在 svg 中有一个 use 标签时,你需要使用 defs 标签来指定 使用 被引用。如下:

<svg>
  <defs>
    <g id="shape">
        <rect x="50" y="50" width="50" height="50" />
        <circle cx="50" cy="50" r="50" />
    </g>
  </defs>

  <use xlink:href="#shape" x="50" y="50" />
  <use xlink:href="#shape" x="200" y="50" />

</svg>

但是我在页面上找不到任何defs标签,那么浏览器在哪里找到这些外部svgs(#svg-logoNew-45px-p0, #svg-logoNew-45px-p1,等等)?

最佳答案

他们使用 <symbol>标记而不是 <defs> :

<div style="display: none;">
    <svg xmlns="http://www.w3.org/2000/svg">
        <symbol viewBox="-17 18 45 45" id="svg-logoNew-45px-p0">...</symbol>
    </svg>
</div>

关于javascript - 页面上有 'use' 标签,但我找不到 'def' 标签,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36111379/

相关文章:

python - 需要使用 beautifulsoup 提取所有字体大小和文本

html - 简单的CSS高度

css - 我无法让 div 扩展到其父 div 的底部

javascript - 如何更改javascript变量的文本颜色

javascript - 提高 IE 11 地理定位的准确性

javascript - 如何获取JQuery中鼠标事件触发的函数返回的值

javascript - 如何在 Chrome 中请求publish_stream权限

html - 我应该使用 Bootstrap 吗?

用于切换类问题的 Javascript 按钮

javascript - 如何将 ng-if 与异步函数一起使用?