css - 为什么我的 SVG 调用不起作用?

标签 css svg

我正在研究 SVG 文件(开始),但是当我设置 <defs> 时我无法使我的 SVG 出现标签!

我的意思是..如果我直接调用 SVG,它会正常工作。

像这样:

<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px"
     width="163.514px" height="263.514px" viewBox="0 0 163.514 263.514" enable-background="new 0 0 163.514 263.514"
     xml:space="preserve">
<g>
    <rect class="bosta1" y="55.406" fill="#E8CF1E" stroke="#000000" stroke-miterlimit="10" width="163.514" height="137.838"/>
    <rect class="bosta2" x="62.162" fill="#E42326" stroke="#000000" stroke-miterlimit="10" width="44.811" height="263.514"/>
</g>
</svg>

fiddle :https://jsfiddle.net/sz0bkbdm/

但是,如果我尝试使用 refs,我将无法使矩形可见。

像这样:

<svg version="1.1" id="mySvg" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px"
     width="163.514px" height="263.514px" viewBox="0 0 163.514 263.514" enable-background="new 0 0 163.514 263.514"
     xml:space="preserve">

<defs>
<g>

    <rect class="ret1" y="55.406" stroke-miterlimit="10" width="163.514" height="137.838"/>
    <rect class="ret2" x="62.162" stroke-miterlimit="10" width="44.811" height="263.514"/>

</g>
</defs>
</svg>

MY CONTENT

<svg>
    <use xlink:href="#mySvg"></use>
</svg>

fiddle :https://jsfiddle.net/g1hdLy82/

最佳答案

你的问题在这里请按照这个代码

<svg version="1.1" id="mySvg" xmlns="http://www.w3.org/2000/svg">

<defs>
<g>

    <rect id="ret1" y="55.406" stroke-miterlimit="10" width="163.514" height="137.838"/>
    <rect id="ret2" x="62.162" stroke-miterlimit="10" width="44.811" height="263.514"/>

</g>
</defs>
</svg>

MY CONTENT

<svg >
    <use xlink:href="#ret1"></use>
    <use xlink:href="#ret2"></use>
</svg>

<svg version="1.1" id="mySvg" xmlns="http://www.w3.org/2000/svg">

<defs>
<g id="rec1">

    <rect id="ret1" y="55.406" stroke-miterlimit="10" width="163.514" height="137.838"/>
    <rect id="ret2" x="62.162" stroke-miterlimit="10" width="44.811" height="263.514"/>

</g>
</defs>
</svg>

MY CONTENT

<svg >
    <use xlink:href="#rec1"></use>
</svg>

关于css - 为什么我的 SVG 调用不起作用?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39178026/

相关文章:

css - 似乎无法让提交/按钮/ anchor 排队

html - 使用对象时如何更改鼠标悬停时的 SVG 描边颜色

javascript - 使用JavaScript复制CSS或SMIL动画

javascript - 如何缩放 SVG 绘图

"SVG Tiny 1.2"在当今的移动和桌面浏览器中有何性能优势?

reactjs - 如何为 SVG 圆圈内的图像添加边框

图形的 html 映射不会随着 Bootstrap 中的图像而改变

angularjs - 为什么 P 标签不占据行的整个高度?

html - Circle Loader 将达到 100%

javascript - D3轴标签旋转过渡不平滑