2009-01-28 11 views
5

Solo jugando las definiciones y uso por primera vez. Lo que me gustaría hacer es usar defs para construir una plantilla base y luego, cuando la use, personalizarla agregando algunas etiquetas más internas.Adición de nuevos nodos a una etiqueta SVG <use>

Esto es posible, ya que cuando trato de hacerlo en Firefox no representa las etiquetas que coloco como elementos secundarios en la etiqueta de uso. por ejemplo:

<?xml version="1.0" standalone="no"?> 
<svg width="10000px" height="5500px" version="1.1" 
    baseProfile="full" 
    xmlns="http://www.w3.org/2000/svg" 
    xmlns:xlink="http://www.w3.org/1999/xlink"> 

    <defs> 
     <g id="storyCard"> 
      <rect width="800px" height="500px" fill="#ffff00" /> 
      <path d="M 20 120 L 780 120 M 640 20 L 640 120" stroke-width="6px" stroke="black" fill="none" /> 
     </g> 
    </defs> 

    <!-- White Board --> 
    <path d="M 0 0 L 10000 0 L 10000 550 L 0 5500 z M 2000 0 L 2000 5500" stroke-width="20px" stroke="black" fill="none" /> 
    <use xlink:href="#storyCard" transform="translate(100,100)" /> 
    <use xlink:href="#storyCard" transform="translate(1000,200)" > 
      <text x="20" y="80" font-size="45" font-weight="bold" font-family="Comic Sans MS, cursive"> 
       My Dummy Story 
      </text> 
    </use> 
</svg> 

Respuesta

5

No es directamente posible con el uso. El use element puede contener elementos de descripción y animación, pero no se comporta como un contenedor XBL.

Puede usar XBL, si tiene como objetivo a firefox.

para permanecer dentro de SVG, crea un grupo y utilizar el fondo:

<g transform="translate(1000,200)" > 
     <use xlink:href="#storyCard"/> 
     <text x="20" y="80" font-size="45" font-weight="bold" font-family="Comic Sans MS, cursive"> 
      My Dummy Story 
     </text> 
    </g> 
Cuestiones relacionadas