我正在 JavaScript 中开发一个数据可视化库,该库依赖于包含 0-255 之间的红色、绿色和蓝色通道值的“Color”类。是否有任何理由存储这些颜色通道的小数值,或者截断为整数是否安全?
例如在CSS中,是
rgba(250, 0, 0, 100%)
与
相同rgba(250.1, 0, 0, 100%)
我知道十六进制颜色代码
00
到 FF
相当于整数值 0
到 255
,不带小数。
人类实际上能够感知两种不同的颜色是一个不同的故事。我想知道:
浏览器如何选择调整颜色可能取决于,但是根据W3C标准,它可以是小数,遵循CSS语法
rgba() = [ <legacy-rgba-syntax> | <modern-rgba-syntax> ]
<legacy-rgb-syntax> = rgb( <percentage>#{3} , <alpha-value>? ) |
rgb( <number>#{3} , <alpha-value>? )
<legacy-rgba-syntax> = rgba( <percentage>#{3} , <alpha-value>? ) |
rgba( <number>#{3} , <alpha-value>? )
<modern-rgb-syntax> = rgb(
[ <number> | <percentage> | none]{3}
[ / [<alpha-value> | none] ]? )
<modern-rgba-syntax> = rgba(
[ <number> | <percentage> | none]{3}
[ / [<alpha-value> | none] ]? )
并遵循
<number>
的定义:
数值由
表示,代表实数,可能带有小数部分。<number>
当按字面书写时,数字可以是 整数,或者是零个或多个十进制数字,后跟一个点 (.),后跟一个或多个十进制数字; [...].