2009-01-28 57 views
5

只需播放defs並首次使用。我想要做的是使用defs來構建一個基本模板,然後當我使用它時,通過添加更多的內部標籤來定製它。將新節點添加到SVG <use>標記

這是可能的,因爲當我嘗試在Firefox中執行它時,它不呈現任何標籤,我將其作爲子標籤放置到使用標籤中。例如:

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

回答

5

它不是直接可能的使用。 use element可以包含說明和動畫元素,但它的行爲不像XBL容器。

如果你的目標是Firefox,你可以使用XBL。

爲了保持內SVG,做一團,並使用背景:

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