Czy można wyświetlić alternatywny obraz, jeśli oryginalny plik źródłowy nie został znaleziony? Chciałbym osiągnąć to tylko z css i html, bez javascript (lub jQuery i podobne). Chodzi o to, aby nadal wyświetlać obraz zamiast testu "alt" lub domyślnego (brzydkiego) krzyża IE. Jeśli nie jest to możliwe bez javascript, to raczej sprawdzę img src z php z podstawowym if-then-else.Wyświetl alternatywny obraz
Odpowiedz
Można to zrobić za pomocą własności CSS background-image elementu img, tj
img
{
background-image:url('default.png');
}
Jednak trzeba dać szerokości lub wysokości dla tej pracy (gdy img-src nie jest znaleziono):
img
{
background-image:url('default.png');
width:400px;
}
<object data="foobar.png" width=200 height=200>
<img src="test.png" alt="Just testing.">
</object>
Tutaj foobar.png
jest głównym obraz, test.png
jest obraz zastępczy. Poprzez semantykę elementu object
zawartość elementu (tutaj: element img
) powinna być renderowana wtedy i tylko wtedy, gdy nie można użyć danych podstawowych (określonych za pomocą atrybutu data
).
Chociaż przeglądarki miały straszne błędy w implementacjach object
w ubiegłym roku, ta prosta technika wydaje się działać na nowoczesnych wersjach IE, Firefox, Chrome.
Przypadek testowy: http://jsfiddle.net/VkrJ4/1/ OK w * W7Pro x64 * z Fx 12.0, IE9, Saf 5.1.5 i Op 11.64. Nie testowano w Chrome/Chromium. Na razie nie przetestowane z czytnikami ekranu i innymi terminalami AT (pytanie: czy NVDA, JAWS, VoiceOver, ORCA itd. Czytają tekst "@alt" swoim użytkownikom?) – FelipeAls
Bardzo proste i najlepszym sposobem osiągnięcia tego celu z niewielkim kodu
<img class="avatar" src="img/one.jpg" alt="Not Found" onerror=this.src="img/undefined.jpg">
Dla mnie powyżej działa idealnie!
Bardzo przydatny fragment, który rozwiązuje problem elegancko. Jednak OP wyraźnie poprosił * ", aby osiągnąć to tylko z css i html, bez javascript" * – domsson
Czy też nie powinno to być 'onerror =" this.src = 'img/undefined.jpg'; "'? Plus, zobacz to pytanie, aby uzyskać możliwą nieskończoną pętlę i jak temu zapobiec: http://stackoverflow.com/questions/8124866/how-does-one-use-the-onerror-attribute-of-an-img-element – domsson
- 1. Wyświetl obraz bez gtk
- 2. Wyświetl BLOB (obraz) przez JSP
- 3. Wyświetl obraz w formularzach okienkowych
- 4. Wyświetl obraz na środku strony
- 5. Wyświetl obraz w formacie pdf
- 6. Sprawdź, czy ObservableCollection, a jeśli tak, wyświetl alternatywny xaml!
- 7. CSS Ukryj tekst, ale wyświetl obraz?
- 8. Wyświetl obraz w aplikacji o statusie kakao
- 9. Django: Wyświetl obraz w interfejsie administratora
- 10. Wyświetl grafikę Qt, pokaż obraz! Widget
- 11. Android: Wyświetl obraz z karty SD
- 12. Wyświetl obraz Ashx za pomocą jQuery?
- 13. iPhone: Wyświetl obraz w oryginalnym rozmiarze
- 14. Wyświetl obraz podglądu z klipu wideo
- 15. Wyświetl obraz w formacie JPG na JPanel
- 16. Wyświetl obraz lub UIImage z zwykłym CALayerem
- 17. Wybierz i wyświetl obraz (y) używając FileReader
- 18. CGRectMake alternatywny
- 19. : jak włączyć alternatywny ekran?
- 20. Alternatywny Photo Alternative Three20?
- 21. Maven - alternatywny katalog .m2
- 22. Pozycjonowanie obrazu tekst alternatywny
- 23. JavaScript jeśli alternatywny
- 24. Wyświetl obraz w oparciu o wartość w asp GridView kolumna
- 25. Wyświetl obraz jako skala szarości za pomocą matplotlib
- 26. Wyświetl obraz w jego rzeczywistym rozmiarze w angular.js
- 27. Javascript: Załaduj obraz z adresu URL i wyświetl
- 28. Wyświetl tablicę NumPy jako stale aktualizującą obraz z Glumpy
- 29. Załaduj obraz Dicom i wyświetl go - przy użyciu biblioteki ClearCanvas.
- 30. Wyświetl obraz w zakresie bez konwersji na element blokowy
Czy to zadziałało, gdy je testowałeś? W moim Firefoksie tło nie jest wyświetlane, gdy brakuje prawdziwego obrazu. W moim IE wyświetlane jest tło, ale tak samo jak tekst altowy lub czerwone "×" w polu. –
Już wybrałem Aswer, ale mam jeszcze pytanie: co masz na myśli mówiąc "musisz podać szerokość lub wysokość do pracy (gdy img-src nie zostanie znaleziony)"? Czy mój znacznik img ma już szerokość i wysokość, które będą używane również przez obraz tła? – rodedo
Tak, myślę, że to powinno zadziałać. – emrea