2011-08-08 42 views
20

Tôi cần thay đổi thứ gì đó mà không cần chạm vào mã HTML.CSS Ẩn văn bản nhưng hiển thị hình ảnh?

Vì vậy, tôi có mã này trong HTML của tôi

     <span class="share"> 
          <ul> 
           <li>Share &nbsp;&nbsp;</li> 
           <li class="twitter"><a href="#">twitter</a></li> 
           <li class="facebook"><a href="#">facebook</a></li> 
           <li class="delicious"><a href="#">delicious</a></li> 
           <li class="friendfeed"><a href="#">friendfeed</a></li> 
           <li class="addthis"><a href="#">share</a></li> 
           <div class="clear"></div> 
          </ul> 
         </span> 

và điều này trong CSS

  .twitter {background:url('../images/tt.png') no-repeat; width:10px; height:14px; } 

này hoạt động tốt, nhưng twitter văn bản là có thể nhìn thấy dưới logo twitter, tôi không muốn những văn bản xuất hiện trong danh sách của tôi, tôi muốn thay thế chúng bằng hình ảnh trong CSS.

Có thể thực hiện mà không cần chạm vào Mã HTML không?

+0

Ở đây: https://jsfiddle.net/hetr1whg/ –

Trả lời

55

Làm cho văn bản trong suốt. Kể từ đó là một liên kết, bạn sẽ muốn sử dụng một vài bộ chọn để đảm bảo tất cả các trường hợp được giải quyết:

.twitter a, .twitter a:link, .twitter a:visited 
{ 
    color: transparent; 
} 

Edit: lựa chọn nào khác này, trong khi tiết hơn, có lợi ích của việc giữ biên giới tập trung (các chấm nhỏ xuất hiện khi liên kết được chọn) với kích thước và hình dạng của biểu tượng twitter. Ngoài ra, văn bản sẽ không được tiết lộ nếu được chọn và sao chép và dán. Nó trở nên vô hình và không thể chọn được. Đây là kỹ thuật này:

.twitter a { 
    display: inline-block; 
    overflow: hidden; 
    width: 0; 
    height: 14px; 
    padding-left: 10px; 
} 
+0

Văn bản có thể chọn và chiều rộng thay đổi, tôi nhận được 5 liên kết đánh dấu trang xã hội bên cạnh nhau, tôi muốn phần đệm của chúng bằng nhau. – Tumay

+0

@Tumay - Funny, bản chỉnh sửa của tôi đã xuất hiện sau một giây kể từ bình luận của bạn và có vẻ như là địa chỉ của bạn một cách hoàn hảo. :) – gilly3

+0

phương pháp thứ hai hoạt động như một sự quyến rũ! Cảm ơn rất nhiều :) – Tumay

8

Bạn có thể sử dụng text-indent:

text-indent: -9999px; /* get rid of any text */ 
+0

Điều đó di chuyển liên kết quá. Biểu tượng twitter trở nên không thể nhấp được. – gilly3

-1

tôi có thể nhận được câu hỏi của bạn sai. Nhưng bạn muốn ẩn văn bản. Tôi sẽ sử dụng jQuery, tuy nhiên hãy nhớ rằng, <a> của bạn sẽ mất khối lượng.

<script> 
    $('.twitter a').html(''); 
</script> 
4

sử dụng text-indent với một chút ma thuật trong nó :)

HTML:

  <span class="share"> 
       <ul> 
        <li>Share &nbsp;&nbsp;</li> 
        <li class="twitter"><a href="#" class="twitter">twitter</a></li> 
        <li class="facebook"><a href="#">facebook</a></li> 
        <li class="delicious"><a href="#">delicious</a></li> 
        <li class="friendfeed"><a href="#">friendfeed</a></li> 
        <li class="addthis"><a href="#">share</a></li> 
        <div class="clear"></div> 
       </ul> 
      </span> 

CSS:

a.twitter { 
    background-image:url('../images/tt.png'); 
    display:block; 
    height:58px; 
    text-indent:-9999px; 
    width:200px; 
} 

Vì vậy, bạn thấy văn bản được thụt vào nhưng vẫn là hình ảnh là stil l có thể nhấp được vì tôi đã đặt một lớp trong liên kết twitter;)

4

Hãy thử tạo font-size : 0px; trong css của bạn.

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