<use>

<use> 元素從 SVG 文件中獲取節點,並在其他地方複製它們。其效果與將節點深度克隆到一個未公開的 DOM 中,然後貼上到 use 元素所在位置相同,就像克隆的 模板元素 一樣。

示例

以下示例展示瞭如何使用 use 元素繪製一個具有不同填充和描邊顏色的圓形。在最後一個圓形中,stroke="red" 將被忽略,因為描邊已在 myCircle 上設定。

html
<svg viewBox="0 0 30 10" xmlns="http://www.w3.org/2000/svg">
  <circle id="myCircle" cx="5" cy="5" r="4" stroke="blue" />
  <use href="#myCircle" x="10" fill="blue" />
  <use href="#myCircle" x="20" fill="white" stroke="red" />
</svg>

屬性

href

需要複製的元素/片段的 URL。有關常見陷阱的詳細資訊,請參閱 用法說明
值型別<URL>預設值:無;可動畫

xlink:href 已棄用

需要複製的元素/片段的 <IRI> 引用。如果同時存在 hrefxlink:href,則使用 href 提供的值。
值型別<IRI>預設值:無;可動畫

X 座標

應用於 <use> 元素的附加最終偏移變換的 x 座標。
值型別<coordinate>預設值0可動畫

Y 座標

應用於 <use> 元素的附加最終偏移變換的 y 座標。
值型別<coordinate>預設值0可動畫

寬度

use 元素的寬度。
值型別<length>預設值0可動畫

height

use 元素的高度。
值型別<length>預設值0可動畫

注意:widthheightuse 元素沒有影響,除非引用的元素具有 viewBox,即它們僅在 use 指向 svgsymbol 元素時才有效。

注意:從 SVG2 開始,xywidthheight幾何屬性,這意味著這些屬性也可以用作該元素的 CSS 屬性。

用法說明

如果相應的屬性已在 use 引用的元素上定義,則 use 上的大多數屬性將被忽略。(這與 CSS 樣式屬性如何覆蓋級聯中“更早”設定的屬性有所不同)。只有use 元素上的 xywidthheighthref 屬性將在後面描述,如果引用的元素已定義了相應的屬性,則可能產生一些影響。但是,任何其他未在引用的元素上設定的屬性應用於 use 元素。

由於克隆的節點未公開,因此在使用 CSSuse 元素及其克隆的後代進行樣式設定時,必須注意。除非您使用 CSS 繼承 顯式請求,否則 CSS 屬性不能保證會被克隆的 DOM 繼承。

出於安全原因,瀏覽器可能會對 use 元素應用 同源策略,並可能拒絕載入 href 屬性中的跨源 URL。目前沒有定義的方法來為 use 元素設定跨源策略。

警告:出於安全原因,在 href 屬性中使用資料 URI 載入資源已棄用。這適用於 <use href="data:... 以及使用 setsetAttribute 方法設定 href 時。請參閱 瀏覽器相容性 表格中的“從 data: URI 載入”以檢查不同瀏覽器版本中的支援情況。

警告:從 SVG 2 開始,xlink:href 屬性已棄用,取而代之的是 href。有關更多資訊,請參閱 xlink:href 頁面。

使用上下文

類別圖形元素、圖形引用元素、結構元素
允許的內容任意數量的以下元素,以任意順序
動畫元素
描述性元素

規範

規範
可縮放向量圖形 (SVG) 2
# UseElement

瀏覽器相容性

BCD 表格僅在啟用 JavaScript 的瀏覽器中載入。