摘要:漸變范圍顏色范圍整個的寬度是,是,可以發(fā)現(xiàn)它截止的地方正好是,但是的漸變終點是。漸變過渡區(qū)的占比為總的空間高度或?qū)挾葴p去上下兩個著色塊空間占比剩下的空間。
因為我不喜歡背公式,希望自己能找到比較容易理解和推理的記憶方式吧,很早就感覺CSS3漸變的屬性組成不太好記憶,所以今天終于挖了這個坑,其實也沒什么很特別的,嘻嘻,如果有錯誤歡迎提出。
基本用法我們一般都是在添加background的時候會用到這個漸變效果,漸變效果分為linear-gradient(線性漸變)和radial-gradient(徑向)。
當(dāng)然這篇文章主要是圍繞linear-gradient展開的。
語法如下:
background: linear-gradient(方向, 顏色1, 顏色2, ...);
因為可以傳入多個顏色,所以這里就是一大串了。
另外還有多個兼容前綴的寫法,語法也有細(xì)微的不同,但是這里就講的是標(biāo)準(zhǔn)形式,也就是沒有前綴的~
示例用法:
linear-gradient(red, blue); linear-gradient(to right, red , blue); linear-gradient(180deg, red, blue); linear-gradient(180deg, red 10%, blue 20%);關(guān)于方向
方向有兩種寫法,可以是寫top、bottom、left、right,也可以是寫具體的角度。
不寫方向默認(rèn)情況下是上->下:
background: linear-gradient(red,blue);使用方向單詞
to 某個方向(目的地)
這里的值可以是單純的top,也可以是如top left(左上)這樣的組合搭配。
Tip:left top搭配中詞語的順序變換也沒有影響。
而它的方向就是以這個目的地為目標(biāo),徑直發(fā)射過去。
舉例:
向右下角(right bottom / bottom right)發(fā)射過去啦~
background: linear-gradient(to right bottom, red , blue);使用角度
角度的范圍:
可以是負(fù)數(shù)到正數(shù)!它會進行%360deg的運算,所以0deg和360deg/-360deg是一樣的啦。
角度的判斷:
讓我們先回到不填寫方法的時候,漸變是red(1)->blue(2),但是在0deg的情況下,漸變方向是blue(2)->red(1):
background: linear-gradient(0deg , red , blue)
隨后多次實驗會發(fā)現(xiàn),這個角度其實不像transform那種旋轉(zhuǎn)的角度,同樣也可以認(rèn)為是一個發(fā)射的角度:
所以呀,就可以認(rèn)為是像這張圖一樣的,可以把red作為自己的出發(fā)點,然后對著某個角度發(fā)射過去。
所以在不寫方向的默認(rèn)情況下,linear-gradient(red,blue);這個角度其實相當(dāng)于是linear-gradient(180deg, red,blue)。
我們在寫顏色的時候后面可以在接一個百分比,這個百分比在MDN中的解釋是:
漸近線的顏色停止點在該位置有特定的顏色。該位置可以被指定為線長度的百分比或一個絕對長度。為實現(xiàn)期望的效果,可以指定任意多個顏色停止點。
說實話,我感覺這個解釋還是比較模糊,我個人覺得這個終點應(yīng)該是漸變的終點,所以我開始了小探究(怕被打擾思維的童鞋直接跳過這里,看最后一段吧(怕被打?)),但同樣還是要存在一個顏色開始的起點,所以來實驗一下:
1.
linear-gradient(to right, red 0%, blue 0%)
因為red設(shè)置了0%為終點,按照計算blue應(yīng)該從0%開始,而blue也同樣設(shè)置0%為漸變終點,所以blue就全部都占滿了,且不存在漸變。
漸變范圍:0%~0%
blue顏色范圍:0%~100%
2.
linear-gradient(to right, red 10%, blue 0%)
整個div的寬度是200px,red是10%,可以發(fā)現(xiàn)它截止的地方正好是200*10%=20px,但是blue的漸變終點是0。想象一下,就好像紅色部分把藍(lán)色的開頭給遮住了,所以這個時候沒有產(chǎn)生漸變,同樣如果blue <= 10%都不會有這個漸變。
漸變范圍:10%~0%(大于起點,所以不存在)
blue顏色范圍:10%~100%
3.
linear-gradient(to right, red 0%, blue 10%)
So,如果blue是10%,按照計算,藍(lán)色應(yīng)該從0%的位置開始,但是漸變的終點是10%,所以會有10%長度的漸變出現(xiàn)。
漸變范圍:0%~10%
blue顏色范圍:0%~100%
4.
來個復(fù)雜的情況:
linear-gradient(to right, red 40%, blue 50%,yellow 60%);
首先紅色部分在40%的時候止步,藍(lán)色的漸變到50%的時候才結(jié)束,所以中間有10%的漸變,同理藍(lán)色和黃色部分也有10%的漸變。
red范圍:0%~50%
red-blue漸變范圍:40%~50%
blue范圍: 50%~50%(漸變范圍給予了它一定的純色區(qū)域)
blue-yellow漸變范圍:50%~60%
yellow顏色范圍:50%~100%
5.
linear-gradient(to right, red 40%, blue 50%,yellow 0%);
把黃色部分設(shè)為0%,也就是黃色漸變在0%的時候就結(jié)束了,這個時候到藍(lán)色部分正好是容器的一半(50%)。
red-blue漸變范圍:40%~50%
blue顏色范圍:50%~50%(因為red-blue漸變而有了一段純色區(qū))
blue-yellow漸變范圍:50%~0%(無效)
yellow顏色范圍:50%~100%
目前看來,這個推理是合理的→_→,當(dāng)然啦這里還只是我的推理(唔)。然后我找到了一篇文章:https://segmentfault.com/a/11...,有詳細(xì)的說明和資料,總結(jié)來說就是:
百分比是指某個顏色值距離起點的開始位置。
漸變過渡區(qū)的占比為總的空間(高度或?qū)挾龋p去上下兩個著色塊空間占比剩下的空間。
如果某個色標(biāo)的位置值比整個列表中在它之前的色標(biāo)的位置值都要小,則該色標(biāo)的位置值會被設(shè)置為它前面所有色標(biāo)位置值的最大值。
這是權(quán)威的說法哦,也很好理解?(今天就自娛自樂到這里吧,嘻嘻)。
文章版權(quán)歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請注明本文地址:http://m.specialneedsforspecialkids.com/yun/113075.html
摘要:問題起源以前一直就聽說圣杯布局,但是沒有怎么去用過,然后這次偶然接觸到了,就學(xué)習(xí)了一下。繼續(xù)試驗我們可以嘗試改變的值,去看看位置的變化。為了方便我們計算,另外寫了一個類似的布局,內(nèi)容區(qū)的寬度是,三個的寬度也都是。 問題の起源 以前一直就聽說圣杯布局,但是沒有怎么去用過,然后這次偶然接觸到了,就學(xué)習(xí)了一下。這是一個我從別人寫的文章中復(fù)制過來的,關(guān)于圣杯布局的比較簡單的說明 通過縮放頁面就...
摘要:構(gòu)造函數(shù)構(gòu)造操作符調(diào)用的函數(shù)就是構(gòu)造函數(shù)。其和其構(gòu)造函數(shù)的指向相同。而構(gòu)造函數(shù)屬性指向的對象帶有屬性,指向函數(shù)自身。,回歸構(gòu)造函數(shù)繼承,仔細(xì)看看誕生的嘻嘻和哈哈兩位同學(xué)可以看到兩個實例都擁有了和兩個屬性,因為方法的運行類似于執(zhí)行了和。 最近在看《JavaScript設(shè)計模式》,然后開篇復(fù)習(xí)了JavaScript中的幾種繼承方式,自己似乎也沒有怎么仔細(xì)探究過,目前自己沒怎么碰到過應(yīng)用的場...
showImg(https://segmentfault.com/img/remote/1460000018747727?w=900&h=500); 簡介 heading 標(biāo)簽、SEO、無障礙閱讀 ps: 內(nèi)容有點多,本來只想講一個點,但是關(guān)聯(lián)性太強了,所以辛苦大家了。 在學(xué)習(xí) HTML 標(biāo)簽的時候,很多教程只告訴你 怎么用 而沒有講清楚 是什么,讓我們一起從 h1 到 h6 開始重新認(rèn)識 HTM...
摘要:屬性特性描述可選值,布爾值,默認(rèn)值為,啟用過濾器為不啟用過濾器。正常顯示,內(nèi)容對象將翻過來。,設(shè)置對象是否投影,布爾值,和,設(shè)置對象投影不透明度,,假如為那么該值無效。 前言 前段時間在做一個專題的時候用到了opacity不透明度屬性,因為設(shè)計圖上是半透明背景,白色文字 showImg(https://segmentfault.com/img/bVknaX); 所以在IE用到了其...
摘要:參考資料首先,網(wǎng)頁大小與瀏覽器窗口大小從來都不是一回事這尼瑪最近才明白,坑所以,要知道以下常網(wǎng)頁的范圍我們在代碼里面設(shè)置的或者腳本,改變的樣式就是網(wǎng)頁范圍下的改變,也就是說,我們設(shè)置的大小是網(wǎng)頁的不是瀏覽器窗口的大小。 參考資料 首先,網(wǎng)頁大小與瀏覽器窗口大小從來都不是一回事!!!這尼瑪最近才明白,坑~ 所以,要知道以下常: 網(wǎng)頁的范圍我們在代碼里面設(shè)置的CSS或者js腳本,改變的樣式...
閱讀 1937·2021-11-23 09:51
閱讀 1250·2019-08-30 15:55
閱讀 1622·2019-08-30 15:44
閱讀 768·2019-08-30 14:11
閱讀 1150·2019-08-30 14:10
閱讀 921·2019-08-30 13:52
閱讀 2635·2019-08-30 12:50
閱讀 621·2019-08-29 15:04