2013-06-05 19 views
8

mam kod następujące szynachLink na bootstrap glyphicon

<%= link_to mypath do %> 
    <%= content_tag(:i, "" ,:class=>' icon-eye-open' %> 
<% end %> 
<%= @num %> 

który generuje html

<a href="/mypath"> 
    <i class=" icon-eye-open"></i> 
</a> 
100 

Problemem jest to, jak widać w jsfiddle here, że gdy najeżdżając myszką na ikonę, tam to spacja między liczbą a ikoną. Miejsce jest potrzebne do celów wizualnych, ale jak mogę usunąć podkreślenie łącza bez css?

Dlaczego bez? Mogę zrobić text-decoration: none; dla niektórych selektorów css, konkretnych lub ogólnych, ale chcę zrozumieć, dlaczego to podkreślenie się dzieje. Jeśli usunięto @num, nie ma podkreślenia, a ponieważ znajduje się on poza znacznikiem zakotwiczenia, nie powinien mieć na nie wpływu. Oczywiście tak jest.

Odpowiedz

12

Dzieje się tak ze względu na spacji po</i>

Spróbuj zmienić swój kod w jsFiddle do:

<a href="/mypath"><i class=" icon-eye-open"></i></a>100 

i problem zniknie.

To dlatego element <i> jest rolki (lub raczej wbudowany blok), co oznacza, że ​​odstępy jest z reguły istotne.


Aby zapobiec ERB z tym nowej linii po tagu zamknąć go z tylnego -%>, tj:

<%= content_tag(:i, "" ,:class=>' icon-eye-open' -%> 
+0

+1 - mnie pokonać do niego. http://jsfiddle.net/LWJw6/ –

+0

HTML jest generowany automatycznie przez szyny, jaka jest różnica między wersją HTML? czyniąc go mniej porządnym? –

+0

ok, zaakceptuję to, ponieważ to doprowadziło mnie do rozwiązania. Jeśli zamknę tag content_tag z '' '-%>' '', to doprowadzi do tego samego wyniku, bez białych znaków. dzięki! –