2012-10-01 30 views
5

Theo hành vi mặc định, thuộc tính alt được hiển thị lần đầu tiên ngay trước khi hiển thị hình ảnh. Tôi đang hiển thị 25 hình ảnh trong lưới nên có vẻ hơi khó xử vì tất cả các thuộc tính alt được hiển thị trước tiên.ẩn thẻ alt trong firefox

Có thể ẩn thuộc tính alt trong Firefox không?

Lưu ý:alt thuộc tính chứa tên động trong trường hợp của tôi.

Trả lời

12

cách để ngăn chặn alt giá trị thuộc tính từ được hiển thị là để loại bỏ các thuộc tính.

Ý nghĩa của thuộc tính alt (không phải thẻ) là nó chỉ định phương án thay thế, hình ảnh thay thế cho hình ảnh, trong trường hợp hình ảnh không được hiển thị. Vì vậy, nếu bạn muốn ẩn nó khi hình ảnh chưa được tải, bạn đang yêu cầu hành vi mâu thuẫn với ý nghĩa của thuộc tính.

Tuy nhiên, bạn có thể làm cho văn bản alt ẩn (với CSS Caveats thông thường) trên Firefox bằng cách đặt ví dụ:

img { background: white; color: white; } 

trong CSS.Điều này ngụ ý rằng các văn bản alt cũng vô hình trong trường hợp trình duyệt không bao giờ nhận được hình ảnh hoặc trình duyệt đã được định cấu hình không hiển thị hình ảnh.

+1

Rất cám ơn !! Điều này đã giải quyết được vấn đề của tôi. – neeraj

0

Bạn có thể đặt tên động trong thuộc tính tiêu đề không? Bạn có thể thử một nền đen hoặc hình nền đen; có thể Firefox vẫn sử dụng màu văn bản màu đen. Có thể img { color: white; } sẽ làm gì?

+0

Tôi đã đặt tên động trong thẻ alt cũng như tiêu đề. Tôi cũng đã thử đặt màu: màu trắng làm kiểu nội tuyến cho hình ảnh nhưng nó không hoạt động. Tôi đang sử dụng plugin wp-wordpress và sau khi áp dụng kiểu nội tuyến, thậm chí không phải một hình ảnh được hiển thị. – neeraj

0

Nếu bạn không nhớ thêm một chút thêm, ở đây nó là:

<img src = "283414_2114217089554_728204_nn.jpg" onload="this.setAttribute('alt','this is the alt of my image');" /> 

Hy vọng rằng sẽ giúp ... :))

+0

Tôi cần phải ẩn các thẻ alt hiện có, không thay thế thẻ đó bằng một thứ khác mà bạn đã mô tả trong ví dụ của mình. – neeraj

0

Thay vì lo lắng về alt chức năng, bạn có thể cho tất cả hình ảnh của bạn là một lớp phổ biến, giả sử image-to-show và tạo div tải hoàn toàn được định vị trên hình ảnh này. Vì vậy, khi tải trang, bạn chỉ hiển thị div tải, với gif tải, như sau:

// show loading image 
$('.loader').show(); 

Khi hình ảnh được tải, bạn có thể ẩn div và hiển thị hình ảnh.

// main image loaded ? 
$('.image-to-show').load(function(){ 
    // hide/remove the loading image 
    $('.loader').hide(); 
}); 

Bạn có thể tăng cường mã này bằng cách sử dụng ID hình ảnh cụ thể. Một cách khác để làm điều đó là đặt data-loading thành true cho hình ảnh đang tải và khi hình ảnh được tải, hãy đặt $('.image-to-show').data('loading', false)

Có nhiều cách giải quyết vấn đề này, cho tôi biết nếu bạn cần làm rõ thêm.

+0

Thật không may tôi không thể làm điều này bởi vì hình ảnh đang được render bởi một plugin (Wordpress). Vì vậy, tôi không thể thực hiện bất kỳ thay đổi nào trong các tệp lõi của plugin. Tôi đang tìm một giải pháp chỉ để ẩn thẻ alt. – neeraj

+0

Vâng, phần hay nhất về làm việc với CMS như wordpress là bạn có thể linh hoạt sửa đổi mã theo cách bạn muốn nó hoạt động. Nhưng dù sao, plugin sẽ tạo ra một số đánh dấu, cho hình ảnh của bạn. Lấy ID hoặc lớp cho hình ảnh làm công cụ chọn của bạn, nhận thuộc tính 'alt' trong một biến, xóa sạch nó và tải hình ảnh ghi lại nó vào DOM. Xấu xí, nhưng chức năng: D – rizwaniqbal

0

Tôi muốn bắt đầu bằng cách thêm CSS này, mà sẽ ẩn tất cả các hình ảnh với alt văn bản (không display: none bởi vì chúng tôi muốn hoàn tác này và chúng tôi sẽ không biết phải lùi lại đến):

img[alt] { 
    width: 0; 
    height: 0; 
} 

Và sau đó cho thấy nó khi nó đã được tất cả nạp (này sử dụng jQuery):

$(document).ready(function() { 
    $('img[alt]').on('load', function() { 
     this.style.width = 'auto'; 
     this.style.height = 'auto'; 
    }); 
}); 
14

Sau khi thử tất cả các phương pháp khác ở đây, tôi thấy phương pháp này có hiệu quả nhất mà làm cho văn bản trong suốt cho đến khi tải hình ảnh:

.yourClass img { 
    color: transparent; 
} 
0

Ngoài thiết để:

img { 
    background: white; 
    color: white; 
} 

tôi thích để tắt hoạt động của hình ảnh mặc định của Firefox:

img:-moz-loading { 
    visibility: hidden; 
} 
Các vấn đề liên quan