Chrome中的奇怪边框宽度行为 - 浮点边框宽度?

Chr*_*nes 22 css google-chrome

某些流体设计,尤其是那些涉及%-width iFrames的流体设计,似乎会在Chrome中引起一些奇怪的舍入类型错误(我已经获得了第21版).

这个小提琴演示了这个问题.将边框设置为整数像素值,当您要求它们时返回的值是略小于预期值的浮点数.

在CodePen中尝试完全相同的代码不会产生相同的结果,大概是因为iFrame和它周围的其他样式没有设置相同的方式.

(我也看到了基本宽度和高度属性的这种行为,虽然我无法在jsFiddle中复制问题的那一部分.)

这在Firefox或IE8中似乎不是问题.

关于什么,特别是导致这种奇怪的行为的任何想法,以及我如何解决它以获得真正的价值观?


情节变粗.为了解决问题,我发现超过10px的值似乎不受问题的影响.

此外,根据@ GionaF的评论,它似乎在Chrome 22中正常运行.

Exp*_*lls 13

我目前无法在Chrome中重现此行为,但此行为很可能与Subpixel Rendering有关.从本质上讲,Webkit将使用整数数学进行计算,以避免浮点不精确.

目前似乎border不使用子像素渲染,这可以解释为什么在新的Chrome版本中看不到该问题.


Wil*_*lem 11

要重现您的问题,我必须更改Chrome的缩放级别.将缩放级别更改回100%可以修复它.它似乎是一个错误,计算的边框宽度始终小于定义的边框宽度,放大或缩小!

当缩放级别为110%时,10px边框的值为10,但在125%时,它与3px边框的问题相同.

编辑:firefox有相同的行为!