Chrome 37计算四舍五入

时间:2014-09-04 09:41:49

标签: css google-chrome css-calc

<div id="outerDiv">
    <div id="innerDiv"></div>
    <div id="remainderDiv"></div>
</div>

#outerDiv, #innerDiv, #remainderDiv{
    height: 100px;
}
#outerDiv{
    width: 55.5px;
    z-index: 1;
    background-color: red;
}
#innerDiv{
    width: calc(100% - 10px);
    z-index: 100;
    background-color: blue;
    float: left;
}
#remainderDiv{
    width: 10px;
    z-index: 100;
    background-color: green;
    float: left;
}

http://jsfiddle.net/yz8cwj3a/

结果:http://i.imgur.com/DYor2yb.png

这个小提示显示Chrome 37的问题。对具有小数像素的元素使用calc(100% - 10px)函数,它总是向下舍入。这会导致奇怪的事情。

在示例中,外部div的宽度为50.5px。两个内部div具有calc(100% - 10px)和10px作为宽度。尽管总数应该是50.5,但它仍然显示红色背景。

问题似乎是在Chome 37中引入的。有没有人知道这个问题是否已被报道和/或是否会被解决?

编辑:我从评论中了解到该问题已经存在了很长时间。有没有(跨浏览器)整洁的方法来解决这个问题?

2 个答案:

答案 0 :(得分:2)

答案 1 :(得分:1)

在检查元素后,似乎很清楚:

1)width: 55.5px;被四舍五入到56px和

2)width: calc(100% - 10px); - 将100%宽度向下舍入为55px

这会在56px宽的容器中留下1px的红色。

因此,作为解决方法,只需简单地避免向您添加宽度,

并使用不同的方法来填充&#39;容器,例如overflow:hidden

<强> FIDDLE

这样,余数div将是10px或11px - 但至少布局不会中断