一种想法是使 spritesheet 内联,提供所有不同的 sprite ID 并使用 引用它们<svg:use>,如下所示:
<html>
<head>
<title></title>
<style type="text/css">
#firstUseOfSprite1:hover{
color:green;
}
#secondUseOfSprite1:hover{
color:blue;
}
#sprite1{
fill:currentColor;
stroke:red;
stroke-width:5px;
}
#defs{
display:none;
}</style>
</head>
<body>
<!-- This is our "spritesheet" -->
<svg id="defs">
<defs>
<rect width="50" height="20" id="sprite1"/>
<circle r="20" id="sprite2"/>
</defs>
</svg>
<p>Here we use the "sprite":</p>
<div>
<svg width="55" height="25">
<use xlink:href="#sprite1" id="firstUseOfSprite1" x="2.5" y="2.5"></use>
</svg>
</div>
<p>And here, we use it again:</p>
<div>
<svg width="55" height="25">
<use xlink:href="#sprite1" id="secondUseOfSprite1" x="2.5" y="2.5"></use>
</svg>
</div>
</body>
</html>
您甚至可以为同一个精灵的不同用途应用不同的悬停效果。它似乎适用于 Firefox 和 Chrome,但悬停效果不适用于我的 Opera。我没有尝试IE9。