我有以下HTML:
<div id="a"><div id="b">aga ad gdas ga gs ds da dgs sd ds dg gdgsdgwa</div></div>
和CSS:
#a, #b {
position: absolute;
height: 10px;
font-size: 10px;
white-space:nowrap;
display: block;
}
#a {
width: 200px;
overflow: hidden;
}
和Javascript:
var x = 0;
setInterval(function() {
if ($('#b').position().left < (-$('#b').width())) {
x = 305;
}
$('#b').css('left', (x--) + 'px')
}, 50);
在Firefox和Internet Explorer中运行良好,但在Google Chrome 17上,它在句子末尾显示一条蓝线。 See live jsfiddle demo
我该如何解决?
答案 0 :(得分:8)
我很确定这是一个字体重绘/渲染故障。我在Java中看到过它。它可能与你的JS和CSS没什么关系(幸运的是,不幸的是)。
诀窍是强制它重绘条纹的位置。幸运的是,在这种情况下很容易解决:只需将padding-right:1px;
添加到#b
元素。
编辑:您可能需要考虑将此错误提交给Google / Apple(因为Chrome和Safari都会出现此问题)。
答案 1 :(得分:6)
有趣的是,BG颜色越浅,错误的蓝线就越亮。 Font-smoothing没有修复它。
1px padding-right
修正了它(我添加了-1px margin-right
来补偿)。
答案 2 :(得分:1)
我遇到了类似的问题,并使用Math.floor()解决了我的宽度,高度和背景大小属性......