2017-05-28 26 views
3

我想確保我遵循標準。
是否允許在一個SVG文檔中有多個defs?在SVG文檔中是否允許多個defs?

並且嵌套svgs允許defs?

<svg> 
<defs></defs> 
<svg> 
    <defs></defs> 
</svg> 
</svg> 

我不可能找到與此相關的

回答

2

是的,它是允許的, 他們有不同的命名空間的規格東西:

<!doctype html> 
 
    <html lang="en"> 
 
    <head> 
 
    <meta charset="UTF-8"> 
 
    <title>Document</title> 
 
    </head> 
 
    <body> 
 
    <svg width="800px" height="300px" 
 
      xmlns="http://www.w3.org/2000/svg"> 
 

 
     <defs> 
 
      <linearGradient id="Gradient01"> 
 
      <stop offset="20%" stop-color="#39F" /> 
 
      <stop offset="90%" stop-color="#F3F" /> 
 
      </linearGradient> 
 
     </defs> 
 

 
     <rect x="10" y="10" width="60" height="10" 
 
       fill="url(#Gradient01)" /> 
 
     <svg width="380px" height="330px"  
 
      xmlns="http://www.w3.org/2000/svg"> 
 

 
     <defs> 
 
      <linearGradient id="Gradient01"> 
 
      <stop offset="50%" stop-color="#39F" /> 
 
      <stop offset="90%" stop-color="#F3F" /> 
 
      </linearGradient> 
 
     </defs> 
 

 
     <rect x="250" y="250" width="160" height="110" 
 
       fill="url(#Gradient01)" /> 
 
     </svg> 
 
     </svg> 
 
    </body> 
 
    </html>

+0

關於它的主要答案被允許是正確的。但關於「不同名稱空間」的其他內容完全錯誤。文檔中的'id'屬性必須是唯一的。有兩個defs部分不會改變這一點。如果你有重複的'id'屬性,你會得到未定義的(和瀏覽器相關的)結果。爲了證明,請嘗試在Chrome中查看此示例,然後在Firefox中查看。 –

+0

是的,這個ID必須改變.. –

相關問題