美文网首页
浅谈 CSS 颜色模块与色彩学

浅谈 CSS 颜色模块与色彩学

作者: 零度冰华 | 来源:发表于2017-07-30 21:29 被阅读144次

W3C 的 CSS 工作组发布 CSS 颜色模块(CSS Color Module Level 4)首份公开标准工作草案已经有一年之久了,你可能无法想象 CSS 中这一个 colorbackground-color 等属性包含了色彩学多少基本知识。色彩学广泛运用于美术、计算机图形学、机器学习、心理学等学科中,这次我们就来假借 CSS 颜色模块来窥见其一斑。

(因本人水平有限,如有描述不当的地方,希望大家指出)

已命名颜色(Named Colors)

字如其名,就是有公认名字的颜色。具体颜色名称引用请见 W3C 网站:

https://www.w3.org/TR/SVG/types.html#ColorKeywords

/* CSS 引用已命名颜色时不可以使用引号 */
.font-aqua {
    color: aqua;
}

灰度(gray)

从最暗黑色到最亮的白色的灰度,中间根据采样的级数可能分为 8 bits、16 bits 等。(注意灰度图像与黑白图像的区别)

网页设计时可能可以加上透明度参数。

.font-gray-1 {
    color: gray(50%);
}

三原色光 模式(RGB)

又称 RGB颜色模型红绿蓝颜色模型,是一种加色模型,将红(Red)、绿(Green)、蓝(Blue)三原色的色光以不同的比例相加,以产生多种多样的色光。(且三原色的红绿蓝不可能用其他单色光合成)

绿色的饱和度变化

- 亮度和明度

  • 亮度 Lightness,指颜色从全黑到全白 。(50% 为原来的颜色,100% 为白色)
亮度-Lightness
  • 明度 Brightness(或 Value),指颜色从全黑到颜色能维持最大饱和度的亮度。(100% 为原来的颜色)
明度-Brightness

与 RGB 模型的笛卡尔直角坐标系不同,HSV(色相,饱和度,色调)在概念上可以被认为是颜色的倒圆锥体(黑点在下顶点,白色在上底面圆心),HSL 在概念上表示了一个双圆锥体和圆球体(白色在上顶点,黑色在下顶点,最大横切面的圆心是半程灰色)。

HSV 或 HSB 倒圆锥体 HSL 球坐标系(没找到柱坐标系,感觉球坐标系也蛮形象的)
/* HSL */
.font-aqua {
    color: hsl(180, 100%, 50%);
}

/* HSLA */
.font-aqua {
    color: hsl(180, 100%, 50%, 100%);
}


/* HSV */
.font-aqua {
    hsv(180, 100%, 100%);
}

- 与 RGB 间的转换关系

/* HSL 转 RGB */
function hslToRgb(hue, sat, light) {
  if( light <= 0.5 ) {
    var t2 = light * (sat + 1);
  } else {
    var t2 = light + sat - (light * sat);
  }
  var t1 = light * 2 - t2;
  var r = hueToRgb(t1, t2, hue + 2);
  var g = hueToRgb(t1, t2, hue);
  var b = hueToRgb(t1, t2, hue - 2);
  return [r,g,b];
}

HWB

HWB 是另一种以色相(Hue)为基础的色彩模型,加上白色(White)的的程度,黑色(Black)的程度这两个参数,可以使其比饱和度和亮度更容易让人理解。

/* HWB,可能有第四位表示透明度 */
.font-aqua {
    color: (180, 0%, 0%);
}

- 与 RGB 之间的转换关系

function hwbToRgb(hue, white, black) {
  var rgb = hslToRgb(hue, 1, .5);
  for(var i = 0; i < 3; i++) {
    rgb[i] *= (1 - white - black);
    rgb[i] += white;
  }
  return rgb;
}

YUV

YUV 是一种颜色编码方法,由辉度(Luma),色度(或浓度,Chroma)来表示,其种类较繁,且草 CSS 颜色模块草案中并为提及,故不再占用篇幅了。

- YUV 转 RGB

还有

此外还有 LAB、LCH、YIQ、CIE 等色彩模型,因为CSS 颜色模块中并为提及,就不在此处赘述,感兴趣的可以自行查阅其他资料。

lab2lch


参考

相关文章

  • 浅谈 CSS 颜色模块与色彩学

    W3C 的 CSS 工作组发布 CSS 颜色模块(CSS Color Module Level 4)首份公开标准工...

  • Python图像上绘制文本

    一、ImageColor模块   该ImageColor模块包含颜色表和从 CSS3 样式颜色说明符到 RGB 元...

  • 浅谈 Python 的模块导入

    浅谈 Python 的模块导入 本文不讨论 Python 的导入机制(底层实现细节),仅讨论模块与包,以及导入语句...

  • 2020-07-02

    浅谈 浅谈模块设计宏内核 浅谈接口设计Flags 浅谈稳定性设计重试 浅谈人员业务结构设计矩阵式 浅谈接口设计 |...

  • 2.CSS模块化

    CSS设计模式: OOCSS 面向对象CSS ,结构与设计分离,容器与内容分离 SMACSS 可扩展和模块...

  • css3总结

    css颜色表示方式: css3新增颜色表示方式 css1&css2的颜色方式: color name--颜色名称方...

  • CSS初探4

    Head First HTML与CSS 第八章 增加字体和颜色样式 CSS——掌控页面的表现 Web颜色如何工作 ...

  • 2018春夏流行色有哪些?身为热爱时尚的小仙女,你们知道吗

    Pantone2018的流行颜色是什么? 2018年pantone的哪些颜色会影响女装? 权威色彩学院潘通色彩研究...

  • css3编写浏览器背景渐变背景色

    知识点:rgb全色循环算法,HEX与RGB颜色转换算法、CSS3颜色渐变,CSS3渐变色兼容ie方法,定时器与循环...

  • React 样式模块化

    依赖模块 webpack.config.js 配置文件 导入CSS JSX 与 CSS的互转转换工具 : http...

网友评论

      本文标题:浅谈 CSS 颜色模块与色彩学

      本文链接:https://www.haomeiwen.com/subject/imsclxtx.html