777 Stimmen

Wann sollte man IMG vs. CSS-Hintergrundbild verwenden?

In welchen Situationen ist es sinnvoller, eine HTML IMG Tag, um ein Bild anzuzeigen, im Gegensatz zu einem CSS background-image und andersherum?

Zu den Faktoren können Zugänglichkeit, Browserunterstützung, dynamische Inhalte oder jede Art von technischen Beschränkungen oder Usability-Prinzipien gehören.

0 Stimmen

Soll das Bild Platz einnehmen oder wollen Sie es überschreiben?

9 Stimmen

Als Update, da dies ziemlich hoch auf Google, Browser-Skalierung und Bild-Stretching für Hintergrundbild ist jetzt möglich, und ziemlich weit unterstützt (IE8 und unten, natürlich, wobei die Ausnahme), so dass die Punkte 4 und 7 moot in Fällen, die für einen Fallback oder ignorieren einen solchen Effekt für IE8 und unten zu ermöglichen. caniuse.com/#search=background-image

0 Stimmen

Große und nützliche Post, ich werde eine Frage für den Vergleich hinzufügen, der Vorteil der css ist auch die Hover-Effekte? kann dies mit img-Tags repliziert werden?

921voto

system PAUSE Punkte 35068

Richtige Verwendung der IMG

  1. Verwenden Sie IMG wenn Sie beabsichtigen Menschen Ihre Seite drucken und Sie möchten, dass das Bild standardmäßig aufgenommen wird. - JayTee
  2. Verwenden Sie IMG (mit alt Text), wenn das Bild eine wichtige semantische Bedeutung hat, wie z. B. ein Warnsymbol . Dadurch wird sichergestellt, dass die Bedeutung des Bildes in allen Benutzer-Agenten, einschließlich Screenreadern, vermittelt werden kann.

Pragmatische Verwendungen des IMG

  1. Verwenden Sie IMG plus alt-Attribut, wenn das Bild ist Teil des Inhalts wie z. B. ein Logo, ein Diagramm oder eine Person (eine echte Person, keine Stockfoto-Person). - sanchothefat
  2. Verwenden Sie IMG wenn Sie sich auf die Skalierung des Browsers verlassen, um ein Bild im Verhältnis zur Textgröße darzustellen.
  3. Verwenden Sie IMG für mehrere Overlay-Bilder im IE6 .
  4. Verwenden Sie IMG con un z-index in der Reihenfolge auf ein Hintergrundbild strecken um sein gesamtes Fenster zu füllen.
    Beachten Sie, dass dies mit CSS3 background-size nicht mehr zutrifft; siehe #6 unten.
  5. 使用方法 img anstelle von background-image kann die Leistung von Animationen vor einem Hintergrund erheblich verbessern.

Wann Sie CSS background-image verwenden sollten

  1. Verwenden Sie CSS-Hintergrundbilder, wenn die Bild ist nicht Teil des Inhalts . - sanchothefat
  2. Verwenden Sie CSS-Hintergrundbilder, wenn bei Bild-Ersatz von Text z. B. Absätze/Kopfzeilen. - sanchothefat
  3. Verwenden Sie background-image wenn Sie beabsichtigen Menschen Ihre Seite drucken und Sie nicht möchten, dass das Bild standardmäßig aufgenommen wird. - JayTee
  4. Verwenden Sie background-image wenn Sie die Downloadzeiten verbessern müssen, wie mit CSS-Sprites .
  5. Verwenden Sie background-image wenn nur ein Teil des Bildes sichtbar sein soll, wie bei CSS-Sprites.
  6. Verwenden Sie background-image con background-size:cover um ein Hintergrundbild so zu strecken, dass es das gesamte Fenster ausfüllt.

3 Stimmen

Ich bin mir immer noch unsicher, was den Teil mit den Hintergrundbildern für die Textersetzung angeht. Ich sehe Leute, die Hintergrundbilder dann mit text-indent: -9999px für den Text. Ich weiß jedoch, dass solche Texteinrückungen früher schlecht für die Suchmaschinenoptimierung waren, und ich könnte mir vorstellen, dass sie es für einige Suchmaschinen immer noch sind. Aber am wichtigsten ist, wenn Sie Bilder ausschalten, aber css auf das Bild verschwindet, aber der Text ist immer noch aus dem Bildschirm. Meiner Meinung nach ist der Alt-Text eines Bildes nur dann sinnvoll, wenn die Bilder nicht angezeigt werden, so dass img-Tags besser sind.

0 Stimmen

Ich stimme Scott Reed in Bezug auf die Textersetzung zu. Die entscheidende Frage ist, ob das Bild beim Drucken angezeigt werden soll. Im Falle der Textersetzung sollte dies der Fall sein.

0 Stimmen

Ich bin nicht der Meinung, dass der IMG-Tag besser für Animationen geeignet ist. Wenn Sie einige Tests in Chrome durchführen, um Elemente mit css translate zu animieren, werden Sie sehen, dass die Malzeiten für css background-image im Vergleich zum IMG-Tag drastisch kürzer sind

312voto

roborourke Punkte 11932

Für mich ist das eine Schwarz-Weiß-Entscheidung. Wenn das Bild Teil des Inhalts ist, z. B. ein Logo, ein Diagramm oder eine Person (eine echte Person, keine Stockfoto-Leute), dann verwenden Sie die <img /> Tag plus alt-Attribut. Für alles andere gibt es CSS-Hintergrundbilder.

Ein weiterer Grund für die Verwendung von CSS-Hintergrundbildern ist die Ersetzung von Text durch Bilder, z. B. in Absätzen oder Überschriften.

0 Stimmen

Ausgezeichneter Fall! CON--Verwenden Sie Hintergrund-Bild, wenn Sie Bild-Ersetzung von Text.

0 Stimmen

Ja, es ist nie ideal, Bilder zu ersetzen, aber manche Entwürfe sind einfach nicht richtig, wenn man es nicht tut.

0 Stimmen

+1 vereinbart. Beachten Sie, dass die Ersetzung des Textes durch ein Bild in den Bereich "nicht Teil des Inhalts" fällt, da der Inhalt der eigentliche Text ist.

120voto

Robbie JW Punkte 639

Ich bin überrascht, dass das noch niemand erwähnt hat: CSS-Übergänge .

Sie können nativ einen Übergang von div Hintergrundbildes:

#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);
}

Damit wird jede Art von JavaScript- oder jQuery-Animation zum Einblenden eines <img/> 's src .

Weitere Informationen über Übergänge auf MDN .

3 Stimmen

Das ist kein guter Grund. Sie könnten ein div mit 2 überlagerten Bildern und dem folgenden css haben: #some_div { transition: opacity 0.5s; } , #some_div:hover #top_img { opacity: 0; }

11 Stimmen

Wenn Sie den verlinkten MDN-Artikel (oder die w3c-Spezifikationen) lesen, werden Sie feststellen, dass "background-image" NICHT zu den Eigenschaften gehört, die animierbar sind, und jeder Browser, der dies tut (Chrome), hält sich nicht an die Webstandards. Das heißt, ich denke, es sollte sein, und es ist ein schöner einfacher Effekt, so dass ich enttäuscht bin, dass es nicht Teil des Standards ist.

0 Stimmen

@RobertMcKee nun, da es nur noch Chrome gibt lol

92voto

subhash Punkte 39

Die obigen Antworten berücksichtigen nur den Design-Aspekt. Ich führe sie unter SEO-Aspekten auf.

Wann zu verwenden <img />

  1. Wenn Ihr Image sein muss von der Suchmaschine indiziert
  2. Wenn es einen Bezug zum Inhalt hat, einschließlich Karten (Klickbereiche), aber nicht mit dem Design zusammenhängt. Das Design ist hier wahrscheinlich am schwierigsten zu analysieren, denn es geht nur um das Design. Ich würde sagen, vielleicht funktionales Design (Karten, Thumbnails, Profilbilder, Dinge, die man anklicken kann) im Gegensatz zu ästhetischem Design, das meist für die Attraktivität von Websites verwendet wird.
  3. Posten auflisten
  4. Wenn Ihr Bild nicht zu klein ist (keine ikonischen Bilder).
  5. Bilder, die Sie hinzufügen können alt et title Attribut.
  6. Bilder von einer Webseite, die Sie mit print media css drucken möchten

Wann wird CSS verwendet? background-image

  1. Bilder, die ausschließlich der Gestaltung dienen.
  2. Kein Bezug zum Inhalt.
  3. Kleine Bilder, die wir mit CSS3 spielen können.
  4. Sich wiederholende Bilder (im Blog Autorensymbol, Datumssymbol wird für jeden Artikel wiederholt usw.,).

Ich werde sie aus den genannten Gründen verwenden. Dies sind gute Praktiken der Suchmaschinenoptimierung von Bildern.

57voto

JayTee Punkte 2698

Browser sind nicht immer so eingestellt, dass Hintergrundbilder standardmäßig gedruckt werden; wenn Sie beabsichtigen, dass die Leute Ihre Seite ausdrucken :)

10 Stimmen

Klingt wie: PRO - Verwenden Sie IMG, wenn Sie möchten, dass das Bild standardmäßig gedruckt wird. CON--Verwenden Sie background-image, wenn Sie nicht wollen, dass das Bild standardmäßig gedruckt wird. Gut gemacht!

7 Stimmen

Ich denke, die Idee ist, separate CSS-Stile für den reinen Druck zu haben, die die Bilder ausblenden oder sie in etwas Angemesseneres umwandeln.

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X