1.给定两个css的颜色值,比如#ccc和#f0bc89,求两个颜色之间的10个等分色。(通道颜色,有正则切分,有进制转换)
这道题怎么做?
1
loveuqian 2015-07-25 10:50:17 +08:00 via iPhone
这是前端题?用前端来做?不是应该考设计的嘛。。。
|
3
YuJianrong 2015-07-25 10:56:35 +08:00 via iPad
通道颜色正则切分啥的是什么鬼?
|
4
YuJianrong 2015-07-25 10:57:44 +08:00 via iPad
@xxxpara 哦,那有啥难的,css颜色的几种表示解析出来做个线性插值不就好了……
|
5
gonghao 2015-07-25 11:00:41 +08:00
#ccc rgb(r1, g1, b1)
#f0bc89 rgb(r2, g2, b2) 然后 `rn = (r2 - r1) / 10 * n` 类似 这可以算作一种平均等分的算法,只是题设中那俩方法没听懂…… |
6
P233 2015-07-25 11:01:27 +08:00
用 Sass 的 mix 函数吧
mix(#ccc, #f0bc89, 90%) mix(#ccc, #f0bc89, 80%) mix(#ccc, #f0bc89, 70%) ... mix(#ccc, #f0bc89, 10%) |
7
Biwood 2015-07-25 11:09:12 +08:00
先把十六进制表示法转换成十进制表示法,#ccc 转换 rgb(204, 204, 204),#f0bc89 转换成 rgb(240,188,137),然后求每个通道的差十等分的值,如果我对等分色的理解没错的话
|
8
Biwood 2015-07-25 12:33:27 +08:00
按照上面的思路写了一个例子,不知道是不是正确答案 http://jsbin.com/paqilexuqi/edit?js,output
|
9
guesskiss 2015-07-25 13:47:07 +08:00 via Android
转换成rgb和hsv只是一种思路,我突然想到,既然是前端问题,那就设置两个div不同背景色,设置他们的opacity为10等分覆盖在一起不就行了么
|
10
otakustay 2015-07-25 14:25:14 +08:00
|
11
learnshare 2015-07-25 15:06:29 +08:00
HSL 来做
|
12
YuJianrong 2015-07-26 00:36:08 +08:00 via iPad
@otakustay 这个直觉是错的,颜色过渡应该用rgb而不是hsl。hsl过度的话hue飘过去感觉很怪的。
|
13
khowarizmi 2015-07-26 03:32:13 +08:00
|