2009-01-28 16 views
5

Po prostu odtwarzaj defs i używaj po raz pierwszy. Chciałbym użyć defs do zbudowania podstawowego szablonu, a kiedy go użyję, dostosuję go, dodając kilka wewnętrznych znaczników.Dodawanie nowych węzłów do znacznika SVG <use>

Jest to możliwe, ponieważ gdy próbuję to zrobić w Firefoksie, nie renderuje żadnych tagów, które umieszczam jako dzieci w tagu use. np .:

<?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> 

Odpowiedz

5

Nie jest to bezpośrednio możliwe przy użyciu. Model use element może zawierać elementy opisowe i animacyjne, ale nie zachowuje się tak jak kontener XBL.

Możesz użyć XBL, jeśli celujesz w firefox.

Aby pozostać w SVG, utworzyć grupę i użyć tła:

<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> 
Powiązane problemy