CSS calc()舍入

时间:2014-09-19 16:57:22

标签: css css3 rounding css-calc

此问题与Chrome 37 calc rounding

类似

但真正的问题有点复杂,所提供的解决方案不适用于这种情况:

#outerDiv, #leftDiv, #middleDiv, #rightDiv{
    height: 100px;
    position: absolute;
}
#leftDiv, #rightDiv{
    width: 20px;
    z-index: 100;
    background-color: green;
}
#outerDiv{
    width: 100.5px;
    z-index: 1;
    background-color: red;
}
#middleDiv{
    width: calc(100% - 40px);
    z-index: 100;
    background-color: blue;
    left: 20px;
}
#leftDiv{
    left: 0;
}
#rightDiv{
    right: 0;
}
<div id="outerDiv">
    <div id="leftDiv">L</div>
    <div id="middleDiv">M</div>
    <div id="rightDiv">R</div>
</div>

Chrome中的结果:http://i.imgur.com/vNvFfHC.jpg

更多解释:outerDiv的宽度取决于随机的文本量,它位于另一个div中,也在outerDiv中。左边和右边的div包含一个图像,因此它们的宽度是静态的。

我们目前的解决方案是将calc更改为:calc(100% - 40px + 1px );有没有更好的解决方案?