CSS 輻射漸變背景 radial-gradient的實(shí)現(xiàn)
核心概念
1. 中心點(diǎn)
就是橢圓或者圓的中心
2. 邊緣
就是橢圓或者圓的邊緣。為什么要用邊緣,而不用寬高呢,因?yàn)楹竺娴膸讉€(gè)關(guān)鍵概念,用的都是這個(gè)邊緣。
3. 漸變顏色
跟線(xiàn)性漸變一樣,一組顏色設(shè)定表示漸變過(guò)程。沒(méi)什么好講的,后面將統(tǒng)一用 [red, #fff 99%, blue] 這個(gè)漸變組合,表示從紅色變換到白色,最后以一個(gè)1%藍(lán)色結(jié)束,方便查看邊緣。
用法
background-image:radial-gradient(形狀 尺寸 at 中心位置,初始顏色,顏色+);
以最簡(jiǎn)單的用法 radial-gradient(red, blue) 來(lái)說(shuō),其實(shí)是下面的簡(jiǎn)寫(xiě)
radial-gradient(ellipse farthest-corner at center center, red 0, blue 100%)
代表的意思是:橢圓輻射 邊緣在最遠(yuǎn)的角 中心點(diǎn)位置在圖片中心,紅色開(kāi)始,藍(lán)色結(jié)束

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

默認(rèn)值是farthest-corner。 通過(guò)上圖我們可以看到
- closest-side 表示其邊緣正好貼合最近的兩個(gè)邊(左邊和上邊)
- closest-corner 表示其邊緣正好貼合最近的那個(gè)角(左上角)
- farthest-side 表示其邊緣正好貼合最遠(yuǎn)的兩個(gè)邊(右邊和下邊)
- 默認(rèn)值 farthest-corner表示其邊緣正好貼合最遠(yuǎn)的角(右下角)
附代碼:
.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)
;
}
第二種 固定值
第二種是用寬高來(lái)設(shè)置,就像設(shè)置普通元素width,height那樣使用,沒(méi)什么好講的。

代碼
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 這兩個(gè)預(yù)設(shè)尺寸,很奇怪,只知道中心點(diǎn),和邊緣的一個(gè)點(diǎn)(最遠(yuǎn)角或最近角),按道理來(lái)說(shuō),是能畫(huà)無(wú)數(shù)個(gè)橢圓的,那瀏覽器到底是怎么確定橢圓尺寸的呢?這個(gè)真的真的真的想了好久,最后我猜測(cè)的是:瀏覽器先按照closest-side確定橢圓的寬高比例,再進(jìn)行縮放到角上。
3. 中心位置
就是確定橢圓中心的位置,基本上你可用于position的值類(lèi)型,都可以用作這里
4. 漸變顏色組合
沒(méi)什么好講的,就是一組顏色和位置構(gòu)成一個(gè)漸變。
注意 1. 漸變是個(gè)background-image
只要是漸變(linear-gradient或者radial-gradient),就會(huì)被處理成一張圖片,所以可以用于背景圖片的設(shè)置,基本都可以用于這里,例如背景圖片尺寸,位置,repeat等等。
最后,來(lái)加非常簡(jiǎn)單的背景 一塊桌布

代碼
.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)
;
}
一個(gè)月亮

代碼:
.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;
}
以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
相關(guān)文章

CSS3徑向漸變r(jià)adial-gradient實(shí)現(xiàn)波浪邊框和內(nèi)倒角的方法
這篇文章主要介紹了CSS3徑向漸變r(jià)adial-gradient實(shí)現(xiàn)波浪邊框和內(nèi)倒角的方法,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友2019-02-19
在web前端開(kāi)發(fā)過(guò)程中,UI設(shè)計(jì)師經(jīng)常會(huì)設(shè)計(jì)一些帶漸變文字的設(shè)計(jì)圖,在以前我們只能用png的圖片來(lái)代替文字,今天小編給大家?guī)?lái)了css實(shí)現(xiàn)文字顏色漸變的三種方法,一起看看2018-11-22
css實(shí)現(xiàn)動(dòng)態(tài)陰影、蝕刻文本、漸變文本效果
這篇文章主要介紹了css實(shí)現(xiàn)動(dòng)態(tài)陰影、蝕刻文本、漸變文本效果,代碼簡(jiǎn)單易懂,非常不錯(cuò),具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2018-11-22
這篇文章主要介紹了利用css3徑向漸變做一張優(yōu)惠券的示例的相關(guān)資料,小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧2018-03-22
css 進(jìn)度條的文字根據(jù)進(jìn)度漸變的示例代碼
這篇文章主要介紹了css 進(jìn)度條的文字根據(jù)進(jìn)度漸變的示例代碼,介紹了進(jìn)度條里面的文字需要根據(jù)進(jìn)度的長(zhǎng)度而變化,小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一2018-01-09- 這篇文章主要介紹了css3編寫(xiě)瀏覽器背景漸變背景色的方法,小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧2019-09-12
本篇文章主要介紹了CSS3的顏色漸變效果的示例代碼,小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧2017-09-29- 這篇文章主要介紹了關(guān)于CSS中漸變的相關(guān)資料,主要分享CSS3中l(wèi)inear-gradient和radial-gradient的知識(shí),帶給大家使用漸變的另一個(gè)角度,文中通過(guò)示例代碼介紹的非常詳細(xì),2017-06-27







