http://jsfiddle.net/p959zse4/3/
我有一个带有“填充”区域的进度条和一个结束它的图像。在 Chrome 38、win8 和 hiDPI/retina 屏幕上,进度条和覆盖进度条的箭头图像之间有 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==")
}
最佳答案
我同事的理论是,问题是我使用的百分比宽度最终是像素的一小部分,如果我们能以某种方式将宽度向上/向下舍入到精确的像素,则不会出现间隙。
无论如何,我的解决方案最终是在图像的左边缘添加一行额外的像素,并添加 margin-left: -1px;到箭头图像,以便它在出现时覆盖间隙。
关于css - HiDPI 显示器上 div 之间的 1px 间隙,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26386621/