日韩成人免费在线_国产成人一二_精品国产免费人成电影在线观..._日本一区二区三区久久久久久久久不

當前位置:首頁 > 科技  > 軟件

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

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

1WS28資訊網——每日最新資訊28at.com

在 CSS 中,我們可以很輕易的實現一個漸變,比如下面是一個從黃色到藍色的漸變。1WS28資訊網——每日最新資訊28at.com

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

效果如下:1WS28資訊網——每日最新資訊28at.com

1WS28資訊網——每日最新資訊28at.com

有沒有發現有什么問題?1WS28資訊網——每日最新資訊28at.com

沒錯,在黃色和藍色的中間,出現了灰色,看著整體顏色非常“臟”,也就是設計中常說的 “灰色死亡地帶”(gray dead zone)1WS28資訊網——每日最新資訊28at.com

1WS28資訊網——每日最新資訊28at.com

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

一、顏色插值算法

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

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

雖然不用管具體是怎么計算的,但是現在我們可以手動去指定系統自帶的幾種色彩空間,那么,有哪些色彩空間呢?1WS28資訊網——每日最新資訊28at.com

色彩空間可以分成兩種類型,分別是「直角坐標顏色空間」(rectangular-color-space)和「極坐標顏色空間」(polar-color-space),其實就是根據表示方式區分的。1WS28資訊網——每日最新資訊28at.com

  • 直角坐標顏色空間

可以取值 srgb、srgb-linear、lab、oklab、xyz、xyz-d50 或 xyz-d65 。1WS28資訊網——每日最新資訊28at.com

  • 極坐標顏色空間

可以取值 hsl、hwb、lch 或 oklch。1WS28資訊網——每日最新資訊28at.com

下面是srgb和hsl兩種色彩空間的顏色模型1WS28資訊網——每日最新資訊28at.com

截圖來自于 https://facelessuser.github.io/coloraide/colors/srgb/。1WS28資訊網——每日最新資訊28at.com

1WS28資訊網——每日最新資訊28at.com

這里就不多描述了,只需要知道有這樣一個概念就行了。1WS28資訊網——每日最新資訊28at.com

二、漸變中的顏色空間

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

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

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

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

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

1WS28資訊網——每日最新資訊28at.com

我們換一個色彩空間,比如極坐標中的hsl。1WS28資訊網——每日最新資訊28at.com

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

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

1WS28資訊網——每日最新資訊28at.com

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

1WS28資訊網——每日最新資訊28at.com

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

  • shorter:短弧(劣弧)(默認)
  • longer:長弧(優弧)
  • increasing:順時針弧
  • decreasing:逆時針弧

用法是這樣的,在色彩空間后跟上就行了。1WS28資訊網——每日最新資訊28at.com

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

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

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

我們直接在色相環上找到兩個顏色的位置。1WS28資訊網——每日最新資訊28at.com

1WS28資訊網——每日最新資訊28at.com

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

1WS28資訊網——每日最新資訊28at.com

如果設置為longer,它就會繞“遠路”,找比較長的弧,如下:1WS28資訊網——每日最新資訊28at.com

1WS28資訊網——每日最新資訊28at.com

然后是increasing,增加,表示順時針方向,不管弧線是長是短,如下:1WS28資訊網——每日最新資訊28at.com

1WS28資訊網——每日最新資訊28at.com

最后是decreasing,減少,表示逆時針方向,不管弧線是長是短,如下:1WS28資訊網——每日最新資訊28at.com

1WS28資訊網——每日最新資訊28at.com

相信大家都明白了吧!1WS28資訊網——每日最新資訊28at.com

下面是一個在線顏色,可以觀察每個值的差異。1WS28資訊網——每日最新資訊28at.com

1WS28資訊網——每日最新資訊28at.com

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

四、色相插值的特殊用途

色相插值還有一個非常實用的用途。1WS28資訊網——每日最新資訊28at.com

例如,我們只用一個顏色實現一個漸變。1WS28資訊網——每日最新資訊28at.com

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

這樣可以得到一個紅色的漸變。1WS28資訊網——每日最新資訊28at.com

1WS28資訊網——每日最新資訊28at.com

其實就是紅色→紅色的漸變。1WS28資訊網——每日最新資訊28at.com

現在,我們可以改變色相插值,讓整個色相環轉一圈,也就是取較長的弧(longer)。1WS28資訊網——每日最新資訊28at.com

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

效果如下:1WS28資訊網——每日最新資訊28at.com

1WS28資訊網——每日最新資訊28at.com

看到沒,僅僅只有一個顏色,就完整的實現所有顏色的漸變,是不是非常方便?1WS28資訊網——每日最新資訊28at.com

如果用錐形漸變(conic-gradient),就能輕易實現一個色相環,無需定義一堆中間顏色。1WS28資訊網——每日最新資訊28at.com

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

效果如下:1WS28資訊網——每日最新資訊28at.com

1WS28資訊網——每日最新資訊28at.com

這下實現顏色選擇器又有新的方式了~1WS28資訊網——每日最新資訊28at.com

你可以查看以下鏈接訪問:1WS28資訊網——每日最新資訊28at.com

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

五、兼容性和總結

這個是新推出的特性,兼容性要求 Chrome 111+,完整如下:1WS28資訊網——每日最新資訊28at.com

1WS28資訊網——每日最新資訊28at.com

不兼容也沒有關系,有 postcss 可以進行轉換。1WS28資訊網——每日最新資訊28at.com

https://github.com/csstools/postcss-plugins/tree/main/plugins/postcss-gradients-interpolation-method。1WS28資訊網——每日最新資訊28at.com


1WS28資訊網——每日最新資訊28at.com

其實就是提前將顏色中間的差值計算好,轉換成傳統的 CSS。1WS28資訊網——每日最新資訊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 變量,酌情使用!1WS28資訊網——每日最新資訊28at.com

下面來總結一下1WS28資訊網——每日最新資訊28at.com

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

對了,顏色插值算法還可以用在color-mix()[9] 中,類似于這樣。1WS28資訊網——每日最新資訊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。1WS28資訊網——每日最新資訊28at.com

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

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

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

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

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

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

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

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

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

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

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

下一篇: 五分鐘幫您理解Linux網絡核心知識點——Socket和Epoll

標簽:
  • 熱門焦點
Top 日韩成人免费在线_国产成人一二_精品国产免费人成电影在线观..._日本一区二区三区久久久久久久久不
国产主播一区二区三区四区| 欧美另类在线观看| 亚洲男人的天堂在线| 亚洲欧美另类在线| 欧美中文字幕视频在线观看| 噜噜噜躁狠狠躁狠狠精品视频| 美女脱光内衣内裤视频久久网站| 欧美成人高清| 欧美午夜无遮挡| 国产午夜精品久久久久久免费视 | 欧美午夜久久| 国产欧美精品在线播放| 在线观看欧美| 一本到12不卡视频在线dvd| 午夜精品一区二区三区电影天堂| 久久久欧美精品sm网站| 欧美精品一线| 国产午夜精品麻豆| 亚洲精品一区在线观看| 欧美一级欧美一级在线播放| 蜜桃av噜噜一区二区三区| 欧美日韩一区自拍| 国内激情久久| 日韩午夜剧场| 久久久精品动漫| 欧美日韩国产成人在线观看| 国产一区香蕉久久| 一区二区三区精品久久久| 欧美在线亚洲| 欧美日韩国产精品一区二区亚洲| 国产区亚洲区欧美区| 亚洲精品孕妇| 久久久久欧美| 国产精品美女久久久久久2018| 在线观看中文字幕不卡| 亚洲在线一区二区| 欧美二区视频| 国模 一区 二区 三区| 在线亚洲成人| 欧美1区3d| 国产一区在线观看视频| 99精品国产高清一区二区| 久久精品二区| 国产精品毛片高清在线完整版| 亚洲黄色在线看| 欧美在线观看日本一区| 国产精品a级| 91久久综合| 久久综合狠狠综合久久综合88| 国产精品久久一区二区三区| 亚洲激情视频网| 久久久精品日韩欧美| 国产精品久在线观看| 亚洲精品久久久一区二区三区| 欧美在线999| 国产精品久久中文| 一区二区电影免费在线观看| 欧美aaa级| 影音先锋久久| 久久精品免费看| 国产欧美日韩一区| 亚洲欧美国产va在线影院| 欧美日韩亚洲一区| 亚洲精品免费电影| 免费亚洲电影| 18成人免费观看视频| 久久久亚洲影院你懂的| 国产最新精品精品你懂的| 先锋影音久久| 国产精品一区久久久| 亚洲视频在线播放| 欧美日韩一区二区三区高清| 亚洲精品久久久久久一区二区| 美腿丝袜亚洲色图| 在线精品国精品国产尤物884a| 久久久久久久综合色一本| 国产亚洲一区二区三区在线观看| 午夜视频久久久| 国产精品久久久久av| 亚洲天堂网站在线观看视频| 欧美视频在线观看| 在线亚洲一区二区| 欧美日韩在线一区二区| 在线视频日韩精品| 国产精品海角社区在线观看| 亚洲视频在线免费观看| 国产精品99一区二区| 中文高清一区| 国产精品久久久爽爽爽麻豆色哟哟| 亚洲视频欧美在线| 国产精品久久久久久久午夜片| 亚洲影音一区| 国产精品揄拍一区二区| 欧美影院在线播放| 国内成人精品2018免费看 | 久久欧美肥婆一二区| 狠狠综合久久av一区二区老牛| 久久久久久婷| 亚洲国产一区二区三区高清 | 欧美日韩小视频| 亚洲一区二区三区免费在线观看| 国产精品日韩在线播放| 欧美一级专区| 激情久久婷婷| 欧美电影免费网站| 一本久道久久综合狠狠爱| 国产精品va在线| 欧美一区成人| 狠狠色丁香久久综合频道| 嫩草成人www欧美| 99精品免费视频| 国产精品视频观看| 久久久久久高潮国产精品视| 亚洲国产精品视频一区| 欧美日韩精品综合| 午夜在线精品偷拍| 在线不卡免费欧美| 欧美乱大交xxxxx| 午夜亚洲视频| 亚洲福利国产| 国产精品高清一区二区三区| 欧美在线你懂的| 91久久久国产精品| 国产精品久久久久久久久婷婷| 久久超碰97中文字幕| 最新国产乱人伦偷精品免费网站| 欧美日韩极品在线观看一区| 性欧美videos另类喷潮| 亚洲国产欧美日韩精品| 国产精品扒开腿爽爽爽视频| 久久久国产精品一区| 日韩视频免费观看高清在线视频 | 午夜精品久久久久久久| 1024亚洲| 国产精品青草综合久久久久99 | 欧美日韩一区自拍| 久久久亚洲午夜电影| 日韩午夜在线播放| 国产亚洲电影| 欧美精品成人| 欧美专区第一页| 一本色道久久99精品综合| 国内外成人免费激情在线视频 | 国产精品一区二区三区久久| 免费在线日韩av| 亚洲欧美一级二级三级| 亚洲第一精品福利| 国产精品私拍pans大尺度在线 | 欧美日韩中文另类| 久久香蕉精品| 亚洲欧美日韩一区在线| 亚洲黄色一区| 国产一区二区欧美| 欧美网站在线观看| 久久亚洲综合色一区二区三区| 亚洲一区二区三区乱码aⅴ蜜桃女 亚洲一区二区三区乱码aⅴ | 老司机午夜精品| 午夜激情久久久| 亚洲美女黄色| 有码中文亚洲精品| 国产麻豆91精品| 欧美日韩精品免费| 欧美成人日本| 久久久久国色av免费看影院| 亚洲图中文字幕| 亚洲欧洲在线免费| 黄色影院成人| 国产精品女人毛片| 欧美日韩国产色综合一二三四 | 午夜精品电影| 99这里只有精品| 亚洲第一中文字幕在线观看| 国产日韩av高清| 国产精品久久久久久久久久ktv| 欧美激情精品久久久六区热门 | 久久久精品免费视频| 午夜国产欧美理论在线播放| 在线一区二区三区做爰视频网站 | 欧美区一区二区三区| 另类成人小视频在线| 久久成人一区| 性久久久久久久久久久久| 亚洲综合99| 亚洲特色特黄| 一区二区高清在线| 亚洲人精品午夜| 亚洲国产精品视频一区| 在线精品亚洲一区二区| 国产自产女人91一区在线观看| 国产伦精品一区二区三区在线观看 | 欧美另类女人| 欧美韩日亚洲| 欧美成人免费大片| 欧美77777| 欧美r片在线| 免费成人av在线| 美女在线一区二区| 快射av在线播放一区| 久久久九九九九| 久久激情综合| 久久精品首页| 久久久免费精品视频| 久久夜色精品亚洲噜噜国产mv| 久久一区二区三区超碰国产精品|