很多新手在刚开始学习HTML标签的时候,老师一定会教你

<img src="xxx.png"/>

  这种引入图片格式,第二天学习css的时候,老师又会教你给div等元素添加背景图片,

div {
background-image: url(xxx.png);
}

  那么这两种方式究竟孰优孰劣,分别应该在什么情况下使用呢?今天我在这里就给大家详细讲解一下:

  关于img标签,我们要知道,它除了src路径以外,还有两个属性,一个是alt,一个是title

<img src="xxx.png" alt="" title=""/>

  首先我们讲一下title,它的作用是什么呢?我们来看一下,当我们在body中写入以下代码的时候,

<img src="img/柯基.jpg" alt="" title="Hello,World!"/>

  打开浏览器,会显示对应的那张图片,title里面写的"Hello,World!"是不显示的,只有当我们的鼠标放到图片上暂留的时候,鼠标上才会出现提示性文字如下图:

  title属性是对元素的注释说明和额外补充,当鼠标放到文字或图片上时候,会显示title对应的文字。要注意的一点是,title这个属性并不是img标签特有的,加给button、div等其他标签都是可以的,我曾经看过一些文章,作者提议给网页中所有的标签都加上title属性,这样将来用户把鼠标放到每个按钮、图片、文字上,都有title提示,但是我看响应附和者寥寥,为什么呢,太麻烦了呗,你作为一个程序员你愿意多此一举吗,况且此举还会增加代码体积。
  接下来我们再说说alt属性,alt其实就是你windows通用键盘空格左右的那个键,也是你吃鸡(PC端)的时候,可以自由转头的那个键,它的本意是替换的意思,alt属性在img标签里面是一个必须属性,其作用是当我们的图片,在用户的网络条件差、路径错误或者浏览器禁用图像等情况下,用户看不到这张图片,alt内的解释性文字会显示出来,使得用户即使看不到图片,也不会影响到对整个页面的浏览,如下图:
  而且alt属性里的值还会被搜索引擎抓取到,比如你现在在百度搜索柯基,那么我们网页当中的这张图片就可能会被百度图片给抓取到,如下:

  搜索引擎真的会分辨你网页当中的图片是不是柯基犬吗?人工智能有这么强大?可以智能识图?并不是的,搜索引擎是通过识别你网页当中的alt属性,来辨别本图片是不是它所要抓取的。我们的网站肯定是希望搜索引擎抓取到我们,这样我们的浏览量就会加大,我们的流量就会更多,我们就能赚取更多的广告费,我们就会更有银子。

  其次,还有一个原因,img加载更快对于我们一篇HTML文档来说,浏览器对文档的加载是从上往下的,我们的css样式是在style标签内,当我们的浏览器加载到style标签的时候,它就会停下,跳过去,继续加载HTML,HTML加载完成后,才会继续加载css样式表,否则的话,假如我们在style标签内写了.div1{width:100px;}这时候浏览器并没有加载到body,因为我们的style标签是在head内,是在body上面的,这时候浏览器就无法找到div1并给其设置宽度。所以,如果论加载速度,还是body中的img标签加载更快。

  最后呢,还有一个原因,是从用户体验角度来讲的。如果你在body 中通过img标签引入一张图片,那么用户在浏览网页的时候,是可以直接在图片上右键,然后另存为,把图片保存下来,但是background是不可以的;

  还有一种情况比较少见:针对盲人用户,盲人用户眼睛无法直接看到网页,但是又有上网的需求,这时候,患者就可以借助一些读屏软件来浏览我们的网页,这时候问题来了,读屏软件可以阅读文字,可是它怎样阅读我们的图片给患者听呢?这是一个问题,所以这时候我们之前提到的alt属性的作用就来了,读屏软件可以直接阅读图片的alt属性值,从而使盲人用户看不到图片,也可以知道这里显示的是什么。

   所以,综上所述,一般情况下,在我们网页中主体用到的图片,尽量用img标签引入是最好的,但是这也并不是绝对,在网页中用到的logo等图标,我们一般用background来显示,或者该图片本就是背景图,我们就一定使用background。
 
 


HTML页面插入图片,使用background还是img标签的更多相关文章

  1. JSP 页面中插入图片

    第一步 在 JSP 页面中插入图片 EL 表达式 ${pageContext.request.contextPath } 的值为当前的项目名称 <html> ... <body> ...

  2. 富文本编辑器UEditor自定义工具栏(二、插入图片、音频、视频个性化功能按钮和弹层及自定义分页符)

    导读:本篇将简单探讨插入图片.音频.视频的功能按钮实现方式 传送门:富文本编辑器UEditor自定义工具栏(一.基础配置与字体.背景色.行间距.超链接实现) 一.效果图 1.UEditor自定义工具栏 ...

  3. C#操作word的一些基本方法(word打印,插入文件,插入图片,定位页眉页脚,去掉横线)

    Microsoft.Office.Interop.Word.Application wordApp = new ApplicationClass() word对象 2. Microsoft.Offic ...

  4. js获取页面中图片的总数

    查看效果:http://keleyi.com/keleyi/phtml/image/9.htm 下面是完整代码: <html><body><div id="ke ...

  5. 【使用Itext处理PDF文档(新建PDF文件、修改PDF文件、PDF中插入图片、将PDF文件转换为图片)】

    iText简介 iText是著名的开放源码的站点sourceforge一个项目,是用于生成PDF文档的一个java类库.通过iText不仅可以生成PDF或rtf的文档,而且可以将XML.Html文件转 ...

  6. 关于利用input的file属性在页面添加图片的问题

    在页面添加图片涉及到兼容的问题怎么解决兼容问题呢?请看下面分析: 在IE浏览器上面我们能直接通过获取其input的value值来获取其图片的路径. 在火狐和谷歌需要用createObjectURL(( ...

  7. html2canvas页面截图图片不显示

    前两天在一个群里,有人问使用html2canvas屏幕截图的时候为什么页面的图片不显示只显示了文字,我没有做过屏幕截图的需求,所以不是很清楚,今天稍稍测试了一下. 在github上将html2canv ...

  8. 在Vue项目使用quill-editor带样式编辑器(更改插入图片和视频)

    vue-quill-editor默认插入图片是直接将图片转为base64再放入内容中,如果图片比较大的话,富文本的内容就会很大. 插入视频是直接弹框输入URL地址,某些需求下我们需要让用户去本地选择自 ...

  9. 插入图片新方式:data:image

    我们在使用<img>标签和给元素添加背景图片时,不一定要使用外部的图片地址,也可以直接把图片数据定义在页面上.对于一些“小”的数据,可以在网页中直接嵌入,而不是从外部文件载入. 如何使用 ...

随机推荐

  1. 对比js库分枝Jquery和js获取对象的方式

    一.Jquery和JS的认识 对于这点不谈详细,但能有一个能有一个全面的印象,Jquery本质上也是JS,只不过用一句话概括就是   “write letter and do more”,写的更少,做 ...

  2. 星云测试插装编译流程与CI集成

    星云测试Horn插装采用脚本配置方式自动对语法进行扫描和插装,在整个插装过程中需要用到星云提供的插件工具.通过与CI集成,在CI编译前通过jenkins调用星云插装插件模块进行必要的数据填充,生成对应 ...

  3. Kafka权威指南阅读笔记(第八章)

    跨集群数据镜像 使用场景: 区域集群和中心集群 这种场景下,每个区域的应用程序只访问相应的区域内的集群.而有些情况下,需要将各个集群的信息汇总到中心集群,就可以用中心集群分析业务数据了. 冗余 一个K ...

  4. codeforce -14A A. Letter

    A. Letter time limit per test 1 second memory limit per test 64 megabytes input standard input outpu ...

  5. any_value()函数

    转载自:https://blog.csdn.net/Peacock__/article/details/90608246 MySQL5.7之后,sql_mode中ONLY_FULL_GROUP_BY模 ...

  6. animate.html

    <!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title> ...

  7. SpringBoot整合MybatisPlus3.X之SQL注入器(九)

    pom.xml <dependencies> <dependency> <groupId>org.springframework.boot</groupId& ...

  8. deepin15.7挂载/home到单独的分区:

    1.首先打开Gpart分区编辑器,找一个空闲的分区,调整好分区大小,格式化成ext4格式. 具体步骤为首先unmount所用到的盘,然后右击该盘选择'format to ext4',最后点击apply ...

  9. netcat的使用

    1,端口扫描 端口扫描经常被系统管理员和黑客用来发现在一些机器上开放的端口,帮助他们识别系统中的漏洞. $nc -z -v -n 172.31.100.7 21-25 可以运行在TCP或者UDP模式, ...

  10. 学习笔记60_python面向对象

    **** //可以给函数参数设置默认值 def stu_register(name,age,course,country="CN"): 若你的函数在定义时不确定用户想传入多少个参数 ...