線性漸變關(guān)鍵字 - Linear Gradient Keywords

CSS中的linear gradient(線性漸變)可能會(huì)導(dǎo)致各種各樣的怪異和怪異的結(jié)果期揪。其中的一些怪異在于它的語法秉宿。

我事先說明下:我在這里討論的一些內(nèi)容并沒有被廣泛的實(shí)施,關(guān)于這些內(nèi)容甚至都沒有板上釘釘斜做。雖然接近趁尼,但是仍然可能會(huì)有變動(dòng)。即使不做出變動(dòng)催蝗,這也不是一篇“你可以立刻使用的消息”文章。就像 我所創(chuàng)作的如此多的文章 那樣育特,該篇文章更像是對(duì)CSS中某個(gè)小角落的溜達(dá)生逸,僅僅是查看 我們將來可能看到的內(nèi)容。

盡管線性漸變表面上看起來復(fù)雜,但是它還是相當(dāng)簡(jiǎn)單的槽袄。你定義一個(gè)漸變的方向,接著列出你所需要的color stops(color stops的數(shù)量你可以隨意指定锋谐,一般都是>=2個(gè))遍尺。在指定線性漸變的過程中,你實(shí)際上使用文本描繪了一張圖片涮拗,某種程度上類似于SVG所做的那樣乾戏。這是個(gè)要謹(jǐn)記的關(guān)鍵點(diǎn):linear gradient(或radial gradient)是一張圖片,就像 任意的GIF或PNG圖片 那樣三热。這也就意味著:你可以通過使用多個(gè)background語法 在某個(gè)元素的背景中 混合使用 ‘位圖(數(shù)字圖片鼓择,如.gif, .jpg, and .bmp.)和漸變圖片’。

讓我們回到漸變就漾。這兒有一張非常簡(jiǎn)單的漸變圖片:

linear-gradient(45deg, red, blue)

45度角定義了漸變線的方向呐能,漸變線就是定義‘漸變前行方向’的那條有方向的線。漸變線通常穿過背景區(qū)域的中心抑堡,漸變線的方向是由你聲明的摆出,也就是作者。在這個(gè)例子中首妖,漸變線的方向被聲明為‘指向45度角的方向’偎漫。red, bluecolor stops。既然red, blue沒有定義stop distances有缆,該距離被默認(rèn)為red 0%, blue 100%象踊。這也就意味著一個(gè)由紅到藍(lán)的漸變,0%距離的顏色為純紅棚壁,100%距離的顏色為純藍(lán)杯矩,0~100%距離的顏色為混合色,該漸變沿著漸近線前進(jìn)灌曙。

你也可以創(chuàng)建hard stops:

linear-gradient(45deg, green 50%, lightblue 50%)

上面的漸變會(huì)讓你得到圖片1中展示的結(jié)果菊碟,在該圖中我已經(jīng)添加了箭頭來表明漸近線的方向,也添加了背景區(qū)域的中心點(diǎn)在刺。在漸變中的每個(gè)條紋都是垂直于漸變線的逆害;這也就是‘為什么2種顏色在50%距離的邊界 會(huì)垂直于 漸近線’。
Figure 1

http://meyerweb.com/pix/2012/04gradients01.gif

需要指出的是:線性漸變的角度是羅盤角(有別于數(shù)學(xué)上的角度)蚣驼。羅盤角是以背景區(qū)域的中心點(diǎn)為中心魄幕,豎直向上的角度為0度。順時(shí)針角度增加颖杏,逆時(shí)針角度為負(fù)纯陨。當(dāng)然你也可以使用‘方向關(guān)鍵字’,這里主要有2種類型的'方向關(guān)鍵字'。
羅盤角

http://upload.wikimedia.org/wikipedia/commons/thumb/8/8e/Compass_Card.png/300px-Compass_Card.png
http://upload.wikimedia.org/wikipedia/commons/thumb/8/8e/Compass_Card.png/300px-Compass_Card.png

第一種使用關(guān)鍵字的方式是僅僅聲明一個(gè)方向翼抠,top, bottom, right, left中的某2個(gè)任意搭配咙轩。在這個(gè)例子中 令人恐慌的地方 在于:你聲明了漸近線是從哪個(gè)方向起始的,不是漸近線指向的方向阴颖;也就是 你指定了漸近線的起始位置而不是目標(biāo)方向活喊。所以,如果你想要你的漸進(jìn)方向由從左下角向右上角量愧,你實(shí)際上要聲明的是bottom left:

linear-gradient(bottom left, green 50%, lightblue 50%)

但是bottom left并不等于45度钾菊,除非背景區(qū)域是正方形。如果背景區(qū)域不是正方形偎肃,那么漸近線就從背景區(qū)域的一個(gè)角指向?qū)巧诽蹋⑶疫吔缇€是垂直于漸近線的,就像圖2展示的那樣累颂。同樣的滞详,為了闡述清楚,我也添加了漸近線和中心點(diǎn)喘落。
Figure 2

http://meyerweb.com/pix/2012/04gradients02.gif

當(dāng)然茵宪,這就意味著:如果背景區(qū)域在任意方向的尺寸(寬, 高)發(fā)生改變,那么漸近線的角度也會(huì)發(fā)生改變瘦棋。如果背景區(qū)域變得更高或者更窄稀火,漸近線會(huì)逆時(shí)針旋轉(zhuǎn);變得更矮或者更寬赌朋,漸近線會(huì)順時(shí)針旋轉(zhuǎn)凰狞。這可能正是你所想要的。不同于角度值沛慢,角度值 在背景區(qū)域的尺寸發(fā)生改變時(shí) 漸近線是永遠(yuǎn)不會(huì)旋轉(zhuǎn)的赡若。

第二種使用關(guān)鍵字的方式 看起來是類似的,但是會(huì)有截然不同的結(jié)果团甲。你同樣可以使用top/bottom/left/right某2個(gè)的任意搭配逾冬,但是你需要額外添加關(guān)鍵字to,像下面這樣:

linear-gradient(to top right, green 50%, lightblue 50%)

在這個(gè)例子中躺苦,你在聲明漸近線的目標(biāo)位置身腻,并不是起始位置,這是要清楚的匹厘;畢竟嘀趟,你聲明的是to top right。然而愈诚,當(dāng)你使用這種方式時(shí)她按,你不是指定背景區(qū)域的右上角牛隅。你指定了一個(gè)大致的向上向右的方向。你可以查看在圖3中查看到上例的結(jié)果酌泰;同樣地媒佣,也添加了漸近線。
Figure 3

http://meyerweb.com/pix/2012/04gradients03.gif

注意這個(gè)hard-stop邊界線宫莱,它實(shí)際上從左上角延伸到了右下角(沒有一個(gè)是右上角)丈攒。這是因?yàn)椋涸陉P(guān)鍵字前加上to,你就觸發(fā)了所謂的magic corners行為授霸。當(dāng)你這樣做的時(shí)候,不管背景區(qū)域的尺寸如何改變际插,邊界線總是從左上角延伸到右下角碘耳。這些是‘magic corners’。因此框弛,漸近線并不是指向背景區(qū)域的右上角辛辨,除非背景區(qū)域是完美地正方形 - 此時(shí)漸近線才指向背景區(qū)域的右上角的象限(數(shù)學(xué)中的第一象限)。顯然瑟枫,術(shù)語magic quadrants不比magic corners更合理斗搞。

改變背景區(qū)域的尺寸同樣會(huì)使?jié)u近線 旋轉(zhuǎn)。減少背景區(qū)域的高度 或者 增加背景區(qū)域的寬度 會(huì)使邊界線逆時(shí)針旋轉(zhuǎn)(同樣的漸近線也會(huì)逆時(shí)針旋轉(zhuǎn))慷妙;增加高度 或者 減少寬度 會(huì)使邊界線順時(shí)針旋轉(zhuǎn)(漸近線順時(shí)針旋轉(zhuǎn))僻焚。唯一的不同在于起始狀況。

除此以外膝擂,如果你想要使用關(guān)鍵字 來使 漸近線指向背景區(qū)域的某個(gè)角虑啤,像圖2中的那樣,不要指定目標(biāo)位置(而是應(yīng)該指定起始位置)架馋。同樣地狞山,你也不能聲明一個(gè)起始象限。讓漸近線從某個(gè)角延伸到對(duì)角 意味著:要聲明漸近線的起始位置(圖2)叉寂。如果你想要得到magic corners效果(50%位置的color-stop line從某個(gè)角延伸到對(duì)角萍启,即邊界線從某個(gè)角到對(duì)角):要聲明目標(biāo)象限(圖3)。

關(guān)于實(shí)際的支持:截止到‘寫這篇文章’為止屏鳍,只有Firefox和Opera支持magic corners勘纯。所有目前的瀏覽器 - 包括IE10 - 支持角度和non-magic關(guān)鍵字,也就是說Opera和Firefox支持2種方式的關(guān)鍵字孕蝉。

這是目前linear gradient有關(guān)事情的狀態(tài)屡律。我有興趣知道:你對(duì)于各種各樣的關(guān)鍵字和行為是如何思考的 - (我知道 理解這2種方式 在開始時(shí) 是有些困難的,因?yàn)?中方式有著截然不同的效果 看起來讓人困惑)降淮。你說呢超埋?

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末搏讶,一起剝皮案震驚了整個(gè)濱河市,隨后出現(xiàn)的幾起案子霍殴,更是在濱河造成了極大的恐慌媒惕,老刑警劉巖,帶你破解...
    沈念sama閱讀 206,723評(píng)論 6 481
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件来庭,死亡現(xiàn)場(chǎng)離奇詭異妒蔚,居然都是意外死亡,警方通過查閱死者的電腦和手機(jī)月弛,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 88,485評(píng)論 2 382
  • 文/潘曉璐 我一進(jìn)店門肴盏,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人帽衙,你說我怎么就攤上這事菜皂。” “怎么了厉萝?”我有些...
    開封第一講書人閱讀 152,998評(píng)論 0 344
  • 文/不壞的土叔 我叫張陵恍飘,是天一觀的道長(zhǎng)。 經(jīng)常有香客問我谴垫,道長(zhǎng)章母,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 55,323評(píng)論 1 279
  • 正文 為了忘掉前任翩剪,我火速辦了婚禮乳怎,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘肢专。我一直安慰自己舞肆,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 64,355評(píng)論 5 374
  • 文/花漫 我一把揭開白布博杖。 她就那樣靜靜地躺著椿胯,像睡著了一般。 火紅的嫁衣襯著肌膚如雪剃根。 梳的紋絲不亂的頭發(fā)上哩盲,一...
    開封第一講書人閱讀 49,079評(píng)論 1 285
  • 那天,我揣著相機(jī)與錄音狈醉,去河邊找鬼廉油。 笑死,一個(gè)胖子當(dāng)著我的面吹牛苗傅,可吹牛的內(nèi)容都是我干的抒线。 我是一名探鬼主播,決...
    沈念sama閱讀 38,389評(píng)論 3 400
  • 文/蒼蘭香墨 我猛地睜開眼渣慕,長(zhǎng)吁一口氣:“原來是場(chǎng)噩夢(mèng)啊……” “哼嘶炭!你這毒婦竟也來了抱慌?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 37,019評(píng)論 0 259
  • 序言:老撾萬榮一對(duì)情侶失蹤眨猎,失蹤者是張志新(化名)和其女友劉穎抑进,沒想到半個(gè)月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體睡陪,經(jīng)...
    沈念sama閱讀 43,519評(píng)論 1 300
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡寺渗,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 35,971評(píng)論 2 325
  • 正文 我和宋清朗相戀三年,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了兰迫。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片信殊。...
    茶點(diǎn)故事閱讀 38,100評(píng)論 1 333
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡,死狀恐怖汁果,靈堂內(nèi)的尸體忽然破棺而出鸡号,到底是詐尸還是另有隱情,我是刑警寧澤须鼎,帶...
    沈念sama閱讀 33,738評(píng)論 4 324
  • 正文 年R本政府宣布,位于F島的核電站府蔗,受9級(jí)特大地震影響晋控,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜姓赤,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 39,293評(píng)論 3 307
  • 文/蒙蒙 一赡译、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧不铆,春花似錦蝌焚、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,289評(píng)論 0 19
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)。三九已至劳坑,卻和暖如春毕谴,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背距芬。 一陣腳步聲響...
    開封第一講書人閱讀 31,517評(píng)論 1 262
  • 我被黑心中介騙來泰國(guó)打工涝开, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人框仔。 一個(gè)月前我還...
    沈念sama閱讀 45,547評(píng)論 2 354
  • 正文 我出身青樓舀武,卻偏偏與公主長(zhǎng)得像,于是被迫代替她去往敵國(guó)和親离斩。 傳聞我的和親對(duì)象是個(gè)殘疾皇子银舱,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 42,834評(píng)論 2 345

推薦閱讀更多精彩內(nèi)容

  • 概述 今天我們來探究一下android的樣式瘪匿。其實(shí),幾乎所有的控件都可以使用 background屬性去引用自定義...
    CokeNello閱讀 4,813評(píng)論 1 19
  • 今天和高中的朋友聊天纵朋,覺得人真的會(huì)隨著時(shí)間柿顶、地點(diǎn)、環(huán)境操软、閱歷而有所不同嘁锯。她一直是一個(gè)神經(jīng)大條,粗枝大葉聂薪,做事...
    大白MAx閱讀 195評(píng)論 0 0
  • 懷疑是晚上睡得太晚家乘,所以次日注意力不集中,且精神狀態(tài)不佳藏澳,顯得焦慮緊張仁锯。 所以,我要嚴(yán)格要求自己翔悠,無論白天做的怎么...
    hi滾滾閱讀 167評(píng)論 0 0
  • 童年的軌跡就像一條蜿蜒的小河业崖,伴隨著我的足跡,一直向前蓄愁。而那些美好的回憶双炕,就像河流中穿梭的小魚,不時(shí)吐出的美...
    笑丁媽閱讀 784評(píng)論 0 6
  • 作者:Ole Begemann撮抓,原文鏈接妇斤,原文日期:2016-04-29譯者:saitjr;校對(duì):靛青K丹拯;定稿:n...
    梁杰_numbbbbb閱讀 2,015評(píng)論 0 1