2013-06-05 22 views
8

tôi có đường ray đoạn mã sauliên kết trên một glyphicon bootstrap

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

mà tạo ra html

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

Vấn đề là, như đã thấy trong jsfiddle here, mà khi rê chuột qua biểu tượng, có là khoảng trắng được gạch chân giữa số và biểu tượng. Không gian là cần thiết cho các mục đích trực quan, nhưng làm thế nào để loại bỏ gạch chân của liên kết mà không có css?

Tại sao không có? Tôi có thể làm text-decoration: none; cho một số bộ chọn css, cụ thể hoặc chung chung, nhưng tôi muốn hiểu tại sao gạch chân này xảy ra. Nếu số @num bị xóa, không có gạch chân và vì nó nằm ngoài thẻ neo, nó sẽ không ảnh hưởng đến nó. Tuy nhiên, nó rõ ràng là không.

Trả lời

12

này xảy ra do các khoảng trắng sau các </i>

Hãy thử chuyển đổi mã của bạn trong jsFiddle tới:

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

và vấn đề đi xa.

Điều này là do các yếu tố <i>inline (hay đúng hơn, inline-block), có nghĩa là khoảng trắng là, như một quy luật, có ý nghĩa.


Để ngăn chặn ERB từ bao gồm một dòng mới sau khi một thẻ gần nó với một trailing -%>, ví dụ:

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

+1 - bạn đánh bại tôi vào nó. http://jsfiddle.net/LWJw6/ –

+0

html được tạo tự động bằng đường ray, sự khác nhau giữa phiên bản html là gì? làm cho nó ít gọn gàng hơn? –

+0

ok Tôi sẽ chấp nhận nó vì nó đã dẫn tôi giải quyết nó. Nếu tôi đóng content_tag bằng '' '-%>' '' nó sẽ dẫn đến kết quả tương tự, không có khoảng trắng. cảm ơn! –

Các vấn đề liên quan