2013-03-19 17 views

Odpowiedz

21

To było naprawdę podchwytliwe pytanie.

Jedynym rozwiązaniem mogę wymyślić jest przejściowym border-bottom na :hover czy powinienem powiedzieć, że rzeczywiście jestem przejście border-bottom, width i margin-right aby border-bottom pojawiają się i jednocześnie zachować, w tym przypadku, wyrównane linki.

Trudno wytłumaczyć, więc zrobiłem szybki przykład, który nie jest doskonały i wygląda trochę niechlujnie, ale przynajmniej pokazuje, o co mi chodzi. :-)

FIDDLE

HTML

<a href="#">Link</a><a href="#">Link</a> 

CSS

a { 
    text-decoration: none; 
    display: inline-block; 
    border-bottom: 1px solid blue;  
    margin-right: 39px; 
    width: 0px; 
    -webkit-transition: 0.5s ease; 
      transition: 0.5s ease; 
} 

a:hover { 
    -webkit-transition: 0.5s ease; 
      transition: 0.5s ease; 
    border-bottom: 1px solid blue; 
    width: 30px; 
    margin-right: 9px; 
} 
+6

Ustawienie szerokości na 0, a tym samym mieć rzeczywisty przepływ treści Spośród linków może mieć skutki uboczne dla reszty układu. Zamiast tego sugeruję użycie generowanego elementu (: after), ustaw go absolutnie na dole linku, a zamiast tego animuj szerokość tego pseudo elementu. – CBroe

+0

który działa dobrze dla mnie człowieku, dziękuję bardzo! – ziltoid