Puis-je avoir Plusieurs images SVG dans un seul fichier?

Au lieu de faire ce qui suit:

<html>
<body>
  <embed src="circle.svg" type="image/svg+xml" /> 
  <embed src="square.svg" type="image/svg+xml" /> 
  <embed src="triangle.svg" type="image/svg+xml" />  
</body>
</html>

Je prever faire quelque chose comme ceci

<html>
<body>
<embed src="shapes.svg" type="image/svg+xml" id="circle" /> 
<embed src="shapes.svg" type="image/svg+xml" id="square" /> 
<embed src="shapes.svg" type="image/svg+xml" id="triangle" />  
</body>
</html>

avec un fichier svg qui peut ressembler à quelque chose comme ceci

<?xml version="1.0" standalone="no"?>
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN"
"http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
<svg xmlns="http://www.w3.org/2000/svg" version="1.1" >

  <svg id="circle">
    <circle cx="100" cy="50" r="40" stroke="black"
    stroke-width="2" fill="red" />
  </svg> 

  <svg id="square">
    <rect width="100" height="100" style="fill:rgb(0,0,255);stroke-width:1;stroke:rgb(0,0,0)" />
  </svg>

  <svg id="triangle">
    <line x1="50" y1="0" x2="0" y2="50" style="stroke:rgb(255,0,0);stroke-width:2" />
    <line x1="50" y1="0" x2="100" y2="50" style="stroke:rgb(255,0,0);stroke-width:2" />
    <line x1="0" y1="50" x2="100" y2="50" style="stroke:rgb(255,0,0);stroke-width:2" />
  </svg>
</svg>

Il semble comme un SVG est juste du XML je devrais être capable de stocker l'ensemble de mes images dans un seul fichier qu'ils telecharges une seule fois et est utilisé sur tout le site.

  • Si votre intention est de n'avoir que "triangle" visible lorsque vous l'appelez comme <embed src="shapes.svg#triangle" type="image/svg+xml" />, vous aurez à attendre pour les navigateurs à rattraper parce que le support n'est pas encore là: simurai.com/post/20251013889/svg-stacks. Vous pouvez, cependant, le traiter comme n'importe quel spritemap.
  • Double de stackoverflow.com/questions/14562136/...?