填充

fill 屬性有兩個不同的含義。對於形狀和文字,它是一個表示屬性,定義用於繪製元素的顏色(或任何 SVG 繪製伺服器,如漸變或圖案);對於動畫,它定義動畫的最終狀態。

SVG 表示屬性 fill 和 CSS fill 屬性可與以下 SVG 元素一起使用

SVG fill 屬性可用於定義以下 SVG 元素的最終動畫狀態

示例

基本顏色和漸變填充以及動畫

html
<svg viewBox="0 0 300 100" xmlns="http://www.w3.org/2000/svg">
  <!-- Simple color fill -->
  <circle cx="50" cy="50" r="40" fill="pink" />

  <!-- Fill circle with a gradient -->
  <defs>
    <radialGradient id="myGradient">
      <stop offset="0%" stop-color="pink" />
      <stop offset="100%" stop-color="black" />
    </radialGradient>
  </defs>

  <circle cx="150" cy="50" r="40" fill="url(#myGradient)" />

  <!--
  Keeping the final state of an animated circle
  which is a circle with a radius of 40.
  -->
  <circle cx="250" cy="50" r="20">
    <animate
      attributeType="XML"
      attributeName="r"
      from="0"
      to="40"
      dur="5s"
      fill="freeze" />
  </circle>
</svg>

context-fill 示例

在此示例中,我們使用 <path> 元素定義了三個形狀,每個形狀都有不同的 strokefill 顏色設定。我們還透過 <marker> 元素定義了一個 <circle> 元素作為標記。每個形狀都透過 marker CSS 屬性應用了標記。

<circle> 設定了 stroke="context-stroke"fill="context-fill"。由於它在形狀的上下文中被設定為標記,因此這些屬性使其繼承了在每種情況下 <path> 元素上設定的 fillstroke

html
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 300 90">
  <style>
    path {
      stroke-width: 2px;
      marker: url(#circle);
    }
  </style>
  <path d="M 10 44.64 L 30 10 L 70 10 L 90 44.64 L 70 79.28 L 30 79.28 Z"
        stroke="red" fill="orange" />
  <path d="M 100 44.64 L 80 10 L 120 10 L 140 44.64 L 120 79.28 L 80 79.28 Z"
        stroke="green" fill="lightgreen" />
  <path d="M 150 44.64 L 130 10 L 170 10 L 190 44.64 L 170 79.28 L 130 79.28 Z"
        stroke="blue" fill="lightblue" />
  <marker id="circle" markerWidth="12" markerHeight="12"
          refX="6" refY="6" markerUnits="userSpaceOnUse">
    <circle cx="6" cy="6" r="3" stroke-width="2"
            stroke="context-stroke" fill="context-fill"  />
  </marker>
</svg>

輸出如下

注意:當元素被 <use> 元素引用時,元素也可以使用 context-strokecontext-fill 來繼承 strokefill 值。

動畫

對於 <animate>fill 定義動畫的最終狀態。

freeze保持最後一幀動畫的狀態)| remove保持第一幀動畫的狀態
預設值 remove
可動畫

運動動畫

對於 <animateMotion>fill 定義動畫的最終狀態。

freeze保持最後一幀動畫的狀態)| remove保持第一幀動畫的狀態
預設值 remove
可動畫

變換動畫

對於 <animateTransform>fill 定義動畫的最終狀態。

freeze保持最後一幀動畫的狀態)| remove保持第一幀動畫的狀態
預設值 remove
可動畫

圓形

對於 <circle>fill 是一個表示屬性,定義圓的顏色。

<paint>
預設值 黑色
可動畫

注意:作為表示屬性,fill 可以用作 CSS 屬性。

橢圓

對於 <ellipse>fill 是一個表示屬性,定義橢圓的顏色。

<paint>
預設值 黑色
可動畫

注意:作為表示屬性,fill 可以用作 CSS 屬性。

路徑

對於 <path>fill 是一個表示屬性,定義形狀內部的顏色。(內部由 fill-rule 屬性或 fill-rule 屬性定義。

<paint>
預設值 黑色
可動畫

注意:作為表示屬性,fill 可以用作 CSS 屬性。

多邊形

對於 <polygon>fill 是一個表示屬性,定義形狀內部的顏色。(內部由 fill-rule 屬性或 fill-rule 屬性定義。

<paint>
預設值 黑色
可動畫

注意:作為表示屬性,fill 可以用作 CSS 屬性。

折線

對於 <polyline>fill 是一個表示屬性,定義形狀內部的顏色。(內部由 fill-rule 屬性或 fill-rule 屬性定義。

<paint>
預設值 黑色
可動畫

注意:作為表示屬性,fill 可以用作 CSS 屬性。

矩形

對於 <rect>fill 是一個表示屬性,定義矩形顏色。

<paint>
預設值 黑色
可動畫

注意:作為表示屬性,fill 可以用作 CSS 屬性。

設定

對於 <set>fill 定義動畫的最終狀態。

freeze保持最後一幀動畫的狀態)| remove保持第一幀動畫的狀態
預設值 remove
可動畫

文字

對於 <text>fill 是一個表示屬性,定義文字的顏色。

<paint>
預設值 黑色
可動畫

注意:作為表示屬性,fill 可以用作 CSS 屬性。

文字路徑

對於 <textPath>fill 是一個表示屬性,定義文字的顏色。

<paint>
預設值 黑色
可動畫

注意:作為表示屬性,fill 可以用作 CSS 屬性。

tref

警告:從 SVG2 開始,<tref> 已棄用,不應使用。

對於 <tref>fill 是一個表示屬性,定義文字的顏色。

<paint>
預設值 黑色
可動畫

注意:作為表示屬性,fill 可以用作 CSS 屬性。

tspan

對於 <tspan>fill 是一個表示屬性,定義文字的顏色。

<paint>
預設值 黑色
可動畫

注意:作為表示屬性,fill 可以用作 CSS 屬性。

規範

規範
可縮放向量圖形 (SVG) 2
# 指定填充繪製

瀏覽器相容性

svg.elements.circle.fill

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

svg.elements.ellipse.fill

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

svg.elements.path.fill

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

svg.elements.polygon.fill

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

svg.elements.polyline.fill

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

svg.elements.rect.fill

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

svg.elements.text.fill

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

svg.elements.textPath.fill

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

svg.elements.tref.fill

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

svg.elements.tspan.fill

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