画像が見つからない場合、通常は代替テキストまたはデフォルトのプレースホルダー画像が表示されます。しかし、場合によっては、画像が存在しないことをユーザーに伝えるために画像を完全に非表示にしたい場合もあります。以下に、この目的を達成するためのいくつかの方法を紹介します。
-
onerror
属性を使用する方法:<img src="path/to/image.jpg" onerror="this.style.display='none';">
この方法では、
onerror
属性を使用して画像の読み込みエラーが発生したときに、対象の要素自体を非表示にします。onerror
イベントが発生すると、this
キーワードは現在の要素(ここでは<img>
要素)を参照します。 -
CSS の
:empty
疑似クラスを使用する方法:<img src="path/to/image.jpg">
img:empty { display: none; }
この方法では、画像要素の中にコンテンツが存在しない場合にのみ、
display: none;
プロパティを適用します。つまり、画像の読み込みに失敗した場合には、このスタイルが適用され、画像が非表示になります。 -
JavaScript を使用する方法:
<img src="path/to/image.jpg" id="myImage">
const img = document.getElementById('myImage'); img.onerror = function() { img.style.display = 'none'; };
この方法では、JavaScript を使用して画像の読み込みエラーを監視し、エラーが発生した場合に画像を非表示にします。
img
要素を取得し、onerror
イベントに対してイベントリスナーを設定します。
以上が、画像が見つからない場合にCSSを使用して非表示にする方法です。これらの方法を使えば、ユーザーに対して適切なエラーメッセージを表示することなく、画像をシームレスに非表示にすることができます。