-webkit框阴影未使用javascript正确更改

-webkit框阴影未使用javascript正确更改,javascript,jquery,html,css,Javascript,Jquery,Html,Css,我有以下代码: var oneHeight = Math.ceil(0.012*window.innerHeight).toString()+"px"; var usboxshadow="0px "+oneHeight+" 0px rgba(0,140,255,1), 0px "+oneHeight+" 25px rgba(0,0,0,.7)"; console.log(usboxshadow); $(".unselected").css("-webkit-box-shadow",usboxsh

我有以下代码:

var oneHeight = Math.ceil(0.012*window.innerHeight).toString()+"px";
var usboxshadow="0px "+oneHeight+" 0px rgba(0,140,255,1), 0px "+oneHeight+" 25px rgba(0,0,0,.7)";
console.log(usboxshadow);
$(".unselected").css("-webkit-box-shadow",usboxshadow);
当我将usboxshadow输出到控制台时,我得到了我应该得到的:

0px 20px 0px rgba(0,140,255,1), 0px 20px 25px rgba(0,0,0,.7) 
(webkit框阴影属性)
但是,当我使用Jquery.css()检索属性时

我得到了一个非常不同的结果:

rgb(0, 140, 255) 0px 20px 0px 0px, rgba(0, 0, 0, 0.701961) 0px 20px 25px 0px 
首先,在每个参数中额外的0px来自哪里

第二,为什么rgba alpha(不透明度)为0.701961,而它应该为0.7

请告诉我我做错了什么

编辑


运行代码后,未选择类的元素的框阴影不会显示。

[更新了第二个问题,请参见底部。]

1) 在CSS中,您可以使用两个、三个或多个像素值来指定
框阴影。
前两个是x,y偏移,另外两个是扩展值和半径。看

当您设置CSS规则(使用CSS或jQuery)时,浏览器会自动输入完整值(在本例中为四个
px
值)。这就是为什么在使用jQuery进行定位时会得到额外的值:最后一个是由浏览器默认行为给出的(请参阅in-Chrome inspector:它显示了您不必设置的值,因为它们是默认值)

2) .7或.701961也没什么不同。我认为您的代码看起来不错,但有时,浮点数(=小数)可能存在转换问题。我认为,计算机存储十进制数的方式可能会根据各种复杂的标准而有所不同。看

我想你不应该担心。也许有一种方法可以强制在JS或jQuery中进行适当的转换。说不出更多

希望我能帮忙。:)

更新 以下是关于(更新版本,而不是我对这个答案的评论)的实验。问题来自
var oneHeight=Math.ceil(0.012*window.innerHeight).toString()+“px”

我没有太注意它(对不起),但是
window.innerheight
返回的是窗口的高度。因此,阴影的y偏移将根据浏览器窗口的大小而变化。这就是为什么我们得到了一个完全不同的阴影


再一次,我对十进制问题没有其他解释^^

另一件事,在应用这个框阴影css之后,它不会影响未选中类的元素。。。(+1)好的,我通过实验发现了问题。我会在几分钟内更新基本答案。回答得好。我想进一步说明jQuery与此无关-您可以使用javascript
HTMLElement.style
进行操作,并得到相同的结果:。更新了我之前评论中链接的小提琴。更新了答案。:)(顺便说一句,我意识到这并不能真正解决不应用于未选中类的阴影问题。也许我的答案会让你走上正轨,也许你可以提供一些HTML^^。)
rgb(0, 140, 255) 0px 20px 0px 0px, rgba(0, 0, 0, 0.701961) 0px 20px 25px 0px