您想要实现的是使用另一个内联SVG而不是一个最简单的方法 <img> 要么 <object> 标签:
<img>
<object>
<svg style="width:200px;height:200px" viewBox="35 50 150 150"> <use xlink:href="myFile.svg#head" /> </svg>
你需要做的两件事是
viewBox
<use>
请看一下 这个svg文件 在视图源中。在根svg内部还有2个其他的svg元素。这两个svg元素各有一个id,并且样式表明nestedsvg元素只有在可见时才可见 :target 。
:target
svg > svg:not(:target) { display: none; }
<svg version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" width="100px" height="100px" viewBox="0 0 225 225"> <style type="text/css"> <![CDATA[ svg > svg:not(:target) { display: none; } ]]> </style> <desc> <g id="cat"> <path id="body" fill-rule="evenodd" clip-rule="evenodd" d="M121.506,..."/> <path id="head" fill-rule="evenodd" clip-rule="evenodd" d="M129.747,..."/> </g> </desc> <svg version="1.1" id="blackcat" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" viewBox="0 0 225 225"> <use xlink:href ="#cat" fill="black" /> </svg> <svg version="1.1" id="redcat" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" viewBox="0 0 225 225"> <use xlink:href ="#cat" fill="red" /> </svg> </svg>
以下是如何使用其中一个svg元素作为图像或对象:
<img src="https://s3-us-west-2.amazonaws.com/s.cdpn.io/222579/cat.svg#redcat" width="200" /> <object width="200" data="https://s3-us-west-2.amazonaws.com/s.cdpn.io/222579/cat.svg#blackcat"></object>