颜色 - 为什么 CSS3 的 hsl 色彩模式很少被使用?
迷茫
迷茫 2017-04-17 11:11:05
0
6
789
color:hsl(120,65%,75%)

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

迷茫
迷茫

业精于勤,荒于嬉;行成于思,毁于随。

reply all (6)
巴扎黑

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

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

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

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

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

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

    PHPzhong

    难道不是因为兼容性?

      大家讲道理

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

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

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

        洪涛

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

          洪涛

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

            大家讲道理

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

              Latest Downloads
              More>
              Web Effects
              Website Source Code
              Website Materials
              Front End Template
              About us Disclaimer Sitemap
              php.cn:Public welfare online PHP training,Help PHP learners grow quickly!