img标签和background-image的区别和具体使用时机

Posted 浅陌初心

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了img标签和background-image的区别和具体使用时机相关的知识,希望对你有一定的参考价值。

最近在使用图片过程中,纠结到底使用img标签还是使用background-image属性,翻阅资料和百度后作出下列理解。

简单来说img是内容部分的东西,background-image是修饰性的东西。

img

从页面元素来说,如果是页面中作为内容出现的图片,比如广告图片、产品图片,那么这个必然是用img了,因为这个是页面元素内容。页面元素内容最关键的一点就是,当页面没有样式的时候,还是能一眼看过去就知道什么是什么。

img是一个行内元素,html标签,是一个document对象,它是可以操作的。比如更换img src的路径可以达到更换图片的目的,也可以移动它的位置,从document中移除等等操作

background-image

背景图片,修饰性的内容,在页面中可有可无。有,是为了让页面中视觉感受上更美;无,并不影响用户浏览网页获取内容。

background-image是背景图片,是css的一个样式,要使用background-sizing、background-position来设置其属性。

裸奔

其实说白了,背景图片就是通过样式加载后,让页面更漂亮而已,内容图片就是为了展示给用户的。假设有一天你的网页没有任何样式的时候,那么这个时候请想想你的网站上哪些图片是给用户看的,这样就足够了。

 

在网页加载的过程中,以css背景图存在的图片background-image会等到结构加载完成(网页的内容全部显示以后)才开始加载,而html中的标签img是网页结构(内容)的一部分会在加载结构的过程中加载,换句话讲,网页会先加载标签img的内容,再加载背景图片background-image,如果你用引入了一个很大的图片,那么在这个图片下载完成之前,img后的内容都不会显示。而如果用css来引入同样的图片,网页结构和内容加载完成之后,才开始加载背景图片,不会影响你浏览网页内容。

 

此处谈到img标签是行内元素,就此谈下行内元素、块级元素。

区别:

1.行内元素与块级元素直观上的区别

   行内元素会在一条直线上排列,都是同一行的,水平方向排列。

   块级元素各占据一行,垂直方向排列。块级元素从新行开始结束接着一个断行。

2.块级元素可以包含行内元素和块级元素。行内元素不能包含块级元素。

3.行内元素设置宽高无效,大小由内容决定。块级元素可以设置高,独占一行。

 

以上是关于img标签和background-image的区别和具体使用时机的主要内容,如果未能解决你的问题,请参考以下文章

好程序员分享该如何选择background-image和img标签

到底该用img还是background-image?

动态设置背景图像或创建 img 标签有啥区别? [复制]

background-image 和 img

用 php 将 img 替换为 background-image div

img 和 background-image 优劣比较