目前看来这是不可能的。
幸运的是,由于PNG覆盖了SVG的整个空间,所以可以将它们从SVG中拉出,只留下xlinks,这实现了我想要的:
<style>
.svg-desktop-image {
background-image: url("/images/desktop.png");
background-size: contain;
}
.svg-mobile-image {
background-image: url("/images/mobile.png");
background-size: contain;
}
</style>
<!-- Desktop SVG -->
<div class="desktop">
<svg class="svg-desktop-image">
<g>
<a xlink:href="/link1">
<g>
<circle r="10" cy="84" cx="123" />
</g>
</a>
</g>
</svg>
</div>
<!-- Mobile SVG -->
<div class="mobile">
<svg class="svg-mobile-image">
<g>
<a xlink:href="/link1">
<g>
<circle r="10" cy="5" cx="10" />
</g>
</a>
</g>
</svg>
</div>
如果有人有其他建议,我会把这个问题留一段时间,如果没有,我会接受自己的答案。