跳到取色器

HEX 色碼完整解說:#RRGGBB 是怎麼運作的

像 #1e90ff 這樣的 HEX 色碼由三組十六進位數字組成:分別代表紅、綠、藍光的強度,每組從 00(沒有)到 ff(全滿,255)。加上第四組就能設定不透明度:80 約等於 50%,ff 代表完全不透明。

閱讀時間約 2 分鐘

HEX 色碼怎麼運作

螢幕上的每個顏色都是用紅、綠、藍三種光混出來的。HEX 色碼在 # 符號後面,用兩個字元寫出每種光的強度:先紅、再綠、最後藍,這就是 #RRGGBB 的格式。

這些字元是十六進位,也就是用 16 個數字來計數:0 到 9,接著是 a(10)、b(11)、c(12)、d(13)、e(14)和 f(15)。一組兩位數涵蓋 256 個值,從 00(0)到 ff(255),剛好就是 rgb() 的範圍。

要把一組數字換算成一般的十進位數字,就把第一位乘以 16,再加上第二位。下面是 CSS 顏色 dodgerblue,也就是 #1e90ff,先列出四種格式,再逐組換算。

範例:#1e90ff
格式值
HEX
RGB
HSL
OKLCH
數字組通道計算數值
1e紅1 × 16 + 1430
90綠9 × 16 + 0144
ff藍15 × 16 + 15255

所以 #1e90ff 就是 rgb(30, 144, 255):一點紅、相當多的綠、滿格的藍,加起來是明亮的天藍色。三組各 256 個值,總共能組合出 16,777,216 種顏色。

三位數與四位數的 HEX 縮寫

如果每組的兩位數字都相同,就可以每組只寫一次。#ffcc00 可以寫成 #fc0,瀏覽器會把每一位重複還原。#1e90ff 沒有縮寫,因為 1e 和 90 不是重複的數字組。

縮寫只能表示約 1,670 萬種顏色中的 4,096 種。四位數的版本用同樣方式加上不透明度,所以 #f008 等於 #ff000088。

縮寫完整寫法顏色
#fff#ffffff白色
#000#000000黑色
#f00#ff0000紅色
#fc0#ffcc00暖黃色
#abc#aabbcc灰藍色
#f008#ff000088不透明度 53% 的紅色

HEX 透明度:含 Alpha 的八位數 HEX

八位數的色碼多了第四組,代表 Alpha,也就是不透明度:#RRGGBBAA。00 是完全透明,ff 是完全不透明。目前所有主流瀏覽器的 CSS 都支援這種寫法,也支援四位數的 #RGBA 縮寫。

計算方式是把不透明度乘以 255,四捨五入成整數,再轉成十六進位。50% 得到 127.5,四捨五入為 128,寫成 80。下面是套用在 #1e90ff 上的完整對照表。

不透明度Alpha(0–255)HEX 數字組加上 Alpha 的 #1e90ff
100%255ff#1e90ffff
95%242f2#1e90fff2
90%230e6#1e90ffe6
85%217d9#1e90ffd9
80%204cc#1e90ffcc
75%191bf#1e90ffbf
70%179b3#1e90ffb3
65%166a6#1e90ffa6
60%15399#1e90ff99
55%1408c#1e90ff8c
50%12880#1e90ff80
45%11573#1e90ff73
40%10266#1e90ff66
35%8959#1e90ff59
30%774d#1e90ff4d
25%6440#1e90ff40
20%5133#1e90ff33
15%3826#1e90ff26
10%261a#1e90ff1a
5%130d#1e90ff0d
0%000#1e90ff00

CSS

.overlay {
    background: #00000080;
}

.overlay-same {
    background: rgb(0 0 0 / 50%);
}

有兩個要注意的地方。第一,80 是 255 中的 128,也就是 50.2%,不是剛好 50%:HEX 的 Alpha 只有 256 階,所以大多數整數百分比都只是近似值。第二,Android 把 Alpha 放在最前面。在 Android 的顏色資源裡,#801e90ff 等同於 CSS 中的 #1e90ff80。

如何用眼睛讀懂 HEX 色碼

不必換算也能大致猜出顏色。只要看每組的第一位數字,因為幾乎所有資訊都在那裡。

CSS 名稱HEXRGB怎麼讀
tomato#ff6347255, 99, 71紅色全滿,綠和藍各有一些:偏暖的淺紅色
gold#ffd700255, 215, 0紅和綠高,沒有藍:黃色
chocolate#d2691e210, 105, 30紅色領先,綠色一半,藍色很低:橘棕色
darkturquoise#00ced10, 206, 209綠和藍高,沒有紅:青色
dodgerblue#1e90ff30, 144, 255藍色領先,綠色居中:天藍色
mediumorchid#ba55d3186, 85, 211紅和藍高,綠色低:紫色
teal#0080800, 128, 128綠和藍各一半:深青色
navy#0000800, 0, 128只有藍,強度一半:深藍色
slategray#708090112, 128, 144三者接近,藍色稍高:藍灰色
  • 第一位數字最大的,就是主導的光。#d2691e 的紅是 d、綠是 6、藍是 1,所以是橘棕色。
  • 兩個通道都高時會混色:紅加綠是黃,綠加藍是青,紅加藍是洋紅或紫色。
  • 三組數字相同就是灰色。#333333 是深灰,#999999 是淺灰。三組接近但不完全相同,例如 #708090,會得到偏灰、低調的顏色。
  • 數字整體偏高是淺色,偏低是深色。三組都在 c0 以上時,顏色很淡;三組都在 30 以下時,顏色非常深。
  • 同樣的數字,綠色看起來比藍色亮得多。#00ff00 的 OKLCH 亮度是 0.866,#0000ff 只有 0.452。

為什麼 #808080 不是中間灰

#808080 在數字上剛好位於正中間:每個通道都是 255 中的 128。但它看起來並不在黑與白的正中間。它的 OKLCH 亮度是 0.600,看起來大約在往白色走 60% 的位置。

HEX 數值已經用 sRGB 曲線編碼過,這條曲線大致貼近人眼,但並不精確。#808080 發出的光約為白色的 21.6%,而感知模型認為視覺上的中點更暗:OKLCH 是 #636363,CIELAB 是 #777777。

灰色說明OKLCH L白底對比黑底對比
#808080數值中點,1280.6003.95:15.32:1
#777777CIELAB 中點,L* 500.5694.48:14.69:1
#767676在白底達到 4.5:1 的最淺灰色0.5664.54:14.62:1
#636363OKLCH 中點,L 0.50.5006.01:13.50:1

這對文字很重要。白底上的 #808080 灰字對比只有 3.95:1,內文不符合 WCAG AA。#767676 是能通過 4.5:1 的最淺灰色,再淺一階的 #777777 就只有 4.48:1,已經不合格。

大寫還是小寫,要不要加 #

HEX 色碼不分大小寫。#1E90FF、#1e90ff 和 #1E90ff 在 CSS、SVG 和設計工具中都是同一個顏色。選定一種寫法並在各處統一,這樣搜尋程式碼時才能找到所有用到的地方。CSS 中最常見的是小寫。

# 符號是 CSS 語法的一部分,不屬於顏色本身。Figma 和許多設計工具顯示色碼時不加 #,程式語言則常寫成帶 0x 前綴的數字,例如 Flutter 的 Color(0xFF1E90FF),開頭是 Alpha 數字組。

如何找出螢幕上顏色的 HEX 色碼

用滴管工具:它會讀取游標下方的顏色並顯示色碼。這些工具都免費,而且大多已經內建。

  • Chrome 和 Edge:按 F12 開啟開發人員工具,在「樣式」面板點任一個顏色方塊,再用滴管圖示從頁面上取色。
  • PickShade:首頁的取色器在 Chrome 和 Edge 中有滴管按鈕,可以從螢幕上任何地方取色。
  • Windows:安裝 Microsoft PowerToys,按 Win + Shift + C 開啟色彩選擇器。
  • macOS:從「應用程式」的「工具程式」開啟「數位測色計」。切換到 sRGB,再選擇「顯示方式」、「顯示數值」、「十六進位」。
  • Figma、Photoshop 和大多數設計軟體:按 I 使用滴管。
  • 照片或螢幕截圖:用圖片取色器開啟,點任一個像素即可。圖片會留在你的裝置上。

取到的數值可能和原始值差幾個單位,因為螢幕會套用色彩描述檔,圖片也經過壓縮。需要精確數值時,請從設計檔或 CSS 複製,而不是從螢幕截圖取色。

常見問題

什麼是 HEX 色碼?

HEX 色碼是像 #1e90ff 這樣的六位數代碼,用紅、綠、藍光的強度來描述顏色。每組十六進位數字從 00(0)到 ff(255),所以 #1e90ff 就是 rgb(30, 144, 255)。

怎麼替 HEX 色碼加上透明度?

在最後加上第四組數字:#RRGGBBAA。把不透明度乘以 255,四捨五入後轉成十六進位,所以 50% 是 80,25% 是 40,75% 是 bf。例如 #1e90ff80 就是不透明度約 50% 的 dodgerblue。

50% 不透明度的 HEX 是多少?

50% 不透明度在 HEX 中是 80,例如半透明的黑色寫成 #00000080。80 等於 255 中的 128,也就是 50.2%,因為 HEX 的 Alpha 只有 256 階,剛好 50% 落在 7f 和 80 之間。

HEX 和 RGB 有什麼差別?

顏色本身沒有差別,只是寫法不同。HEX 用十六進位的數字組寫出紅、綠、藍的值,rgb() 則用 0 到 255 的十進位數字,所以 #ff6347 和 rgb(255, 99, 71) 是同一個番茄紅。

HEX 色碼有分大小寫嗎?

沒有。#FF6347、#ff6347 和 #Ff6347 在 CSS、HTML、SVG 和設計工具中都是同一個顏色。大多數 CSS 專案用小寫,但只要保持一致,哪種寫法都可以。

中間灰的 HEX 色碼是多少?

#808080 是數值上的中點,但看起來比一半更亮,OKLCH 亮度為 0.600。看起來剛好介於黑白之間的灰色,落在 #636363(OKLCH L 0.5)到 #777777(CIELAB L* 50)之間。

在 PickShade 中試試看

相關指南