search

Home  >  Q&A  >  body text

颜色 - 为什么 CSS3 的 hsl 色彩模式很少被使用?

color:hsl(120,65%,75%)

色相,饱和度,亮度的hsl记法相比rgb更难理解吗?

迷茫迷茫2779 days ago840

reply all(6)I'll reply

  • 巴扎黑

    巴扎黑2017-04-17 11:13:05

    可能是历史原因。毕竟w3c规范中,最早出现的颜色空间是rgb,而且基于加法原则的rgb颜色空间对显示器是更加友好的,因为显示器的信道刚好是rgb三通道。

    相对应的,cmyk则是基于减法原则的颜色空间,由于颜料的物理混合不可能完全均匀,以及环境光问题,cmyk实际应用上可能与对应的rgb空间颜色相比要更暗(比如同一幅画的印刷品比显示品往往要显得灰暗)。

    不过rgb/rgba并不是对人类,尤其是艺术家友好的颜色。如果你学过艺术,你肯定经常说这是什么颜色、什么明度、什么纯度(饱和度),而不会说这个颜色有多少阶的蓝、多少阶的红。如果有人直接用css搞创作的话,这些hsl属性还是能帮忙的。而且,hsl在表达明度方面确实比rgb更准确,当然,这个“准确”是物理层面的,数学层面上,rgb、cmyk、hsl这三个颜色空间当然可以相互转换。

    再一个就是,hsl颜色空间可以配合css3动画。比如同色相从明到暗的变化,显然hsl更方便表达一些。

    影视后期特效制作方面,hsl颜色空间用得更多一些,不知道以后css动画变得像美国科幻大片这样复杂了,会不会也大规模应用hsl。

    最后吐槽:其实w3c还不如把yuv颜色空间单位也列入标准呢……

    reply
    0
  • PHPz

    PHPz2017-04-17 11:13:05

    难道不是因为兼容性?

    reply
    0
  • 大家讲道理

    大家讲道理2017-04-17 11:13:05

    因为页面都是从PSD等设计稿上过来的,如果是颜色值的话,就直接通过取色软件获取,一般都是十六进制的颜色。现在为了一些透明的方便,而增加了一个RGBA的方式来表示。所以这两种才会比HSL的方式要流行很多。

    然后还有一个就是HSL的方式,需要对H、S、L这三种颜色模式有一定的了解才好操作,具体还是要根据项目需求来确定用什么颜色值比较好。

    这里有一个是曾经很早之前我用HSL的方式来做的小东西,代码很烂……
    http://lab.tianyizone.com/color.html

    reply
    0
  • PHP中文网

    PHP中文网2017-04-17 11:13:05

    兼容性,还有透明度,RGB和RGBA秒杀HSL

    reply
    0
  • PHP中文网

    PHP中文网2017-04-17 11:13:05

    RGB模式,我可以是很容易地想象各种颜色比例,知道想红一点怎么做,蓝一点怎么做,
    你让我记色相,怎么弄?

    reply
    0
  • 大家讲道理

    大家讲道理2017-04-17 11:13:05

    rgb和rgba是主流的吧,W3C推荐这个

    reply
    0
  • Cancelreply