radial-gradient()

語法:

<radial-gradient> = radial-gradient([ [ <shape> || <size> ] [ at <position> ]? , | at <position>, ]?<color-stop>[ , <color-stop> ]+)

<position> = [ <length>1 | <percentage>1 | left | center1 | right ]? [ <length>2 | <percentage>2 | top | center2 | bottom ]?

<shape> = circle | ellipse

<size> = <extent-keyword> | [ <circle-size> || <ellipse-size> ]

<extent-keyword> = closest-side | closest-corner | farthest-side | farthest-corner

<circle-size> = <length>

<ellipse-size> = [ <length> | <percentage> ]{2}

<shape-size> = <length> | <percentage>

<color-stop> = <color> [ <length> | <percentage> ]?

取值:

<position> 確定圓心的位置。如果提供2個參數,第一個表示橫坐標,第二個表示縱坐標;如果只提供一個,第二值預設為50%,即center

<percentage>1:
用百分比指定徑向漸變圓心的橫坐標值。可以為負值。
<length>1:
用長度值指定徑向漸變圓心的橫坐標值。可以為負值。
left:
設定左邊為徑向漸變圓心的橫坐標值。
center1:
設定中間為徑向漸變圓心的橫坐標值。
right:
設定右邊為徑向漸變圓心的橫坐標值。
<percentage>2:
用百分比指定徑向漸變圓心的縱坐標值。可以為負值。
<length>2:
用長度值指定徑向漸變圓心的縱坐標值。可以為負值。
top:
設定頂部為徑向漸變圓心的縱坐標值。
center2:
設定中間為徑向漸變圓心的縱坐標值。
bottom:
設定底部為徑向漸變圓心的縱坐標值。

<shape> 確定圓的類型

circle:
指定圓形的徑向漸變
ellipse:
指定橢圓形的徑向漸變。

<extent-keyword> circle | ellipse 都接受該值作為 size

closest-side:
指定徑向漸變的半徑長度為從圓心到離圓心最近的邊
closest-corner:
指定徑向漸變的半徑長度為從圓心到離圓心最近的角
farthest-side:
指定徑向漸變的半徑長度為從圓心到離圓心最遠的邊
farthest-corner:
指定徑向漸變的半徑長度為從圓心到離圓心最遠的角

<circle-size> circle 接受該值作為 size

<length>
用長度值指定正圓徑向漸變的半徑長度。不允許負值。

<ellipse-size> ellipse 接受該值作為 size

<length>
用長度值指定橢圓徑向漸變的橫向或縱向半徑長度。不允許負值。
<percentage>
用百分比指定橢圓徑向漸變的橫向或縱向半徑長度。不允許負值。

<color-stop> 用於指定漸變的起止顏色:

<color>
指定顏色。
<length>
用長度值指定起止色位置。不允許負值
<percentage>
用百分比指定起止色位置。不允許負值

說明:

用徑向漸變建立圖片。
  • 用預設的漸變方向繪制一個最簡單的徑向漸變

    示例程式碼:


    (圖一)

    radial-gradient(circle, #f00, #ff0, #080); radial-gradient(circle at center, #f00, #ff0, #080); radial-gradient(circle at 50%, #f00, #ff0, #080); radial-gradient(circle farthest-corner, #f00, #ff0, #080);

    以上幾句程式碼都可以實現如(圖一)的漸變效果

  • <shape><size> 使用注意:

    錯誤程式碼:

    radial-gradient(circle 50px 50px, #f00, #ff0, #080);

    因為 circle 是正圓,一個值就能表示其直徑長度,所以此時 <size> 只能是一個值。

    錯誤程式碼:

    radial-gradient(circle 50%, #f00, #ff0, #080);

    circle 不接受 <size> 的值是 <percentage>

  • 不通過 <shape> 來表示圓和橢圓的方法:

    以下2行程式碼都可以表示一個圓:

    radial-gradient(100px, #f00, #ff0, #080); /* 1 */ radial-gradient(100px 100px, #f00, #ff0, #080); /* 2 */ radial-gradient(50px 100px, #f00, #ff0, #080); /* 3 */

    程式碼1:只給出100px,所以被當成是正圓的半徑,於是就能確定一個直徑為100px的圓;

    程式碼2:給出了2個值,按理應該是要畫一個橢圓的,但2個值相等,所以這個橢圓其實此時是個正圓形態。需要注意的是,程式碼2如果加上 circle,那將是錯誤語法,因為這是2個值只有橢圓才接受;

    程式碼3:表示了一個水平半徑為50px,垂直半徑為100px的橢圓

兼容性:

  • 淺綠 = 支援
  • 紅色 = 不支援
  • 粉色 = 部分支援
IE Firefox Chrome Safari Opera iOS Safari Android Browser Android Chrome
6.0-9.0 2.0-3.5 4.0-9.0
-webkit- #1
3.1-3.2 15.0+ 3.2-4.3
-webkit- #1
2.1-3.0
-webkit- #1
10.0-25.0
-webkit- #1
10.0+ 3.6-15.0
-moz-
10.0-25.0
-webkit-
4.0-5.0
-webkit- #1
5.0-6.1 4.0-4.3
-webkit-
26.0+
16.0+ 26.0+ 5.1-6.0
-webkit-
7.0+ 4.4+
6.1+
  1. 使用過時的語法:-webkit-gradient(radial,…)

示例: