天天看點

background-image之 圓錐/線性/徑向漸變 gradient()

大家好,我是半夏👴,一個剛剛開始寫文的沙雕程式員.如果喜歡我的文章,可以關注➕ 點贊 👍 加我微信:frontendpicker,邀你進群,一起學習交流前端,成為更優秀的工程師~關注公衆号: 半夏話前端 ,了解更多前端知識! 點我 探索新世界!

前言

在前面三篇文章中,剖析了CSS中的文本屬性,俗話說一圖勝千言,網頁中一張好看的圖檔,配上精美的文字,定能吸引眼球。

background-image-設定元素的背景圖檔

定義

将圖形(例如 PNG、SVG、JPG、GIF、WEBP)或漸變應用于元素的背景。

有兩種不同類型的圖像可以包含在 CSS 中:正常圖像和漸變。

屬性值

url(‘URL’)

圖像的URL

background-image: url(./bk.jpg);      

none

預設值,無圖像

漸變

linear-gradient() 線性漸變

預設是從上往下建立一個線性漸變的圖像

background-image: linear-gradient(#55efc4,#a29bfe);      
background-image之 圓錐/線性/徑向漸變 gradient()

文法

background-image:linear-gradient(角度/to,顔色,顔色  開始漸變的位置, ......);

background-image:linear-gradient(),linear-gradient()...;      

根據文法,合理猜測,從上往下,預設是180deg或者 to bottom,

浏覽器預設會把第一個顔色的位置設定為0%,把最後一個顔色的位置設定為100%

舉例1 deg

background-image: linear-gradient(45deg,#55efc4,#a29bfe);      
background-image之 圓錐/線性/徑向漸變 gradient()

舉例2 to文法

background-image: linear-gradient(to left top,#55efc4,#a29bfe);      
background-image之 圓錐/線性/徑向漸變 gradient()

舉例3 多顔色以及位置

linear-gradient(#55efc4,#a29bfe 30%,#fd79a8 50% )      
background-image之 圓錐/線性/徑向漸變 gradient()

接收多個linear-gradient

錯誤例子

background-image: linear-gradient(45deg,#55efc4,#a29bfe,linear-gradient( #d63031,#e84393);
      
background-image之 圓錐/線性/徑向漸變 gradient()

第二個漸變并沒有出現,這是因為第一個漸變是從0-100%的,占滿了整個元素,是以第二個沒有出現。

正确示例,使用transparent

使用transparent *%;的方式來将部分空間來透明化,進而顯示其他漸變。

background-image: linear-gradient(45deg,#55efc4,#a29bfe,transparent 50%),linear-gradient( #d63031,#e84393);
      
background-image之 圓錐/線性/徑向漸變 gradient()
radial-gradient() 徑向漸變

徑向漸變建立 “圖像”。 從中心往四周,發散的形狀是圓形或者橢圓形

background-image: radial-gradient([形狀 大小 at(位置)],開始顔色,......,終止顔色);      

形狀

ellipse (預設): 橢圓形的徑向漸變。

background-image: radial-gradient( #48dbfb,#ee5253);

background-image之 圓錐/線性/徑向漸變 gradient()

circle :圓形的徑向漸變

background-image: radial-gradient( circle,#48dbfb,#ee5253);

background-image之 圓錐/線性/徑向漸變 gradient()

size

farthest-corner (預設) : 指定徑向漸變的半徑長度為從圓心到離圓心最遠的角

background-image之 圓錐/線性/徑向漸變 gradient()

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

background-image: radial-gradient(closest-side ,#48dbfb,#ee5253);

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

background-image: radial-gradient(closest-corner at 20%,#48dbfb,#ee5253);

background-image之 圓錐/線性/徑向漸變 gradient()

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

background-image: radial-gradient(farthest-side at 20%,#48dbfb,#ee5253);

background-image之 圓錐/線性/徑向漸變 gradient()

at(位置)

at center(預設):中間為徑向漸變圓心的縱坐标值。

background-image: radial-gradient(at center,#48dbfb,#ee5253);

background-image之 圓錐/線性/徑向漸變 gradient()

at top:頂部為徑向漸變圓心的縱坐标值。

background-image: radial-gradient(at top,#48dbfb,#ee5253);

background-image之 圓錐/線性/徑向漸變 gradient()

at bottom:底部為徑向漸變圓心的縱坐标值。

background-image: radial-gradient(at top,#48dbfb,#ee5253);

background-image之 圓錐/線性/徑向漸變 gradient()

at 值:值所在位置為徑向漸變圓心的橫坐标值。

background-image: radial-gradient(at 1590px,#48dbfb,#ee5253);

background-image之 圓錐/線性/徑向漸變 gradient()
conic-gradient 圓錐漸變

圓錐漸變類似于徑向漸變。兩者都是圓形并使用元素的中心作為色标的源點。然而,在徑向漸變的色标從圓心出現的地方,圓錐漸變将它們放置在圓周圍。

制作一個 位于[某個點]的 圓錐梯度,該 漸變以 某個角度的[一種顔色] 開始, 并 以 [某個角度] 的[另一種顔色]結束

大概就是下面這麼個效果,從

background-image之 圓錐/線性/徑向漸變 gradient()
conic-gradient(
  [ from <angle> ]? [ at <position> ]?,
  <angular-color-stop-list>
)      

舉例1 隻有漸變色

background-image: conic-gradient(#2ecc71, #e52e71);      
background-image之 圓錐/線性/徑向漸變 gradient()

舉例2 at文法 規定中心點位置

background-image: conic-gradient(at 30% 40%, #2ecc71, #e52e71);      
background-image之 圓錐/線性/徑向漸變 gradient()

舉例3 from文法,規定圓錐初始位置

background-image: conic-gradient(from 45deg, #2ecc71, #e52e71);      
background-image之 圓錐/線性/徑向漸變 gradient()

舉例4 from at 同時使用

background-image: conic-gradient(from 45deg at 30% center, #2ecc71, #e52e71);

background-image之 圓錐/線性/徑向漸變 gradient()

舉例5 顔色後面+百分比

background-image: conic-gradient(#2ecc71 70%, #3498db, #e52e71);

background-image之 圓錐/線性/徑向漸變 gradient()

舉例6 顔色後面+角度/turn

background-image: conic-gradient(#2ecc71 45deg, #e52e71 0.5turn );

background-image之 圓錐/線性/徑向漸變 gradient()
repeating-linear-gradient()

建立重複的線性漸變 “圖像”。

這個屬性與liner-gradlient的參數用法一緻,

差別就是

隻有當首尾兩顔色位置不在0%或100%時,會産生重複漸變

background-image: repeating-linear-gradient( #48dbfb,#ee5253);

這種方式就無法産生漸變

background-image: repeating-linear-gradient( #48dbfb,#ee5253 10%);

background-image之 圓錐/線性/徑向漸變 gradient()
repeating-radial-gradient()

建立重複的徑向漸變 “圖像”

這個屬性與radial-gradlient的參數用法一緻,

隻有當初終兩顔色位置不在0%或100%時,會産生重複漸變

background-image: repeating-radial-gradient( #48dbfb,#ee5253);

background-image: repeating-radial-gradient( #48dbfb,#ee5253 );

background-image之 圓錐/線性/徑向漸變 gradient()

繼續閱讀