十进制值对于 CSS 中的颜色通道有效吗?

问题描述 投票:0回答:1

我正在 JavaScript 中开发一个数据可视化库,该库依赖于包含 0-255 之间的红色、绿色和蓝色通道值的“Color”类。是否有任何理由存储这些颜色通道的小数值,或者截断为整数是否安全?

例如在CSS中,是

rgba(250, 0, 0, 100%)

相同
rgba(250.1, 0, 0, 100%)

我知道十六进制颜色代码

00
FF
相当于整数值
0
255
,不带小数。

人类实际上能够感知两种不同的颜色是一个不同的故事。我想知道:

  • CSS 实际上对颜色的解释不同吗?
  • 是否取决于用户的显示器、浏览器或 GPU?
css colors rgb rgba
1个回答
0
投票

浏览器如何选择调整颜色可能取决于,但是根据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>
表示,代表实数,可能带有小数部分。
当按字面书写时,数字可以是 整数,或者是零个或多个十进制数字,后跟一个点 (.),后跟一个或多个十进制数字; [...].

© www.soinside.com 2019 - 2024. All rights reserved.