AVt天堂网 手机版,亚洲va久久久噜噜噜久久4399,天天综合亚洲色在线精品,亚洲一级Av无码毛片久久精品

當(dāng)前位置:首頁 > 科技  > 軟件

CSS 漸變中的顏色空間和色相插值

來源: 責(zé)編: 時間:2023-08-09 23:03:22 313觀看
導(dǎo)讀在 CSS 中,我們可以很輕易的實現(xiàn)一個漸變,比如下面是一個從黃色到藍色的漸變。background: linear-gradient(to right, yellow, blue)效果如下:有沒有發(fā)現(xiàn)有什么問題?沒錯,在黃色和藍色的中間,出現(xiàn)了灰色,看著整體顏色非?!?/div>

5Ld28資訊網(wǎng)——每日最新資訊28at.com

在 CSS 中,我們可以很輕易的實現(xiàn)一個漸變,比如下面是一個從黃色到藍色的漸變。5Ld28資訊網(wǎng)——每日最新資訊28at.com

background: linear-gradient(to right, yellow, blue)

效果如下:5Ld28資訊網(wǎng)——每日最新資訊28at.com

5Ld28資訊網(wǎng)——每日最新資訊28at.com

有沒有發(fā)現(xiàn)有什么問題?5Ld28資訊網(wǎng)——每日最新資訊28at.com

沒錯,在黃色和藍色的中間,出現(xiàn)了灰色,看著整體顏色非?!芭K”,也就是設(shè)計中常說的 “灰色死亡地帶”(gray dead zone)5Ld28資訊網(wǎng)——每日最新資訊28at.com

5Ld28資訊網(wǎng)——每日最新資訊28at.com

有沒有辦法規(guī)避這種情況呢?這就需要用到今天要介紹的顏色插值算法[1]色相插值算法[2]了,快速了解一下吧5Ld28資訊網(wǎng)——每日最新資訊28at.com

一、顏色插值算法

顏色插值算法(color-interpolation-method)可以指定顏色用哪一種「色彩空間」用于插值算法,不同的色彩空間在計算顏色變化時表現(xiàn)不同,也就是插值算法不同。5Ld28資訊網(wǎng)——每日最新資訊28at.com

「在漸變中的體現(xiàn)就是顏色的過渡狀態(tài)」,也就是表示顏色是怎么從一種顏色過渡到另一種顏色的,想想看,我們只規(guī)定了黃色和藍色,為什么就能生成完整的漸變呢?中間的其他顏色怎么來的?就是通過插值算法得來的。5Ld28資訊網(wǎng)——每日最新資訊28at.com

雖然不用管具體是怎么計算的,但是現(xiàn)在我們可以手動去指定系統(tǒng)自帶的幾種色彩空間,那么,有哪些色彩空間呢?5Ld28資訊網(wǎng)——每日最新資訊28at.com

色彩空間可以分成兩種類型,分別是「直角坐標(biāo)顏色空間」(rectangular-color-space)和「極坐標(biāo)顏色空間」(polar-color-space),其實就是根據(jù)表示方式區(qū)分的。5Ld28資訊網(wǎng)——每日最新資訊28at.com

  • 直角坐標(biāo)顏色空間

可以取值 srgb、srgb-linear、lab、oklab、xyz、xyz-d50 或 xyz-d65 。5Ld28資訊網(wǎng)——每日最新資訊28at.com

  • 極坐標(biāo)顏色空間

可以取值 hsl、hwb、lch 或 oklch。5Ld28資訊網(wǎng)——每日最新資訊28at.com

下面是srgb和hsl兩種色彩空間的顏色模型5Ld28資訊網(wǎng)——每日最新資訊28at.com

截圖來自于 https://facelessuser.github.io/coloraide/colors/srgb/。5Ld28資訊網(wǎng)——每日最新資訊28at.com

5Ld28資訊網(wǎng)——每日最新資訊28at.com

這里就不多描述了,只需要知道有這樣一個概念就行了。5Ld28資訊網(wǎng)——每日最新資訊28at.com

二、漸變中的顏色空間

前面介紹了顏色插值算法以及色彩空間,有什么作用呢?5Ld28資訊網(wǎng)——每日最新資訊28at.com

別急,還記得文章開頭的例子嗎,可以在漸變中改變色彩空間,從而避免“灰色死亡區(qū)間”。5Ld28資訊網(wǎng)——每日最新資訊28at.com

在漸變中指定顏色空間也非常簡單,只需要在最前面加上in <color-space>就行了,例如5Ld28資訊網(wǎng)——每日最新資訊28at.com

background: linear-gradient( in srgb to right, yellow, blue)

效果如下,可以看到,漸變中默認的顏色空間就是srgb(MDN上有誤?)5Ld28資訊網(wǎng)——每日最新資訊28at.com

5Ld28資訊網(wǎng)——每日最新資訊28at.com

我們換一個色彩空間,比如極坐標(biāo)中的hsl。5Ld28資訊網(wǎng)——每日最新資訊28at.com

background: linear-gradient( in hsl to right, yellow, blue)

效果如下,完全變成了不同的漸變效果(是不是已經(jīng)沒有灰色了?)5Ld28資訊網(wǎng)——每日最新資訊28at.com

5Ld28資訊網(wǎng)——每日最新資訊28at.com

這里做了一個在線演示,可以自行選擇色彩空間,方便觀察不同的效果。5Ld28資訊網(wǎng)——每日最新資訊28at.com

圖片5Ld28資訊網(wǎng)——每日最新資訊28at.com

  • CSS color-space (juejin.cn)[3]
  • CSS color-space (codepen.io)[4]

三、色相插值算法

大家不知有沒有注意到,前面的極坐標(biāo)顏色空間中,每個值都包含了一個字母:「h」。5Ld28資訊網(wǎng)——每日最新資訊28at.com

在色彩空間中,「h」表示的就是「色相」(hue),也叫做「色調(diào)」。5Ld28資訊網(wǎng)——每日最新資訊28at.com

色相指的是色彩的外相,是在不同波長的光照射下,人眼所感覺不同的顏色。5Ld28資訊網(wǎng)——每日最新資訊28at.com

這也是最直觀的顏色表示方法,具體的規(guī)則是以紅色為0度(360度);黃色為60度;綠色為120度;青色為180度;藍色為240度;洋紅色為300度,最后再回到紅色360度,形成了一個完整的環(huán)。5Ld28資訊網(wǎng)——每日最新資訊28at.com

5Ld28資訊網(wǎng)——每日最新資訊28at.com

既然是一個環(huán)形,就涉及到旋轉(zhuǎn)方向的問題了,也就是「色相插值算法」(hue-interpolation-method),它可以規(guī)定色相的指向,一共有 4 個值,分別是5Ld28資訊網(wǎng)——每日最新資訊28at.com

  • shorter:短?。踊。J)
  • longer:長弧(優(yōu)?。?/li>
  • increasing:順時針弧
  • decreasing:逆時針弧

用法是這樣的,在色彩空間后跟上就行了。5Ld28資訊網(wǎng)——每日最新資訊28at.com

in hsl shorter huein hsl longer huein hsl increasing huein hsl decreasing hue

乍一看好像不知什么意思,這里舉個例子,比如有個紅色到黃色的漸變,用 hsl色彩空間。5Ld28資訊網(wǎng)——每日最新資訊28at.com

background: linear-gradient( in hsl to right, red, yellow)

我們直接在色相環(huán)上找到兩個顏色的位置。5Ld28資訊網(wǎng)——每日最新資訊28at.com

5Ld28資訊網(wǎng)——每日最新資訊28at.com

默認情況下,漸變會找“近路”,也就是找那邊比較短的弧(shorter),因此效果是這樣的。5Ld28資訊網(wǎng)——每日最新資訊28at.com

5Ld28資訊網(wǎng)——每日最新資訊28at.com

如果設(shè)置為longer,它就會繞“遠路”,找比較長的弧,如下:5Ld28資訊網(wǎng)——每日最新資訊28at.com

5Ld28資訊網(wǎng)——每日最新資訊28at.com

然后是increasing,增加,表示順時針方向,不管弧線是長是短,如下:5Ld28資訊網(wǎng)——每日最新資訊28at.com

5Ld28資訊網(wǎng)——每日最新資訊28at.com

最后是decreasing,減少,表示逆時針方向,不管弧線是長是短,如下:5Ld28資訊網(wǎng)——每日最新資訊28at.com

5Ld28資訊網(wǎng)——每日最新資訊28at.com

相信大家都明白了吧!5Ld28資訊網(wǎng)——每日最新資訊28at.com

下面是一個在線顏色,可以觀察每個值的差異。5Ld28資訊網(wǎng)——每日最新資訊28at.com

5Ld28資訊網(wǎng)——每日最新資訊28at.com

  • CSS hue-interpolation (juejin.cn)[5]
  • CSS hue-interpolation (codepen.io)[6]

四、色相插值的特殊用途

色相插值還有一個非常實用的用途。5Ld28資訊網(wǎng)——每日最新資訊28at.com

例如,我們只用一個顏色實現(xiàn)一個漸變。5Ld28資訊網(wǎng)——每日最新資訊28at.com

background:  linear-gradient(to right, red 0 0)

這樣可以得到一個紅色的漸變。5Ld28資訊網(wǎng)——每日最新資訊28at.com

5Ld28資訊網(wǎng)——每日最新資訊28at.com

其實就是紅色→紅色的漸變。5Ld28資訊網(wǎng)——每日最新資訊28at.com

現(xiàn)在,我們可以改變色相插值,讓整個色相環(huán)轉(zhuǎn)一圈,也就是取較長的?。╨onger)。5Ld28資訊網(wǎng)——每日最新資訊28at.com

background:  linear-gradient(in hsl longer hue to right, red 0 0)

效果如下:5Ld28資訊網(wǎng)——每日最新資訊28at.com

5Ld28資訊網(wǎng)——每日最新資訊28at.com

看到?jīng)],僅僅只有一個顏色,就完整的實現(xiàn)所有顏色的漸變,是不是非常方便?5Ld28資訊網(wǎng)——每日最新資訊28at.com

如果用錐形漸變(conic-gradient),就能輕易實現(xiàn)一個色相環(huán),無需定義一堆中間顏色。5Ld28資訊網(wǎng)——每日最新資訊28at.com

background: conic-gradient(in hsl longer hue, red 0 0)

效果如下:5Ld28資訊網(wǎng)——每日最新資訊28at.com

5Ld28資訊網(wǎng)——每日最新資訊28at.com

這下實現(xiàn)顏色選擇器又有新的方式了~5Ld28資訊網(wǎng)——每日最新資訊28at.com

你可以查看以下鏈接訪問:5Ld28資訊網(wǎng)——每日最新資訊28at.com

  • CSS color-pane (juejin.cn)[7]
  • CSS color-pane (codepen.io)[8]

五、兼容性和總結(jié)

這個是新推出的特性,兼容性要求 Chrome 111+,完整如下:5Ld28資訊網(wǎng)——每日最新資訊28at.com

5Ld28資訊網(wǎng)——每日最新資訊28at.com

不兼容也沒有關(guān)系,有 postcss 可以進行轉(zhuǎn)換。5Ld28資訊網(wǎng)——每日最新資訊28at.com

https://github.com/csstools/postcss-plugins/tree/main/plugins/postcss-gradients-interpolation-method。5Ld28資訊網(wǎng)——每日最新資訊28at.com


5Ld28資訊網(wǎng)——每日最新資訊28at.com

其實就是提前將顏色中間的差值計算好,轉(zhuǎn)換成傳統(tǒng)的 CSS。5Ld28資訊網(wǎng)——每日最新資訊28at.com

.example {	background-image: linear-gradient(in oklch, hsl(0deg 85% 75%) 0%, hsl(180deg 80% 65%) 100%);}:root {	--background-image: linear-gradient(in oklab, hsl(96, 42%, 24%) 0%, hsl(302, 67%, 25%) 100%);}/* becomes */.example {	background-image: linear-gradient(rgb(245, 137, 137) 0%, rgb(248, 146, 114), rgb(244, 158, 94), rgb(235, 171, 82), rgb(220, 185, 81), rgb(201, 199, 95), rgb(177, 211, 118), rgb(151, 221, 146), rgb(125, 229, 177), rgb(103, 235, 208), rgb(94, 237, 237) 100%);	background-image: linear-gradient(in oklch, hsl(0deg 85% 75%) 0%, hsl(180deg 80% 65%) 100%);}:root {	--background-image: linear-gradient(rgb(56, 87, 35) 0%, rgb(64, 83, 46), rgb(70, 79, 54), rgb(76, 74, 62), rgb(82, 69, 68), rgb(86, 64, 75), rgb(91, 58, 81), rgb(95, 51, 87), rgb(99, 44, 93), rgb(103, 34, 98), rgb(106, 21, 104) 100%);}@supports (background: linear-gradient(in oklch, red 0%, red 0% 1%, red 2%)) {:root {	--background-image: linear-gradient(in oklab, hsl(96, 42%, 24%) 0%, hsl(302, 67%, 25%) 100%);}}

由于需要提前計算,因此這個插件不支持 CSS 變量,酌情使用!5Ld28資訊網(wǎng)——每日最新資訊28at.com

下面來總結(jié)一下5Ld28資訊網(wǎng)——每日最新資訊28at.com

  • 普通的漸變很容易出現(xiàn)灰色,讓顏色整體看起來很臟。
  • 顏色插值算法可以指定顏色用哪一種「色彩空間」用于插值算法,在漸變中的體現(xiàn)就是顏色的過渡狀態(tài)。
  • 色彩空間可以分成兩種類型,分別是「直角坐標(biāo)顏色空間」(rectangular-color-space)和「極坐標(biāo)顏色空間」(polar-color-space)。
  • 通過改變漸變的色彩空間,可以避免灰色區(qū)間的出現(xiàn)。
  • 色相指的是色彩的外相,是在不同波長的光照射下,人眼所感覺不同的顏色,是最直觀的顏色表示方式。
  • 色相以紅色為0度(360度);黃色為60度;綠色為120度;青色為180度;藍色為240度;洋紅色為300度,最后再回到紅色360度,形成了一個完整的環(huán)。
  • 色相插值算法(hue-interpolation-method)可以規(guī)定色相的指向,有 4 個關(guān)鍵詞。
  • shorter表示比較短的?。踊。?。
  • longer表示比較長的?。▋?yōu)弧)。
  • increasing表示增加,順時針方向。
  • decreasing表示減少,逆時針方向。
  • 利用色相插值還可以簡單反向?qū)崿F(xiàn)色相環(huán)效果。

對了,顏色插值算法還可以用在color-mix()[9] 中,類似于這樣。5Ld28資訊網(wǎng)——每日最新資訊28at.com

background-color: color-mix(    in hsl longer hue,    hsl(10 100% 50%),    hsl(60 100% 50%)  );

[1]顏色插值空間: https://developer.mozilla.org/zh-CN/docs/Web/CSS/color-interpolation-method。5Ld28資訊網(wǎng)——每日最新資訊28at.com

[2]色相插值算法: https://developer.mozilla.org/zh-CN/docs/Web/CSS/hue-interpolation-method。5Ld28資訊網(wǎng)——每日最新資訊28at.com

[3]CSS color-space (juejin.cn): https://code.juejin.cn/pen/7263747493115265061。5Ld28資訊網(wǎng)——每日最新資訊28at.com

[4]CSS color-space (codepen.io): https://codepen.io/xboxyan/pen/PoxLarG。5Ld28資訊網(wǎng)——每日最新資訊28at.com

[5]CSS hue-interpolation (juejin.cn): https://code.juejin.cn/pen/7263767800723734569。5Ld28資訊網(wǎng)——每日最新資訊28at.com

[6]CSS hue-interpolation (codepen.io): https://codepen.io/xboxyan/pen/XWyGYwx。5Ld28資訊網(wǎng)——每日最新資訊28at.com

[7]CSS color-pane (juejin.cn): https://code.juejin.cn/pen/7263784258894823439。5Ld28資訊網(wǎng)——每日最新資訊28at.com

[8]CSS color-pane (codepen.io): https://codepen.io/xboxyan/pen/QWJoxRq。5Ld28資訊網(wǎng)——每日最新資訊28at.com

[9]color-mix(): https://developer.mozilla.org/en-US/docs/Web/CSS/color_value/color-mix。5Ld28資訊網(wǎng)——每日最新資訊28at.com

本文鏈接:http://www.tebozhan.com/showinfo-26-5178-0.htmlCSS 漸變中的顏色空間和色相插值

聲明:本網(wǎng)頁內(nèi)容旨在傳播知識,若有侵權(quán)等問題請及時與本網(wǎng)聯(lián)系,我們將在第一時間刪除處理。郵件:2376512515@qq.com

上一篇: TypeScript 裝飾器實用指南!

下一篇: 五分鐘幫您理解Linux網(wǎng)絡(luò)核心知識點——Socket和Epoll

標(biāo)簽:
  • 熱門焦點
  • 石頭智能洗地機A10 Plus體驗:雙向自清潔治好了我的懶癌

    一、前言和介紹專為家庭請假懶人而生的石頭科技在近日又帶來了自己的全新旗艦新品,石頭智能洗地機A10 Plus。從這個產(chǎn)品名上就不難看出,這次石頭推出的并不是常見的掃地機器
  • 轎車從天而降電動車主被撞身亡 超速搶道所致:現(xiàn)場視頻讓網(wǎng)友吵翻

    近日,上海青浦區(qū)法院判決轎車從天而降電動車主被撞身亡案,轎車車主被判有期徒刑一年。案件顯示當(dāng)時男子駕駛轎車在上海某路段行駛,前車忽然轉(zhuǎn)彎提速超車,
  • 線程通訊的三種方法!通俗易懂

    線程通信是指多個線程之間通過某種機制進行協(xié)調(diào)和交互,例如,線程等待和通知機制就是線程通訊的主要手段之一。 在 Java 中,線程等待和通知的實現(xiàn)手段有以下幾種方式:Object 類下
  • K8S | Service服務(wù)發(fā)現(xiàn)

    一、背景在微服務(wù)架構(gòu)中,這里以開發(fā)環(huán)境「Dev」為基礎(chǔ)來描述,在K8S集群中通常會開放:路由網(wǎng)關(guān)、注冊中心、配置中心等相關(guān)服務(wù),可以被集群外部訪問;圖片對于測試「Tes」環(huán)境或者
  • 十個簡單但很有用的Python裝飾器

    裝飾器(Decorators)是Python中一種強大而靈活的功能,用于修改或增強函數(shù)或類的行為。裝飾器本質(zhì)上是一個函數(shù),它接受另一個函數(shù)或類作為參數(shù),并返回一個新的函數(shù)或類。它們通常用
  • 之家push系統(tǒng)迭代之路

    前言在這個信息爆炸的互聯(lián)網(wǎng)時代,能夠及時準確獲取信息是當(dāng)今社會要解決的關(guān)鍵問題之一。隨著之家用戶體量和內(nèi)容規(guī)模的不斷增大,傳統(tǒng)的靠"主動拉"獲取信息的方式已不能滿足用
  • 中國家電海外掘金正當(dāng)時|出海專題

    作者|吳南南編輯|胡展嘉運營|陳佳慧出品|零態(tài)LT(ID:LingTai_LT)2023年,出海市場戰(zhàn)況空前,中國創(chuàng)業(yè)者在海外紛紛摩拳擦掌,以期能夠把中國的商業(yè)模式、創(chuàng)業(yè)理念、戰(zhàn)略打法輸出海外,他們依
  • 造車兩年股價跌六成,小米的估值邏輯變了嗎?

    如果從小米官宣造車后的首個交易日起持有小米集團的股票,那么截至2023年上半年最后一個交易日,投資者將浮虧59.16%,同區(qū)間的恒生科技指數(shù)跌幅為52.78%
  • 質(zhì)感不錯!OPPO K11渲染圖曝光:旗艦IMX890傳感器首次下放

    一直以來,OPPO K系列機型都保持著較為均衡的產(chǎn)品體驗,歷來都是2K價位的明星機型,去年推出的OPPO K10和OPPO K10 Pro兩款機型憑借各自的出色配置,堪稱有
Top