HiDPI显示屏上div之间的1px间隙

时间:2014-10-15 15:42:27

标签: css retina-display

http://jsfiddle.net/p959zse4/3/

我有一个带有“填充”区域的进度条和一个覆盖它结尾的图像。在具有hiDPI / retina屏幕的Chrome 38,win8上,进度条与限制条形图的箭头图像之间有1px的间隙。这取决于条的位置,有时没有间隙。是否有任何标准方法可以消除这种差距?

另外,我正在使用css过渡属性来设置宽度变化的动画,并且在过渡期间间隙似乎会闪烁。

<div class="progress">
    <div class="fill" style="width: 10%"></div><div class="arrow"></div>
</div>

.progress {
    width: 100%;
    background-color: lightgray;
    height: 20px;
}

.fill {
    display: inline-block;
    height: 20px;

    transition: width 1s;
    background: linear-gradient(to right, #d0d9d8 0%, rgb(237, 28, 36) 100%)
}

.arrow {
    display: inline-block;
    width: 10px;
    height: 20px;
    background-image: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAsAAAAUCAIAAADUTlA/AAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAAJcEhZcwAAFiUAABYlAUlSJPAAAAAaSURBVChTY3gro4IfjapARaMqUBE9VMioAABP/AK8RcGPowAAAABJRU5ErkJggg==")
}

1 个答案:

答案 0 :(得分:0)

我的同事的理论是问题是我使用的百分比宽度最终只是像素的一小部分,如果我们能以某种方式将宽度向上/向下舍入到精确像素,则不会出现间隙。

无论如何,我的解决方案最终是在图像的左边缘添加额外的像素线,并添加margin-left:-1px;到箭头图像,以便在它出现时覆盖间隙。