IMG
CSS background-image
とは逆に、HTML タグを使用して画像を表示する方が適切な状況はどれですか。
要因には、アクセシビリティ、ブラウザサポート、動的コンテンツ、またはあらゆる種類の技術的な制限や使いやすさの原則が含まれます。
IMG
CSS background-image
とは逆に、HTML タグを使用して画像を表示する方が適切な状況はどれですか。
要因には、アクセシビリティ、ブラウザサポート、動的コンテンツ、またはあらゆる種類の技術的な制限や使いやすさの原則が含まれます。
回答:
IMG
人にページを印刷してもらいたい場合や、デフォルトで画像を含めたい場合に使用します。— JayTeeIMG
(alt
テキスト付きで)使用します。これにより、スクリーンリーダーを含むすべてのユーザーエージェントで画像の意味を確実に伝えることができます。IMG
画像がロゴや図表、人物(実在の人物、ストックフォトの人物ではない)などのコンテンツの一部である場合は、プラスalt属性を使用します。— sanchothefatIMG
テキストのサイズに比例して画像をレンダリングするためにブラウザのスケーリングに依存している場合に使用します。IMG
で複数のオーバーレイ画像に使用します。IMG
、と一緒に使用します。z-index
img
代わりにを使用するとbackground-image
、背景のアニメーションのパフォーマンスを劇的に向上させることができます。background-image
人にページを印刷してもらいたいのに、デフォルトで画像を含めたくない場合に使用します。— JayTeebackground-image
ように、ダウンロード時間を改善する必要がある場合に使用します。background-image
CSSスプライトのように、画像の一部のみを表示する必要がある場合に使用します。background-image
with background-size:cover
を使用します。<div class="my-css-page-styles" style="background-image:url(blah.png);"></div>
その方法でCSSスタイルシートでスタイルを設定できますが、背景画像がスタイルよりもコンテンツの問題である場合は、HTML側から編集しています。
それは私にとって白黒の決断です。画像がロゴや図表、人物(実在の人物、ストックフォトの人物ではない)などのコンテンツの一部である場合は、<img />
タグとalt属性を使用します。それ以外には、CSS背景画像があります。
CSSの背景画像を使用するもう1つのタイミングは、テキストの画像置換を行うときです。段落/ヘッダー。
まだ誰もこれについて言及していないことに驚いています。CSSトランジションです。
div
の背景画像をネイティブに移行できます。
#some_div {
background-image:url(image_1.jpg);
-webkit-transition:background-image 0.5s;
/* Other vendor-prefixed transition properties */
transition:background-image 0.5s;
}
#some_div:hover {
background-image:url(image_2.jpg);
}
これは、フェードするJavaScriptやjQueryのアニメーションのあらゆる種類の節約<img/>
のをsrc
。
MDNの移行に関する詳細情報。
#some_div { transition: opacity 0.5s; }
、 #some_div:hover #top_img { opacity: 0; }
上記の回答では、デザインの側面のみを考慮しています。私はそれをSEOの側面でリストしています。
いつ使うか <img />
alt
およびtitle
属性付けできる画像。CSSを使用する場合 background-image
これらの理由に基づいて使用します。これらは、画像の検索エンジン最適化の推奨事項です。
ブラウザは、デフォルトで常に背景画像を印刷するように設定されているわけではありません。人々にあなたのページを印刷してもらうつもりなら:)
CSSが外部ファイルにある場合、サイト全体で頻繁に使用される画像(ヘッダー画像など)を背景画像として表示すると、後で画像を柔軟に変更できるので便利です。
たとえば、次のHTMLがあるとします。
<div id="headerImage"></div>
...そしてCSS:
#headerImage {
width: 200px;
height: 100px;
background: url(Images/headerImage.png) no-repeat;
}
数日後、イメージの場所を変更します。CSSを更新するだけです。
#headerImage {
width: 200px;
height: 100px;
background: url(../resources/images/headerImage.png) no-repeat;
}
それ以外の場合は、すべてのHTMLファイルのsrc
適切な<img>
タグの属性を更新する必要があります(プロセスを自動化するためにサーバー側スクリプト言語またはCMSを使用していない場合)。
また、ユーザーが画像を保存できないようにしたい場合は、背景画像が役立ちます(ただし、これを行う必要はありませんでした)。
sanchothefatの回答とほぼ同じですが、側面が異なります。私は常に自分自身に問いかけます。スタイルシートをWebサイトから完全に削除する場合、残りの要素はコンテンツにのみ属しますか?もしそうなら、私はうまく仕事をしました。
いくつかの答えは、ここでシナリオを複雑にしています。これは非常に単純な状況です。
画像を配置するたびに、この質問に答えてください。
これはコンテンツの一部ですか、デザインの一部ですか?
これに答えられない場合は、おそらく何をしているのか、何をしたいのかわからないでしょう!
また、「プリンタに優しい」かどうかにかかわらず、2つの手法の横にあることを考慮しないでください。また、CSSを使用してSEOの観点からコンテンツを非表示にしないでください。CSSファイルでコンテンツを管理していることに気付いた場合は、脚を撃ちました。これは、コンテンツであるかどうかのささいな決定です。他のすべての側面は無視する必要があります。
さらに2つの引数を追加します。
IMGのあなたがする必要がある場合はタグが良いですリサイズした画像を。たとえば、元の画像が100x100ピクセルで、80x80ピクセルにしたい場合は、imgタグのCSSの幅と高さを設定できます。background-imageを使用してこれを行う良い方法は知りません。編集:これは、background-size
CSS3属性を使用して、背景画像でも実行できるようになりました。
スプライトを動的に切り替える必要がある場合は、background-imageの使用が適しています。たとえば、ボタン画像があり、カーソルを要素の上に置いたときに別の画像を表示したい場合は、通常のスプライトとホバースプライトの両方を含む背景画像を使用して、背景の位置を動的に変更できます。
background-size: 80px 80px;
<IMG>タグの使用によるもう1つの利点はSEOに関連しています。つまり、画像に関する追加情報を画像タグのALT属性で提供できますが、CSSを介して画像を指定するときにそのような情報を提供する方法はありません。検索エンジンがインデックスを作成できるのは、画像ファイル名のみです。ALT属性は、CSSアプローチよりも確実に<IMG>タグSEOの利点を提供します。それが、私によると、<IMG>タグを使用して、画像検索結果(Google画像検索など)でランク付けしたい画像を指定する方が良い理由です。
フォアグラウンド= img。
背景= CSSの背景。
背景画像は、タイル状の画像を含むコンテナなど、必要な場合にのみ使用してください。
IMAGESを使用することによる主要なPROSの1つは、SEOに適していることです。
background-image
使用する必要がある他のいくつかのシナリオ:
img
すると、丸みを帯びた角から画像が漏れます。img { border-radius: 10px; }
border-radius
ません。
デザインの複数のスキンまたはバージョンの場合は、CSS background-imageを使用します。JavaScriptを使用して、要素のクラスを動的に変更できます。これにより、別の画像を強制的にレンダリングします。IMGタグを使用すると、よりトリッキーになる場合があります。
これは技術的な考慮事項です:画像は動的に生成されますか?<img>
CSSプロパティを動的に編集するよりも、HTMLでタグを生成する方がはるかに簡単です。
画像のサイズはどうですか?imgタグを使用すると、ブラウザが画像を拡大縮小します。css backgroundを使用すると、ブラウザは大きな画像からチャンクを切り取ります。
別の理由があります!レスポンシブデザインがあり、デバイスの低解像度、中解像度、高解像度の画像の使用をメディアクエリで分割する場合は、背景も使用する必要があります。
imgは理由によりhtmlタグなので、使用する必要があります。物を参照したり説明したりするために、人々は例:記事の中。
また、画像に意味があるか、クリック可能にする必要がある場合、imgはcss背景よりも優れています。他のすべての状況では、CSSバックグラウンドを使用できると思います。
しかし、それは何度も何度も議論する必要がある主題です。
フランス、パリ出身のWeb学生
追加する小さなものだけですが、ユーザーが「右クリック」して「画像を保存」/「画像を保存」できるようにする場合は、imgタグを使用する必要があります。そのため、画像をその他。
背景画像を使用すると(ほとんどのブラウザで私が知っている限り)、画像を直接保存するオプションが無効になります。
小さな入力ですが、小さな画像でも、iphoneでのレンダリングが最大1分間遅くなるレスポンシブな画像で問題が発生しました。
<!-- Was super slow -->
<div class="stuff">
<img src=".." width="100%" />
</div>
しかし、背景画像を使用するように切り替えると、問題はなくなりました。これは、新しいブラウザーをターゲットにしている場合にのみ実行可能です。
IMG
が最初にロードされるのsrc
は、それがhtmlファイル自体にあるのに対しbackground-image
、ソースの場合はスタイルシートで言及されているため、スタイルシートがロードされた後に画像がロードされ、Webページのロードが遅延するためです。
background-image
、しばらくするとCSSを更新するように見えます。複数のタブを開いている場合、しばらくしてからCSSの背景が空白になるまでタブに戻ると、