2012-03-12 14 views
7

Mam następujące HTML:Fix niebieska linia na Google Chrome

<div id="a"><div id="b">aga ad gdas ga gs ds da dgs sd ds dg gdgsdgwa</div></div> 

i CSS:

#a, #b { 
    position: absolute; 
    height: 10px; 
    font-size: 10px; 
    white-space:nowrap; 
    display: block; 
} 
#a { 
    width: 200px; 
    overflow: hidden; 
} 

i JavaScript:

var x = 0; 

setInterval(function() { 
    if ($('#b').position().left < (-$('#b').width())) { 
     x = 305; 
    } 
    $('#b').css('left', (x--) + 'px') 
}, 50); 

który działa dobrze w Firefox i Internet Explorer jednak w przeglądarce Google Chrome 17 pokazuje niebieską linię na końcu zdania. See live jsfiddle demo.

Blue line on Google Chrome

Jak mogę to naprawić?

+4

Co dziwne problem ... – Blindy

+0

@Blindy Niektóre teksty działają dobrze, ale ten kończący się na 'a' lub' w' spowoduje pojawienie się linii. Może to być problem z wyświetlaniem Google Chrome ... – RedDragon

+0

Brak linii w Chrome 17.0.963.79 m. – j08691

Odpowiedz

8

Jestem prawie pewien, że jest to przerysowanie czcionek/usterka renderowania. Widziałem to w Javie. Prawdopodobnie ma to niewiele wspólnego z twoimi JS i CSS (na szczęście i niestety).

Sztuką jest zmuszenie go do przerysowania miejsca, w którym tworzona jest smuga. Na szczęście można to łatwo naprawić w tym scenariuszu: wystarczy dodać padding-right:1px; do elementu #b.


Edytuj: Możesz rozważyć przesłanie tego błędu do Google/Apple (ponieważ problem występuje zarówno w przeglądarce Chrome, jak i Safari).

+0

To działa. Napraw padding: prawo do padding-right, ponieważ nie pozwala mi przesłać prośby o zmianę, zmieniając tylko jeden znak w odpowiedzi. – RedDragon

+0

@RedDragon Whups. Dzięki, że wspomniałeś o tym błędzie. –

+0

czy wspólnym mianownikiem nie byłby WebKit? –

6

Co ciekawe, im jaśniejszy jest kolor BG, tym jaśniejsza jest błędna niebieska linia. Font-smoothing nie naprawił tego.

1px padding-right naprawia (dodałem -1px margin-right, aby to zrekompensować).

http://jsfiddle.net/MqQG3/1/

+1

Czy wygładzanie czcionek zwykle rozwiązuje taki problem? –

+1

@JeffreySweeney - może. Wygląda na to, że problem związany jest z ciągłym antyaliasingowym pikselem krawędziowym na znaku; w teorii zmiana typu wygładzania może to zmienić. –

+0

Ponadto, jeśli powiększysz, w rzeczywistości wygląda jak pojedyncza kropka od krawędzi szeryfa na linii bazowej czcionki. –

1

miałem podobny problem i rozwiązać go za pomocą Math.floor(), aby integerise moje szerokość, wysokość i background-size właściwości ...