我正在尝试使用 display-p3 颜色空间设置网页上某些文本的颜色。然而,在通过 CSS 将颜色设置为
color(display-p3 0 1 0)
之类的颜色后,文本仅显示为 #0f0
。事实上,如果我使用浏览器内置的吸管工具读取文本的颜色值,它会返回color(display-p3 0.46 0.99 0.3)
,这就是#0f0
在display-p3中的表示方式。
这是浏览器错误还是我误解了颜色空间的工作原理?我期待
color(display-p3 0 1 0)
比#0f0
更强烈的绿色。我在我的 Macbook Pro 上的 Safari 16.1 和 Chrome 112 中都试过了,行为是一样的。
附录:我尝试在系统偏好设置中将笔记本电脑屏幕的颜色配置文件从“sRGB IEC61966-2.1”更改为“显示 P3”,这样做会使吸管工具在 Safari 中正常运行。然而,Chrome 似乎仍然总是将渲染颜色裁剪为当前颜色配置文件中的
#0f0
。
但是,我仍然不明白的是,更改屏幕的颜色配置文件会使屏幕上的一堆颜色静音,因此现在
#0f0
和 color(display-p3 0 1 0)
之间存在明显的区别。但是“Display P3”中的color(display-p3 0 1 0)
still看起来和“sRGB”中的#0f0
一模一样。那么我是不是误解了颜色空间的工作原理,或者我的显示器与 display-p3 不兼容,或者这是浏览器错误?
:root { background: black; }
#p3-text { color: color(display-p3 0 1 0); }
#srgb-text { color: #0f0; }
#converted-text { color: color(display-p3 0.46 0.99 0.3); }
<div id='p3-text'>
This text is pure green in display-p3.
</div>
<div id='srgb-text'>
This text is pure green in sRGB.
</div>
<div id='converted-text'>
This text is pure sRGB green converted to display-p3.
</div>