【发布时间】:2016-10-21 19:53:02
【问题描述】:
我在具有绝对位置的页面上有一个大小为 33,554,432x33,554,432 像素的巨大 div。它里面有两个具有这些样式的 div:
position: absolute;
left: calc(64.2571% - 1px);
top: 100px;
width: 46px;
height: 10px;
和
position: absolute;
left: calc(64.2571% + 1px);
top: 111px;
width: 46px;
height: 10px;
应该放在彼此相差2个像素的位置,但它们的左边位置绝对没有区别。
如果我将左侧属性更改为calc(64.2571% - 2px); 和calc(64.2571% + 2px);,它工作正常。
我试图在这些条件下发布一个小提琴,但在 jsfiddle 它工作正常。我担心这是一个愚蠢的问题,但我检查了所有内容,但无法解决。
我使用的是 Chrome 版本 51.0.2704.103 m。
我刚刚创建了一个类似的fiddle。
【问题讨论】:
-
我只是想知道为什么你需要那种数字
64.2571%...我猜这可能是浏览器版本问题以及它对 px 值进行四舍五入的方式? -
这与 calc 的结果四舍五入有关。 calc 的结果是 21561104.9247。这主要基于浏览器进行四舍五入,并且在 chrome 中存在一个错误。 stackoverflow.com/questions/25662159/chrome-37-calc-rounding
-
对不起。 3300万像素乘3300万?什么。
-
@SiddharthGupta 这个问题是 Chrome 37 的错误,我在我的 Chrome 51 中看不到那个错误。我认为不一样。
-
@DaniP 它们之间有 2 个像素的差异,四舍五入可能只会将其减少到 1 个像素,而不是零。
标签: html css google-chrome