CSS:0.1em === WTF,浮点不准确?

时间:2014-10-16 15:56:52

标签: html css css3 floating-point-precision

http://jsfiddle.net/7yda75v0/8/

如果我在最新的Chrome(38.0.2125.104)上打开我的mac book上的小提琴高度 8 ,在Safari(7.0.3(9537.75.14)中) 10 ,在Firefox(32.0.3) 4

我的同事在几乎同一台机器上有 9 (我的Mac有1.7 Ghz,他的2.0Ghz)。 Mac book pro设备也有不同的价值。

看起来像浮点不准确,但为什么?它不是浏览器而不是显示器。通过 CMD +

启用浏览器缩放时,您可以获得一些有趣的值

将字体大小更改为 .t2 1.0em会导致无差异,即使使用浏览器缩放也是如此。 问题不仅限于非常小的em值,它也适用于非自然数,例如1.1em

//编辑:这不仅适用于remem也存在问题。

1 个答案:

答案 0 :(得分:1)

请注意,rem是根据根字体大小计算的。每个浏览器和显示器计算不同的像素值。此外,css像素不一定对应于屏幕像素,或浏览器对所得屏幕像素的计算。该值随浏览器缩放而变化,因为放大时根字体大小会发生变化。

编辑:

.t2相对于.t1的实际大小似乎适用于除Chrome之外的所有浏览器,Linux,OSX和Windows。缩小时,.t2显示大于.t1。但是,0.2rem1rem等值会正确显示。放大OSX(7.0.6)上的Safari,Linux上的Firefox和Windows上的IE都可以正常显示。