Có thể hiển thị hình ảnh thay thế nếu không tìm thấy tệp nguồn gốc không? Tôi muốn đạt được điều này chỉ với css và html, không có javascript (hoặc jQuery và như nhau). Ý tưởng là vẫn hiển thị hình ảnh thay vì thử nghiệm "alt" hoặc dấu chéo (mặc định) xấu của IE. Nếu không thể không có javascript, tôi sẽ kiểm tra img src bằng php với cơ bản nếu-thì-else.Hiển thị hình ảnh thay thế
Trả lời
Bạn có thể làm điều này bằng cách sử dụng CSS tài sản background-image của phần tử img, tức là
img
{
background-image:url('default.png');
}
Tuy nhiên, bạn phải từ bỏ một chiều rộng hoặc chiều cao để làm việc này (khi img-src không phải là tìm thấy):
img
{
background-image:url('default.png');
width:400px;
}
<object data="foobar.png" width=200 height=200>
<img src="test.png" alt="Just testing.">
</object>
đây foobar.png
là hình ảnh chính, test.png
là hình ảnh dự phòng. Theo ngữ nghĩa của phần tử object
, nội dung của phần tử (ở đây là phần tử img
) phải được hiển thị nếu và chỉ khi dữ liệu chính (được chỉ định bởi thuộc tính data
) không thể được sử dụng.
Mặc dù các trình duyệt có lỗi khủng khiếp khi triển khai object
trong năm qua, kỹ thuật đơn giản này dường như hoạt động trên các phiên bản hiện đại của IE, Firefox, Chrome.
Trường hợp kiểm tra: http://jsfiddle.net/VkrJ4/1/ OK trong * W7Pro x64 * với Fx 12.0, IE9, Saf 5.1.5 và Op 11.64. Chưa được thử nghiệm với Chrome/Chromium. Không được thử nghiệm với trình đọc màn hình và các AT khác hiện tại (câu hỏi là: "NVDA, JAWS, VoiceOver, ORCA, v.v. đọc văn bản @alt cho người dùng của họ?") – FelipeAls
Rất đơn giản và cách tốt nhất để đạt được điều này với mã ít
<img class="avatar" src="img/one.jpg" alt="Not Found" onerror=this.src="img/undefined.jpg">
Đối với tôi các công trình trên hoàn hảo!
Đoạn trích thực sự hữu ích giải quyết vấn đề một cách thanh lịch. Tuy nhiên, OP yêu cầu một cách rõ ràng * "để đạt được điều này chỉ với css và html, không có javascript" * – domsson
Ngoài ra, không nên là 'onerror =" this.src = 'img/undefined.jpg'; "'? Ngoài ra, hãy xem câu hỏi này cho một vòng lặp vô hạn có thể và cách ngăn chặn nó: http://stackoverflow.com/questions/8124866/how-does-one-use-the-onerror-attribute-of-an-img-element – domsson
- 1. Hiển thị hình ảnh từ một loạt hình ảnh - Javascript
- 2. Hiển thị hộp hình ảnh nhanh hơn
- 3. Thiết bị Retina iOS không hiển thị hình ảnh @ 2X, nó hiển thị hình ảnh 1X
- 4. iTunes không hiển thị hình ảnh podcast
- 5. Hiển thị hình ảnh ở giữa trang
- 6. Cách hiển thị hình ảnh từ web?
- 7. Hiển thị hình ảnh trong Iframe
- 8. Hiển thị hình ảnh trong gsp (grails)
- 9. PHP, hình ảnh hiển thị với Header()
- 10. Hiển thị hình ảnh trong TextBlock (WPF)
- 11. Làm thế nào để hiển thị hình ảnh trong RSS?
- 12. Làm thế nào để hiển thị Hình ảnh trong pygame?
- 13. Hình ảnh hiển thị không có gtk
- 14. hình ảnh cũ hiển thị sau khi thay thế bằng hình ảnh cũ trong ứng dụng ios
- 15. Hiển thị hình ảnh trong Leaflet Popup
- 16. Hiển thị LaTeX với hình ảnh
- 17. Android: Hiển thị hình ảnh trong Webview
- 18. hiển thị hình ảnh lớn trong Android
- 19. làm jfilechooser hiển thị hình thu nhỏ hình ảnh
- 20. Hiển thị HTML dưới dạng Hình ảnh
- 21. Hiển thị biểu tượng trong hình ảnh
- 22. Hiển thị hình ảnh trong Java
- 23. Hiển thị hàng TRUNG TÂM hình ảnh
- 24. Hiển thị hình ảnh trox bằng jQuery?
- 25. Hiển thị hình ảnh bằng EPUBLIB
- 26. hiển thị hình ảnh lạ lộng lẫy
- 27. Hiển thị hình ảnh với pylab.imshow()
- 28. Hiển thị hình ảnh từ QAbstractTableModel
- 29. Hiển thị BLOB (hình ảnh) qua JSP
- 30. hiển thị hình ảnh trong JComboBox
Sản phẩm có hoạt động khi bạn thử nghiệm không? Trên Firefox của tôi, nền không được hiển thị khi hình ảnh thực sự bị thiếu. Trên IE của tôi, nền được hiển thị, nhưng văn bản thay thế hoặc chữ “×” màu đỏ trong một hộp. –
Tôi đã chọn aswer nhưng tôi vẫn còn một câu hỏi: bạn có ý gì với "bạn phải cung cấp cho một chiều rộng hoặc chiều cao cho điều này để làm việc (khi img-src không được tìm thấy)"? Nếu thẻ img của tôi đã có chiều rộng và chiều cao sẽ được sử dụng bởi hình nền? – rodedo
Vâng, tôi nghĩ điều đó sẽ hiệu quả. – emrea