2014-04-07 60 views
1

我试图为使用jQuery('.element').css('background-color', 'rgba(183, 56, 56, 0.43)');的元素设置背景颜色,但在调用jQuery('.element').css('background-color');之后立即在Chrome 33.0.1750.154 m中返回rgba(183, 56, 56, 0.431373)。它似乎在Firefox 28.0中工作。Chrome RGBA问题

测试用例:http://jsfiddle.net/y3H3n/

有谁知道为什么会这样,以及如何这个问题能解决?

+1

为什么它是一个错误?我无法想象精确度对您真的很重要,那么它如何对您的代码产生负面影响? –

+1

@cookiemonster用户在表单字段中键入'0.43'来设置alpha,并在取消选择后将其更新为'0.431373'。他们感到困惑。我也是这样。 – Jimsea

+1

我无法想象一个'0.001373'的差异会引起所有的混乱,但如果你想要它完全一样,那么解析出alpha,并截断小数点右边2位以外的任何东西。我认为一些浏览器也可能会删除''之后的空格,所以我想这可能会让人们感到困惑? –

回答

2

0.431373,几乎没有区别,110/255。颜色是32位,8位分配给Alpha通道。这意味着,严格来说,它的范围是从0到255。只是出于某种原因,我们将alpha表示为float。

+0

因此,Chrome实际上并没有对'0.43'做出反应?它只知道'109/255'和'110/255' - '0.4275'和'0.431373'分别?它只是我的价值?这就说得通了。 Firefox也将它舍入,但只是一直显示为'0.43'? – Jimsea

+1

@Jimsea实际上,在Chrome上进行测试时,在devtools上它仍然在样式选项卡上显示为'0.43',但通过JS调用返回'0.431373' – RaphaelDDL

+0

@RaphaelDDL我不知道alpha是在0到255的范围内。这就是为什么我认为这是一个错误(我错误地认为我的问题有误),但事实并非如此。现在一切都很清楚。我可能应该为我的输入字段使用不同的缩放比例(而不是从0到1,0.01步长,但是从0到255)。 Chrome很可能在样式选项卡中使用'0.43'来避免混淆人物。我正在用JavaScript思考它,所以它为我输入了正确的值,而不是我输入的值。谢谢你们两位! – Jimsea