fill
fill 屬性有兩種不同的含義。對於形狀和文字,它是一個呈現屬性,用於定義繪製元素的顏色(或任何 SVG 顏料伺服器,如漸變或圖案);對於動畫,它定義動畫的最終狀態。
注意: 當用作呈現屬性時,fill 還有一個對應的 CSS 屬性:fill。當兩者都指定時,CSS 屬性優先。
SVG 呈現屬性 fill 和 CSS fill 屬性可以與以下 SVG 元素一起使用
SVG fill 屬性可以與以下 SVG 元素一起用於定義最終的動畫狀態
示例
基本顏色和漸變填充,以及動畫
<svg viewBox="0 0 300 100" xmlns="http://www.w3.org/2000/svg">
<!-- Basic 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
對於 <animate>,fill 定義動畫的最終狀態。
| 值 |
freeze(保持最後一幀動畫的狀態)| remove(保持第一幀動畫的狀態) |
|---|---|
| 預設值 | remove |
| 可動畫的 | 否 |
animateMotion
對於 <animateMotion>,fill 定義動畫的最終狀態。
| 值 |
freeze(保持最後一幀動畫的狀態)| remove(保持第一幀動畫的狀態) |
|---|---|
| 預設值 | remove |
| 可動畫的 | 否 |
animateTransform
對於 <animateTransform>,fill 定義動畫的最終狀態。
| 值 |
freeze(保持最後一幀動畫的狀態)| remove(保持第一幀動畫的狀態) |
|---|---|
| 預設值 | remove |
| 可動畫的 | 否 |
circle
對於 <circle>,fill 是一個呈現屬性,定義圓的顏色。
| 值 | <paint> |
|---|---|
| 預設值 | black |
| 可動畫的 | 是 |
ellipse
對於 <ellipse>,fill 是一個呈現屬性,定義橢圓的顏色。
| 值 | <paint> |
|---|---|
| 預設值 | black |
| 可動畫的 | 是 |
路徑
對於 <path>,fill 是一個呈現屬性,定義形狀內部的顏色。(內部由 fill-rule 屬性或 fill-rule 屬性定義。)
| 值 | <paint> |
|---|---|
| 預設值 | black |
| 可動畫的 | 是 |
polygon
對於 <polygon>,fill 是一個呈現屬性,定義形狀內部的顏色。(內部由 fill-rule 屬性或 fill-rule 屬性定義。)
| 值 | <paint> |
|---|---|
| 預設值 | black |
| 可動畫的 | 是 |
polyline
對於 <polyline>,fill 是一個呈現屬性,定義形狀內部的顏色。(內部由 fill-rule 屬性或 fill-rule 屬性定義。)
| 值 | <paint> |
|---|---|
| 預設值 | black |
| 可動畫的 | 是 |
rect
對於 <rect>,fill 是一個呈現屬性,定義矩形的顏色。
| 值 | <paint> |
|---|---|
| 預設值 | black |
| 可動畫的 | 是 |
set
對於 <set>,fill 定義動畫的最終狀態。
| 值 |
freeze(保持最後一幀動畫的狀態)| remove(保持第一幀動畫的狀態) |
|---|---|
| 預設值 | remove |
| 可動畫的 | 否 |
文字
對於 <text>,fill 是一個呈現屬性,定義文字的顏色。
| 值 | <paint> |
|---|---|
| 預設值 | black |
| 可動畫的 | 是 |
textPath
對於 <textPath>,fill 是一個呈現屬性,定義文字的顏色。
| 值 | <paint> |
|---|---|
| 預設值 | black |
| 可動畫的 | 是 |
tspan
對於 <tspan>,fill 是一個呈現屬性,定義文字的顏色。
| 值 | <paint> |
|---|---|
| 預設值 | black |
| 可動畫的 | 是 |
規範
| 規範 |
|---|
| SVG 動畫級別 2 # FillAttribute |
| Scalable Vector Graphics (SVG) 2 # SpecifyingFillPaint |
瀏覽器相容性
svg.elements.animate.fill
載入中…
svg.elements.animateMotion.fill
載入中…
svg.elements.animateTransform.fill
載入中…
svg.elements.circle.fill
載入中…
svg.elements.ellipse.fill
載入中…
svg.elements.path.fill
載入中…
svg.elements.polygon.fill
載入中…
svg.elements.polyline.fill
載入中…
svg.elements.rect.fill
載入中…
svg.elements.set.fill
載入中…
svg.elements.text.fill
載入中…
svg.elements.textPath.fill
載入中…
svg.elements.tspan.fill
載入中…
另見
- CSS
fill屬性