2015-04-04 111 views
1

我试图用CSS表示显示在LED上的颜色。显然,使用RGBa的背景属性很容易,但显然黑色不能用LED表示。使用CSS表示LED颜色

让我们用红色作为一个例子:

对于LED,在全亮度,LED会显示为红色。但是,随着值从255下降到0,它与透明度下降类似。

因此RGB(0, 0, 0)的表示应该是透明背景,而不是黑色。但是,我不完全确定如何解决这个问题?

回答

2

那么为什么不使用rgba然后减少alpha分量呢?

为全亮度

background-color: rgba(255,0,0,1); 

和关闭时

background-color: rgba(255,0,0,0); 

阿尔法可以改变01之间

+0

但是,当同时混合所有三种颜色的颜色不起作用,因为你不能单独控制不透明度(你能吗?) – CircularRecursion 2015-04-04 17:27:42

+0

@cheechm不知道你的意思。你可以设置不透明度。如果使用动画/过渡,只需更改不透明度即可更改两个关键帧之间的不透明度。 – 2015-04-04 17:52:34

+0

但是,您无法为每种颜色单独设置不透明度。 0处的所有三种颜色应该用透明表示。 – CircularRecursion 2015-04-04 23:43:56

0

我想你所谈论的模拟有一个红色的LED,绿色和蓝色的组件,并且你不能用alpha控制所有3,因为3色组件只有一个alpha通道onents。

幸运的是,您可以模拟正确的行为。

假设背景颜色的红色成分是0.2。这意味着您的LED红色组件必须将其0-1值映射到0-0.8并将其添加到0.2的背景色。当红色组件关闭时,红色将为0.2,当红色组件完全打开时,红色将为1.0。

对绿色和蓝色重复此操作,您将获得生成的RGB颜色,而不需要使用alpha。

+0

我不完全确定我明白。如果红色LED熄灭,那么红色分量将为零,在CSS RGB条款中,红色分量表示十六进制00,然而,如果LED指示灯熄灭,则表示alpha为0. – CircularRecursion 2015-04-04 23:26:48

+0

当红色指示灯熄灭,你会看到背景的红色。打开红色LED只会增加红色到已经存在的地方(将其限制在1.0或全红)。重复绿色和蓝色,你有一个三色LED设置 – 2015-04-04 23:29:11

+0

我的问题是当没有颜色 - 如果使用RGB与背景颜色,则用黑色表示,但如果使用RGB,则应将其表示为“透明”。 – CircularRecursion 2015-04-04 23:41:49