页面中使用html和img的区别

48 阅读1分钟

img

img是一个元素可以只是宽高,可以占位,可以设置alt,可以进行dom操作

background-image

它是css的一个样式,并不占位,可以结合background-size,background-repeat,background-position等属性来设置图片位置,大小等;可以配置精灵图,减少浏览器请求;

img和background-image的区别

1、本质不一样

img是html元素,background是css属性,所以img符合语义化要求,background不符合;按照浏览器的解析机制,html标签会被优先解析。虽然很多css放在head中优先加载,但是这不意味着他会立即执行,大部情况下是在html加载完成后才执行的。所以优先展示的元素就应使用img,如广告图、logo、首页推荐等大图;img可以是中渐变式图片优化加载大图时的问题(渐进式图片),可以通过img和srcset等方式做响应式图片加载(响应式图片加载),img标签本身是跨域的,常用来实现埋点;

2、img可以监听

img可以用使用new Image对象,在加载的时候可以做error、onload等监听处理;而background不可以

3、img先加载,先解析

网页加载过程中,background等背景图会在等到网页渲染完成之后才开始加载,而img标签会在加载结构的过程中加载;不重要的背景图可以放在background中,防止页面的初次加载的时候,请求过多,占用带宽,阻塞进程,影响页面显示;