整合營銷服務商

          電腦端+手機端+微信端=數(shù)據(jù)同步管理

          免費咨詢熱線:

          HTML 顏色

          TML 顏色由紅色、綠色、藍色混合而成。

          顏色值

          HTML 顏色由一個十六進制符號來定義,這個符號由紅色、綠色和藍色的值組成(RGB)。

          種顏色的最小值是0(十六進制:#00)。最大值是255(十六進制:#FF)。

          這個表格給出了由三種顏色混合而成的具體效果:

          顏色值

          顏色(Color)顏色十六進制(Color HEX)顏色RGB(Color RGB)
          #000000rgb(0,0,0)
          #FF0000rgb(255,0,0)
          #00FF00rgb(0,255,0)
          #0000FFrgb(0,0,255)
          #FFFF00rgb(255,255,0)
          #00FFFFrgb(0,255,255)
          #FF00FFrgb(255,0,255)
          #C0C0C0rgb(192,192,192)
          #FFFFFFrgb(255,255,255)


          1600萬種不同顏色

          三種顏色 紅,綠,藍的組合從0到255,一共有1600萬種不同顏色(256 x 256 x 256)。

          在下面的顏色表中你會看到不同的結果,從0到255的紅色,同時設置綠色和藍色的值為0,隨著紅色的值變化,不同的值都顯示了不同的顏色。

          Red LightColor HEXColor RGB
          #000000 rgb(0,0,0)
          #080000rgb(8,0,0)
          #100000rgb(16,0,0)
          #180000rgb(24,0,0)
          #200000rgb(32,0,0)
          #280000rgb(40,0,0)
          #300000rgb(48,0,0)
          #380000rgb(56,0,0)
          #400000rgb(64,0,0)
          #480000rgb(72,0,0)
          #500000rgb(80,0,0)
          #580000rgb(88,0,0)
          #600000rgb(96,0,0)
          #680000rgb(104,0,0)
          #700000rgb(112,0,0)
          #780000rgb(120,0,0)
          #800000rgb(128,0,0)
          #880000rgb(136,0,0)
          #900000rgb(144,0,0)
          #980000rgb(152,0,0)
          #A00000rgb(160,0,0)
          #A80000rgb(168,0,0)
          #B00000rgb(176,0,0)
          #B80000rgb(184,0,0)
          #C00000rgb(192,0,0)
          #C80000rgb(200,0,0)
          #D00000rgb(208,0,0)
          #D80000rgb(216,0,0)
          #E00000rgb(224,0,0)
          #E80000rgb(232,0,0)
          #F00000rgb(240,0,0)
          #F80000rgb(248,0,0)
          #FF0000rgb(255,0,0)

          灰暗色調

          以下展示了灰色到黑色的漸變

          Gray ShadesColor HEXColor RGB
          #000000 rgb(0,0,0)
          #080808 rgb(8,8,8)
          #101010 rgb(16,16,16)
          #181818 rgb(24,24,24)
          #202020 rgb(32,32,32)
          #282828 rgb(40,40,40)
          #303030 rgb(48,48,48)
          #383838 rgb(56,56,56)
          #404040 rgb(64,64,64)
          #484848 rgb(72,72,72)
          #505050 rgb(80,80,80)
          #585858 rgb(88,88,88)
          #606060 rgb(96,96,96)
          #686868 rgb(104,104,104)
          #707070 rgb(112,112,112)
          #787878 rgb(120,120,120)
          #808080 rgb(128,128,128)
          #888888 rgb(136,136,136)
          #909090 rgb(144,144,144)
          #989898 rgb(152,152,152)
          #A0A0A0 rgb(160,160,160)
          #A8A8A8 rgb(168,168,168)
          #B0B0B0 rgb(176,176,176)
          #B8B8B8 rgb(184,184,184)
          #C0C0C0 rgb(192,192,192)
          #C8C8C8 rgb(200,200,200)
          #D0D0D0 rgb(208,208,208)
          #D8D8D8 rgb(216,216,216)
          #E0E0E0 rgb(224,224,224)
          #E8E8E8 rgb(232,232,232)
          #F0F0F0 rgb(240,240,240)
          #F8F8F8 rgb(248,248,248)
          #FFFFFF rgb(255,255,255)

          Web安全色?

          數(shù)年以前,當大多數(shù)計算機僅支持 256 種顏色的時候,一系列 216 種 Web 安全色作為 Web 標準被建議使用。其中的原因是,微軟和 Mac 操作系統(tǒng)使用了 40 種不同的保留的固定系統(tǒng)顏色(雙方大約各使用 20 種)。

          我們不確定如今這么做的意義有多大,因為越來越多的計算機有能力處理數(shù)百萬種顏色,不過做選擇還是你自己。

          最初,216 跨平臺 web 安全色被用來確保:當計算機使用 256 色調色板時,所有的計算機能夠正確地顯示所有的顏色。

          0000000000330000660000990000CC0000FF
          0033000033330033660033990033CC0033FF
          0066000066330066660066990066CC0066FF
          0099000099330099660099990099CC0099FF
          00CC0000CC3300CC6600CC9900CCCC00CCFF
          00FF0000FF3300FF6600FF9900FFCC00FFFF
          3300003300333300663300993300CC3300FF
          3333003333333333663333993333CC3333FF
          3366003366333366663366993366CC3366FF
          3399003399333399663399993399CC3399FF
          33CC0033CC3333CC6633CC9933CCCC33CCFF
          33FF0033FF3333FF6633FF9933FFCC33FFFF
          6600006600336600666600996600CC6600FF
          6633006633336633666633996633CC6633FF
          6666006666336666666666996666CC6666FF
          6699006699336699666699996699CC6699FF
          66CC0066CC3366CC6666CC9966CCCC66CCFF
          66FF0066FF3366FF6666FF9966FFCC66FFFF
          9900009900339900669900999900CC9900FF
          9933009933339933669933999933CC9933FF
          9966009966339966669966999966CC9966FF
          9999009999339999669999999999CC9999FF
          99CC0099CC3399CC6699CC9999CCCC99CCFF
          99FF0099FF3399FF6699FF9999FFCC99FFFF
          CC0000CC0033CC0066CC0099CC00CCCC00FF
          CC3300CC3333CC3366CC3399CC33CCCC33FF
          CC6600CC6633CC6666CC6699CC66CCCC66FF
          CC9900CC9933CC9966CC9999CC99CCCC99FF
          CCCC00CCCC33CCCC66CCCC99CCCCCCCCCCFF
          CCFF00CCFF33CCFF66CCFF99CCFFCCCCFFFF
          FF0000FF0033FF0066FF0099FF00CCFF00FF
          FF3300FF3333FF3366FF3399FF33CCFF33FF
          FF6600FF6633FF6666FF6699FF66CCFF66FF
          FF9900FF9933FF9966FF9999FF99CCFF99FF
          FFCC00FFCC33FFCC66FFCC99FFCCCCFFCCFF
          FFFF00FFFF33FFFF66FFFF99FFFFCCFFFFFF

          如您還有不明白的可以在下面與我留言或是與我探討QQ群308855039,我們一起飛!

          者 | Adam Giese

          譯者 | 王強

          CSS 中有兩種顏色模型 RGB 和 HSL,如何用 JavaScript 控制它們?

          背景知識:顏色模型

          點開這篇文章的你,肯定是想要學習怎樣控制顏色的——我們后面就會講具體操作。但首先,我們需要對 CSS 如何標記顏色有一個基本的認識。CSS 使用的是兩種顏色模型:RGB 和 HSL,我們先簡單了解一下。

          1、RGB

          RGB 就是“紅色,綠色,藍色”的簡稱。這個模型由三個數(shù)字組成,每個數(shù)字表示其所代表的顏色在最終生成的顏色中有多高的亮度。在 CSS 中,每個數(shù)值的范圍都是 0-255,三個數(shù)值間用逗號分隔,作為 CSS rgb 函數(shù)的參數(shù),例如:rgb(50,100,0)。

          RGB 是一種“增量”顏色系統(tǒng)。這意味著每個數(shù)字越高,最終生成的顏色就越亮。如果所有值都相等就生成灰度顏色;如果所有值都為零,結果為黑色;如果所有值都是 255,則結果為白色。

          此外你也可以使用十六進制表示法來標記 RGB 顏色,其中每種顏色的數(shù)值從 10 進制轉換為 16 進制。例如,rgb(50,100,0)用 16 進制就寫成#326400。

          雖然我個人比較習慣使用 RGB 模型(特別是十六進制),但我也經(jīng)常發(fā)現(xiàn)它不易閱讀,也不容易操作。下面來看 HSL 模型。

          2、HSL

          HSL(https://codepen.io/AdamGiese/full/989988044f3b8cf6403e3c60f56dd612)是“色調,飽和度,光線”的簡稱,HSL 也包含三個值。色調值對應于色輪上的點,由 CSS 角度值表示,最常用的是度數(shù)單位。

          飽和度以百分比表示,是指顏色的強度。當飽和度為 100%時顏色最深,飽和度越低,顏色越淺,直到灰度為 0%。

          亮度也以百分比表示,指的是顏色有多亮。“常規(guī)”的亮度是 50%。無論色調和飽和度值如何,100%的亮度都是純白色,0%的亮度就是純黑色。

          我覺得 HSL 模型更直觀一些,顏色之間的關系更加明顯,控制顏色時只要簡單地調整幾個數(shù)字就可以了。

          3、顏色模型之間的轉換

          RGB 和 HSL 顏色模型都將顏色分解為各種屬性。要在不同模型之間進行轉換,我們首先需要計算這些屬性。

          除了色調,上面提到的所有數(shù)值都可以表示為百分比。就連 RGB 值也是用字節(jié)表示的百分比。在下面提到的公式和函數(shù)中,這些百分比將由 0 到 1 之間的小數(shù)來表示。

          這里提一下,我并不會深入探討這些數(shù)學知識;相比之下,我將簡要介紹一遍原始數(shù)學公式,然后將其轉換為 JavaScript 格式。

          4、從 RGB 模型中計算亮度

          亮度是三個 HSL 值中最容易計算的一個。其數(shù)學式如下,其中 M 是 RGB 值的最大值,m 是最小值:

          亮度的數(shù)學式

          用 JavaScript 函數(shù)寫成下面的形式:

          const rgbToLightness =(r,g,b)=>
           1/2 *(Math.max(r,g,b)+ Math.min(r,g,b));
          

          5、從 RGB 模型中計算飽和度

          飽和度僅比亮度稍微復雜一些。如果亮度為 0 或 1,則飽和度值為 0;否則,它基于下面的數(shù)學公式計算得出,其中 L 表示亮度:

          飽和度的數(shù)學式

          寫成 JavaScript:

          const rgbToSaturation = (r,g,b) => {
           const L = rgbToLightness(r,g,b);
           const max = Math.max(r,g,b);
           const min = Math.min(r,g,b);
           return (L === 0 || L === 1)
           ? 0
           : (max - min)/(1 - Math.abs(2 * L - 1));
          };
          

          6、從 RGB 模型中計算色調

          從 RGB 坐標中計算色調角度的公式有點復雜:

          色調的數(shù)學式

          寫成 JavaScript:

          const rgbToHue = (r,g,b) => Math.round(
           Math.atan2(
           Math.sqrt(3) * (g - b),
           2 * r - g - b,
           ) * 180 / Math.PI
          );
          

          最后 180 / Math.PI 的算法是將結果從弧度轉換為度。

          7、計算 HSL

          上面這些函數(shù)都可以包含在同一個功能函數(shù)里:

          const rgbToHsl = (r,g,b) => {
           const lightness = rgbToLightness(r,g,b);
           const saturation = rgbToSaturation(r,g,b);
           const hue = rgbToHue(r,g,b);
           return [hue, saturation, lightness];
          }
          

          8、從 HSL 模型中計算 RGB 值

          開始計算 RGB 之前,我們需要一些前提值。

          首先是“色度”值:

          色度的數(shù)學式

          還有一個臨時的色調值,我們將用它來確定我們所屬的色調圈的“段”:



          色調區(qū)間的數(shù)學式

          接下來,我們設一個“x”值,它將用作中間(第二大)組件值:

          臨時“x”值的數(shù)學式

          我們再設一個“m”值,用于調整各個亮度值:

          亮度匹配的數(shù)學式

          根據(jù)色調區(qū)間值,r,g 和 b 值將映射到 C,X 和 0:

          RGB 值的數(shù)學式,不考慮亮度

          最后,我們需要映射每個值以調整亮度:

          用 RGB 來解釋亮度的數(shù)學式

          將上面這些都寫到 JavaScript 函數(shù)中:

          const hslToRgb = (h,s,l) => {
           const C = (1 - Math.abs(2 * l - 1)) * s;
           const hPrime = h / 60;
           const X = C * (1 - Math.abs(hPrime % 2 - 1));
           const m = l - C/2;
           const withLight = (r,g,b) => [r+m, g+m, b+m];
          if (hPrime <= 1) { return withLight(C,X,0); } else
           if (hPrime <= 2) { return withLight(X,C,0); } else
           if (hPrime <= 3) { return withLight(0,C,X); } else
           if (hPrime <= 4) { return withLight(0,X,C); } else
           if (hPrime <= 5) { return withLight(X,0,C); } else
           if (hPrime <= 6) { return withLight(C,0,X); }
          }
          

          9、創(chuàng)建顏色對象

          為了便于在操作屬性時訪問,我們將創(chuàng)建一個 JavaScript 對象。把前面提到的這些函數(shù)打包起來就能創(chuàng)建這個對象:

          const rgbToObject = (red,green,blue) => {
           const [hue, saturation, lightness] = rgbToHsl(red, green, blue);
           return {red, green, blue, hue, saturation, lightness};
          }
          const hslToObject = (hue, saturation, lightness) => {
           const [red, green, blue] = hslToRgb(hue, saturation, lightness);
           return {red, green, blue, hue, saturation, lightness};
          }
          

          10、示例

          我強烈建議你花些時間看看這個示例:

          https://codepen.io/AdamGiese/full/86b353c35a8bfe0868a8b48683faf668

          從中了解調節(jié)各個屬性時其它屬性如何發(fā)生變化,這樣能幫助你更深入地了解兩種顏色模型是如何對應的。

          顏色控制

          現(xiàn)在我們已經(jīng)知道怎樣在顏色模型之間進行轉換了,那么就來看看該如何控制這些顏色!

          1、更新屬性

          我們提到的所有顏色屬性都可以單獨控制,返回一個新的顏色對象。例如,我們可以編寫一個旋轉色調角度的函數(shù):

          const rotateHue = rotation => ({hue, ...rest}) => {
           const modulo = (x, n) => (x % n + n) % n;
           const newHue = modulo(hue + rotation, 360);
          return { ...rest, hue: newHue };
          }
          

          rotateHue 函數(shù)會接受一個旋轉參數(shù)并返回一個新函數(shù),該函數(shù)接受并返回一個顏色對象。這樣就可以輕松創(chuàng)建新的“旋轉”函數(shù):

          const rotate30 = rotateHue(30);
          const getComplementary = rotateHue(180);
          const getTriadic = color => {
           const first = rotateHue(120);
           const second = rotateHue(-120);
           return [first(color), second(color)];
          }
          

          用這種方式,你也可以編寫加深或提亮顏色的函數(shù)——或者反過來,減淡或變暗也行。

          const saturate = x => ({saturation, ...rest}) => ({
           ...rest,
           saturation: Math.min(1, saturation + x),
          });
          const desaturate = x => ({saturation, ...rest}) => ({
           ...rest,
           saturation: Math.max(0, saturation - x),
          });
          const lighten = x => ({lightness, ...rest}) => ({
           ...rest,
           lightness: Math.min(1, lightness + x)
          });
          const darken = x => ({lightness, ...rest}) => ({
           ...rest,
           lightness: Math.max(0, lightness - x)
          });
          

          2、顏色謂詞

          除了顏色控制以外,你還可以編寫“謂詞”——亦即返回布爾值的函數(shù)。

          const isGrayscale = ({saturation}) => saturation === 0;
          const isDark = ({lightness}) => lightness < .5;
          

          3、處理顏色數(shù)組

          過濾器

          JavaScript [] .filter 方法會接受一個謂詞并返回一個新數(shù)組,其中包含所有“傳遞”的元素。我們在上一節(jié)中編寫的謂詞可以用在這里:

          const colors = [/* ... an array of color objects ... */];
          const isLight = ({lightness}) => lightness > .5;
          const lightColors = colors.filter(isLight);
          

          排序

          要對顏色數(shù)組進行排序,首先需要編寫一個“比較器”函數(shù)。此函數(shù)接受一個數(shù)組的兩個元素并返回一個數(shù)字來表示“贏家”。正數(shù)表示第一個元素應該先排序,而負數(shù)表示第二個元素應該先排序。零值表示平局。

          例如,這是一個比較兩種顏色亮度的函數(shù):

          const compareLightness = (a,b) => a.lightness - b.lightness;
          

          這是一個比較飽和度的函數(shù):

          const compareSaturation = (a,b) => a.saturation - b.saturation;
          

          為了防止代碼重復,我們可以編寫一個高階函數(shù)來返回一個比較函數(shù)來對比各種屬性:

          const compareAttribute = attribute =>
           (a,b) => a[attribute] - b[attribute];
          const compareLightness = compareAttribute('lightness');
          const compareSaturation = compareAttribute('saturation');
          const compareHue = compareAttribute('hue');
          

          平均屬性

          你可以搭配各種 JavaScript 數(shù)組方法來平衡顏色數(shù)組中的特定屬性。首先,你可以使用 reduce 求和并用 Array length 屬性分割來計算一個屬性的均值:

          const colors = [/* ... an array of color objects ... */];
          const toSum = (a,b) => a + b;
          const toAttribute = attribute => element => element[attribute];
          const averageOfAttribute = attribute => array =>
           array.map(toAttribute(attribute)).reduce(toSum) / array.length;
          

          你可以用它來“規(guī)范化”一組顏色:

          /* ... continuing */
          const normalizeAttribute = attribute => array => {
           const averageValue = averageOfAttribute(attribute)(array);
           const normalize = overwriteAttribute(attribute)(averageValue);
           return normalize(array);
          }
          const normalizeSaturation = normalizeAttribute('saturation');
          const normalizeLightness = normalizeAttribute('lightness');
          const normalizeHue = normalizeAttribute('hue');
          

          4、結論

          顏色是網(wǎng)絡不可或缺的一部分。將顏色分解為屬性就可以靈活控制它們,并創(chuàng)造出無限的可能。

          查看英文原文:

          https://blog.logrocket.com/how-to-manipulate-css-colors-with-javascript-fb547113a1b8

          福利推薦

          前端領域的技術演進一直要比其他技術快一些,這給前端工程師帶來持續(xù)的挑戰(zhàn)。這里整理了從 Vue 到 React、iOS 到 Andoid、再到前端架構體系的干貨課程,帶你解讀從前端小工到專家的實戰(zhàn)心法,高效解決 80% 的開發(fā)難題。

          html中,我們經(jīng)常會用到table布局;有時候需要實現(xiàn)指定單元格,當鼠標移動到上面的時候,該單元格背景變色,不是該行背景變色,也不是僅僅文字的背景變色;


          html的文件結構大家都是知道的了,總體分為head和body部分

          我們要實現(xiàn)變色,在head部分實現(xiàn)格式

          <style>

          .tablex {border-collapse: collapse;}

          .tablex tr {}

          .tablex tr td {text-align:center; line-height:30px;}

          .tablex tr td:hover { background-color:#f00; color:#fff;}

          </style>

          然后在body部分,使用table時候,注明class="tablex".這樣的話,就實現(xiàn)了我們所說的效果了。

          附上完整代碼:

          <html>

          <head>

          <meta http-equiv="Content-Type" content="text/html; charset=GBK" />

          <title>測試鼠標移到到表格單元格背景顏色改變的</title>

          <style>

          .table1 {border-collapse: collapse;}

          .table1 tr {}

          .table1 tr td {text-align:center; line-height:30px;}

          .table1 tr td:hover { background-color:#006030; color:#006030;}

          </style>

          </head>

          <body>

          <table class="table1" width="70%" border="1">

          <tr>

          <td>測試</td>

          <td>測試</td>

          <td>測試</td>

          <td>測試</td>

          </tr>

          <tr>

          <td>測試</td>

          <td>測試</td>

          <td>測試</td>

          <td>測試</td>

          </tr>

          <tr>

          <td>測試</td>

          <td>測試</td>

          <td>測試</td>

          <td>測試</td>

          </tr>

          <tr>

          <td>測試</td>

          <td>測試</td>

          <td>測試</td>

          <td>測試</td>

          </tr>

          <tr>

          <td>測試</td>

          <td>測試</td>

          <td>測試</td>

          <td>測試</td>

          </tr>

          </table>

          </body>

          </html>

          在任何一個瀏覽器中運行,效果如下




          南大盛聯(lián)20年來一直致力于高端IT培訓--打造高級軟件人才實戰(zhàn)培訓專家,學生對我們的認可是我們一直前進的動力;項目團隊全球招聘,特聘來自海外的老師進行任教,采用100%商業(yè)項目進行實戰(zhàn)培訓,線上線下同步進行。

          課程全部緊隨市場需求進行設計,并且動態(tài)進行調整;7天免費試聽,0首付開始學習,學完后進行100%推薦就業(yè),不滿意工作崗位2次推薦。

          選定一個平臺,認識一群志同道合的朋友,你的未來人生路必定不一樣。

          目前已經(jīng)開設下面這些培訓項目

          Java培訓

          安卓培訓

          JavaWeb培訓

          Linux培訓

          云服務器布置培訓

          HTML5培訓

          SEO培訓

          視頻剪輯培訓

          UI培訓

          歡迎您們分享給自己愿意分享的朋友,大家一起來進步;相互轉告,咨詢,學習。

          南大盛聯(lián)培訓理念:我懂,我也能讓你懂。


          主站蜘蛛池模板: 丰满人妻一区二区三区免费视频| 无码人妻久久一区二区三区 | 一区二区三区免费视频播放器| 亚洲一区二区三区精品视频 | 无码丰满熟妇浪潮一区二区AV | 亚洲一区精品视频在线 | 在线播放国产一区二区三区 | 一区二区三区AV高清免费波多| 国产SUV精品一区二区四| 精品乱人伦一区二区| 亚洲国产成人精品久久久国产成人一区二区三区综 | 欧洲精品一区二区三区| 国产成人一区二区三区精品久久| 国产伦精品一区二区三区免费下载| 日本精品一区二区三区视频| 国产精品自在拍一区二区不卡| 久久国产精品一区| 99精品一区二区三区无码吞精| 在线观看一区二区三区视频| 欧洲精品无码一区二区三区在线播放| 亚洲啪啪综合AV一区| 亚洲av无码一区二区三区人妖| 亚洲AV无码国产一区二区三区| 国产高清一区二区三区四区| 中文字幕一区二区三区5566| 一区二区三区在线播放| 在线精品动漫一区二区无广告| 无码人妻久久久一区二区三区 | 色视频综合无码一区二区三区| 亚洲韩国精品无码一区二区三区| 麻豆精品人妻一区二区三区蜜桃 | 精品人妻少妇一区二区三区| 99精品一区二区三区无码吞精| 亚洲乱色熟女一区二区三区丝袜| 久久一区二区三区精华液使用方法| 夜夜嗨AV一区二区三区| 日韩一区二区三区在线精品| 国产综合视频在线观看一区| 3D动漫精品一区二区三区| 色噜噜狠狠一区二区三区果冻 | 亚洲国产精品一区二区第一页免|