填充
fill 屬性有兩個不同的含義。對於形狀和文字,它是一個表示屬性,定義用於繪製元素的顏色(或任何 SVG 繪製伺服器,如漸變或圖案);對於動畫,它定義動畫的最終狀態。
SVG 表示屬性 fill 和 CSS fill 屬性可與以下 SVG 元素一起使用
SVG fill 屬性可用於定義以下 SVG 元素的最終動畫狀態
示例
基本顏色和漸變填充以及動畫
<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> 元素定義了三個形狀,每個形狀都有不同的 stroke 和 fill 顏色設定。我們還透過 <marker> 元素定義了一個 <circle> 元素作為標記。每個形狀都透過 marker CSS 屬性應用了標記。
<circle> 設定了 stroke="context-stroke" 和 fill="context-fill"。由於它在形狀的上下文中被設定為標記,因此這些屬性使其繼承了在每種情況下 <path> 元素上設定的 fill 和 stroke。
<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-stroke 和 context-fill 來繼承 stroke 和 fill 值。
動畫
對於 <animate>,fill 定義動畫的最終狀態。
| 值 | freeze(保持最後一幀動畫的狀態)| remove(保持第一幀動畫的狀態) |
|---|---|
| 預設值 | remove |
| 可動畫 | 否 |
運動動畫
對於 <animateMotion>,fill 定義動畫的最終狀態。
| 值 | freeze(保持最後一幀動畫的狀態)| remove(保持第一幀動畫的狀態) |
|---|---|
| 預設值 | remove |
| 可動畫 | 否 |
變換動畫
對於 <animateTransform>,fill 定義動畫的最終狀態。
| 值 | freeze(保持最後一幀動畫的狀態)| remove(保持第一幀動畫的狀態) |
|---|---|
| 預設值 | remove |
| 可動畫 | 否 |
圓形
橢圓
路徑
多邊形
折線
對於 <polyline>,fill 是一個表示屬性,定義形狀內部的顏色。(內部由 fill-rule 屬性或 fill-rule 屬性定義。)
| 值 | <paint> |
|---|---|
| 預設值 | 黑色 |
| 可動畫 | 是 |
注意:作為表示屬性,fill 可以用作 CSS 屬性。
矩形
設定
對於 <set>,fill 定義動畫的最終狀態。
| 值 | freeze(保持最後一幀動畫的狀態)| remove(保持第一幀動畫的狀態) |
|---|---|
| 預設值 | remove |
| 可動畫 | 否 |
文字
文字路徑
tref
tspan
規範
| 規範 |
|---|
| 可縮放向量圖形 (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 的瀏覽器中載入。