<use>
<use> 元素從 SVG 文件中獲取節點,並在其他地方複製它們。其效果與將節點深度克隆到一個未公開的 DOM 中,然後貼上到 use 元素所在位置相同,就像克隆的 模板元素 一樣。
示例
以下示例展示瞭如何使用 use 元素繪製一個具有不同填充和描邊顏色的圓形。在最後一個圓形中,stroke="red" 將被忽略,因為描邊已在 myCircle 上設定。
<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>
屬性
hrefxlink:href已棄用-
需要複製的元素/片段的
<IRI>引用。如果同時存在href和xlink:href,則使用href提供的值。
值型別:<IRI>;預設值:無;可動畫:是 X 座標-
應用於
<use>元素的附加最終偏移變換的 x 座標。
值型別:<coordinate>;預設值:0;可動畫:是 Y 座標-
應用於
<use>元素的附加最終偏移變換的 y 座標。
值型別:<coordinate>;預設值:0;可動畫:是 寬度-
use 元素的寬度。
值型別:<length>;預設值:0;可動畫:是 height-
use 元素的高度。
值型別:<length>;預設值:0;可動畫:是
注意:width 和 height 對 use 元素沒有影響,除非引用的元素具有 viewBox,即它們僅在 use 指向 svg 或 symbol 元素時才有效。
注意:從 SVG2 開始,x、y、width 和 height 是幾何屬性,這意味著這些屬性也可以用作該元素的 CSS 屬性。
用法說明
如果相應的屬性已在 use 引用的元素上定義,則 use 上的大多數屬性將被忽略。(這與 CSS 樣式屬性如何覆蓋級聯中“更早”設定的屬性有所不同)。只有use 元素上的 x、y、width、height 和 href 屬性將在後面描述,如果引用的元素已定義了相應的屬性,則可能產生一些影響。但是,任何其他未在引用的元素上設定的屬性將應用於 use 元素。
由於克隆的節點未公開,因此在使用 CSS 對 use 元素及其克隆的後代進行樣式設定時,必須注意。除非您使用 CSS 繼承 顯式請求,否則 CSS 屬性不能保證會被克隆的 DOM 繼承。
出於安全原因,瀏覽器可能會對 use 元素應用 同源策略,並可能拒絕載入 href 屬性中的跨源 URL。目前沒有定義的方法來為 use 元素設定跨源策略。
警告:出於安全原因,在 href 屬性中使用資料 URI 載入資源已棄用。這適用於 <use href="data:... 以及使用 set 或 setAttribute 方法設定 href 時。請參閱 瀏覽器相容性 表格中的“從 data: URI 載入”以檢查不同瀏覽器版本中的支援情況。
警告:從 SVG 2 開始,xlink:href 屬性已棄用,取而代之的是 href。有關更多資訊,請參閱 xlink:href 頁面。
使用上下文
規範
| 規範 |
|---|
| 可縮放向量圖形 (SVG) 2 # UseElement |
瀏覽器相容性
BCD 表格僅在啟用 JavaScript 的瀏覽器中載入。