MDN參考資料
核心概念
1. 中心點
就是橢圓或者圓的中心
2. 邊緣
就是橢圓或者圓的邊緣。為什么要用邊緣,而不用寬高呢,因為后面的幾個關鍵概念,用的都是這個邊緣。
3. 漸變顏色
跟線性漸變一樣,一組顏色設定表示漸變過程。沒什么好講的,后面將統一用 [red, #fff 99%, blue] 這個漸變組合,表示從紅色變換到白色,最后以一個1%藍色結束,方便查看邊緣。
用法
background-image:radial-gradient(形狀 尺寸 at 中心位置,初始顏色,顏色+);
以最簡單的用法 radial-gradient(red, blue) 來說,其實是下面的簡寫
radial-gradient(ellipse farthest-corner at center center, red 0, blue 100%)
代表的意思是:橢圓輻射 邊緣在最遠的角 中心點位置在圖片中心,紅色開始,藍色結束

其中藍色橢圓邊緣是我加上去的,實際看不見,附代碼:
.radial { background: gold; background-image: radial-gradient( red, blue) ; background-size: 400px 200px; background-position: center center; background-repeat: no-repeat; height: 300px;}語法解析
1. 形狀
ellipse | circle
默認是ellipse橢圓。
2. 尺寸
closest-side | closest-corner | farthest-side | farthest-corner
寬度,高度
第一種,預設值
第一種是用系統的四種預設值

默認值是farthest-corner。 通過上圖我們可以看到
附代碼:
.App { display: flex; flex-wrap: wrap;}.radial { border: 1px solid gray; box-sizing: border-box; background: gold; background-size: 400px 200px; background-position: center center; background-repeat: no-repeat; height: 300px; width: 50%}.closest-side { background-image: radial-gradient(closest-side at 100px 50px, red, #fff 99%, blue) ;}.closest-corner { background-image: radial-gradient(closest-corner at 100px 50px, red, #fff 99%, blue) ;}.farthest-side { background-image: radial-gradient(farthest-side at 100px 50px, red, #fff 99%, blue) ;}.farthest-corner { background-image: radial-gradient(farthest-corner at 100px 50px, red, #fff 99%, blue) ;}第二種 固定值
第二種是用寬高來設置,就像設置普通元素width,height那樣使用,沒什么好講的。

代碼
radial-gradient(ellipse 100px 70px at 100px 50px, red, #fff 99%, blue)
radial-gradient(ellipse 80% 50% at 100px 50px, red, #fff 99%, blue)
為什么使用coner也可以確定橢圓的形狀?
closest-corner 和 farthest-corner 這兩個預設尺寸,很奇怪,只知道中心點,和邊緣的一個點(最遠角或最近角),按道理來說,是能畫無數個橢圓的,那瀏覽器到底是怎么確定橢圓尺寸的呢?這個真的真的真的想了好久,最后我猜測的是:瀏覽器先按照closest-side確定橢圓的寬高比例,再進行縮放到角上。
3. 中心位置
就是確定橢圓中心的位置,基本上你可用于position的值類型,都可以用作這里
4. 漸變顏色組合
沒什么好講的,就是一組顏色和位置構成一個漸變。
注意 1. 漸變是個background-image
只要是漸變(linear-gradient或者radial-gradient),就會被處理成一張圖片,所以可以用于背景圖片的設置,基本都可以用于這里,例如背景圖片尺寸,位置,repeat等等。
最后,來加非常簡單的背景 一塊桌布

代碼
.radial { border: 1px solid gray; box-sizing: border-box; background-repeat: no-repeat; width: 400px; height: 400px; background-image: repeating-radial-gradient(circle at left -200px, rgba(255, 0, 0, .5) 0 10px, transparent 0 20px), repeating-radial-gradient(circle at right -200px, rgba(0, 255, 0, .5) 0 10px, transparent 0 20px) ;}一個月亮

代碼:
.radial { border: 1px solid gray; box-sizing: border-box; background-repeat: no-repeat; width: 400px; height: 400px; background-color: #000; background-image: radial-gradient(circle 300px at -90px -90px, #000 0 85%, transparent), radial-gradient(circle 200px at left top, #fff 0 99.9%, transparent) ; background-size: 300px 300px, 200px 200px;}以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持武林網。
新聞熱點
疑難解答