使用 HTML img 标签还是 CSS background-image 属性

HTML img 标签

  1. 当它不仅是一个设计元素,还是内容的一部分,例如图表、图标或人物。
  2. 当你希望用户打印您的页面时默认包含图片。
  3. 当您想被搜索引擎索引时。Google 不会自动将背景图片编入索引。浏览器不会向辅助技术提供有关背景图像的任何信息。但是使用带有 alttitle 属性的 <img> 标签将有助于屏幕阅读器识别。
  4. 当图片具有基本语义(例如,警告图标)时。<img> 标签的使用将确保可以在所有用户代理中传达含义。
  5. 当你依赖浏览器缩放以与文本大小成比例地呈现图片时。
  6. 当您想提高背景动画性能时。

CSS background-image

  1. 如果图片仅用于设计。
  2. 如果图片不是内容的一部分。
  3. 如果您希望用户在打印你的页面时,并且不希望默认包含图片。
  4. 如果您想缩短下载时间(与 CSS 雪碧图一样)。
  5. 如果您只需要使图片的一部分可见。
  6. 如果要对文本进行图片替换。
  7. 如果您需要拉伸背景图片以填充其整个窗口。把 background-size 设置为 cover
  8. 如果需要重复图片。

img 标签的 width height 属性和 CSS width height 属性之间的区别:

在 CSS 中设置的width height 优先级高于 img 标签的 width height 属性

  • 如果两个都不设置,图片的宽高为图片本身的宽高
  • 如果只设置 img 标签的 width height 属性,图片的宽高为 img 标签中设置的宽高
  • 如果两个都设置了,图片的宽高为 CSS 中设置的宽高

参考资料:

When to Use HTML img Tag and CSS background-image Property