SVG入門 漸變

2021-10-22 22:52:38 字數 3304 閱讀 2973

前言

svg並非只能簡單填充顏色和描邊,更令人興奮的是,你還可以建立和並在填充和描邊上應用漸變色。

有兩種型別的漸變:線性漸變和徑向漸變。你必須給漸變內容指定乙個id屬性,否則文件內的其他元素就不能引用它。為了讓漸變能被重複使用,漸變內容需要定義在標籤內部,而不是定義在形狀上面。

線性漸變

線性漸變沿著直線改變顏色,要插入乙個線性漸變,你需要在svg檔案的defs元素內部,建立乙個節點。

width

="120"

height

="240"

version

="1.1"

xmlns

="">

>

"gradient1"

>

class

="stop1"

offset

="0%"

/>

class

="stop2"

offset

="50%"

/>

class

="stop3"

offset

="100%"

/>

lineargradient

>

"gradient2"

x1="0" x2

="0"

y1="0" y2

="1"

>

offset

="0%"

stop-color

="red"

/>

offset

="50%"

stop-color

="black"

stop-opacity

="0"

/>

offset

="100%"

stop-color

="blue"

/>

lineargradient

>

type

="text/css"

>

style

>

defs

>

"rect1" x=

"10" y=

"10"

rx="15"

ry="15"

width

="100"

height

="100"

/>

"10" y=

"120"

rx="15"

ry="15"

width

="100"

height

="100"

fill

="url(#gradient2)"

/>

svg>

線性漸變內部有幾個結點,這些結點通過指定位置的offset(偏移)屬性和stop-color(顏色中值)屬性來說明在漸變的特定位置上應該是什麼顏色;

可以直接指定這兩個屬性值,也可以通過css來指定他們的值。

offset的值可以為0,1也可以是0%,100%。

類似於填充和描邊,你也可以指定屬性stop-opacity來設定某個位置的半透明度:

offset

="100%"

stop-color

="yellow"

stop-opacity

="0.5"

/>

使用漸變時,我們需要在乙個物件的屬性fill或屬性stroke中引用它,這跟你在css中使用url引用元素的方法一樣。

漸變的方向可以通過兩個點來控制,它們分別是屬性x1、x2、y1和y2,這些屬性定義了漸變路線走向。漸變色預設是水平方向的,但是通過修改這些屬性,就可以旋轉該方向。

"gradient2"

x1="0" x2

="0"

y1="0" y2

="1"

>

徑向漸變

徑向漸變與線性漸變相似,只是它是從乙個點開始發散繪製漸變。建立徑向漸變需要宣告在defs元素裡。

width

="120"

height

="240"

version

="1.1"

xmlns

="">

>

"radialgradient1"

>

offset

="0%"

stop-color

="red"

/>

offset

="100%"

stop-color

="blue"

/>

radialgradient

>

"radialgradient2"

cx="0.25"

cy="0.25" r=

"0.25"

>

offset

="0%"

stop-color

="red"

/>

offset

="100%"

stop-color

="blue"

/>

radialgradient

>

defs

>

"10" y=

"10"

rx="15"

ry="15"

width

="100"

height

="100"

fill

="url(#radialgradient1)"

/>

"10" y=

"120"

rx="15"

ry="15"

width

="100"

height

="100"

fill

="url(#radialgradient2)"

/>

svg>

中值(stops)的使用方法與之前一致,但是現在這個物件的顏色是中間是紅色的,且向著邊緣的方向漸漸的變成藍色。跟線性漸變一樣,節點可以有多個屬性來描述其位置和方向,但是它更加複雜。徑向漸變也是通過兩個點來定義其邊緣位置,兩點中的第乙個點定義了漸變結束所圍繞的圓環,它需要乙個中心點,由cx和cy屬性及半徑r來定義,通過設定這些點我們可以移動漸變範圍並改變它的大小,如上例的第二個所展示的。

SVG 徑向漸變

上一節我們講的是線性漸變,本節我們來學習徑向漸變。徑向漸變可以理解為以某一點為圓心,顏色值沿半徑方向進行漸變。如何建立徑向漸變 我們可以通過元素建立乙個 svg 的徑向漸變。徑向漸變的使用其實和線性漸變差不多,也是巢狀在元素中使用,在使用時需要定義乙個唯一的id名稱,然後通過fill屬性引用。示例 ...

SVG 徑向漸變

上一節我們講的是線性漸變,本節我們來學習徑向漸變。徑向漸變可以理解為以某一點為圓心,顏色值沿半徑方向進行漸變。如何建立徑向漸變 我們可以通過元素建立乙個 svg 的徑向漸變。徑向漸變的使用其實和線性漸變差不多,也是巢狀在元素中使用,在使用時需要定義乙個唯一的id名稱,然後通過fill屬性引用。示例 ...

SVG 漸變學習(四)

漸變是一種從一種顏色到另一種顏色的平滑過渡。另外,可以把多個顏色的過渡應用到同乙個元素上。在 svg 中,有兩種主要的漸變型別 可用來定義 svg 的線性漸變。標籤必須巢狀在 的內部。標籤是 definitions 的縮寫,它可對諸如漸變之類的特殊元素進行定義。線性漸變可被定義為水平 垂直或角形的漸...