HTML 图像
在网页中经常能看到丰富多彩的图片,大家肯定很好奇这些图片是如何放到网页中的呢,其实很简单,学习了本章介绍的图片标签之后就了解了。
1. img 图像
img 是 英文单词 image 的缩写,意思是图像,它是 HTML 中最通用的定义图片的方式,是一个闭合标签,定义方式如下 :
<img src = "url" alt = "" />
其中 src 属性是必须属性,用来指定图片所对应的 URL 地址。
1.1 src 属性
src 的全称是 source,表示图片的 URL 地址源。源就是表示图片的地址路径,这个路径可以是相对路径,也可以是绝对路径。绝对路径指的是一个包含网络协议头的完整路径,常用的网络协议是 HTTP 协议,例如 https://www.baidu.com/img/bd_logo1.png;
相对路径是指这个图片文件跟当前的网页在同一个服务域,例如:/img/bd_logo1.png
。
有时当图片过大时或者过多时,网页加载可能会比较慢,这时需要针对图片使用懒加载的方式(图片懒加载),懒加载的原理就是将图片的 src 先设置为空,网页其他内容加载完之后,再通过 JavaScript 将 src 属性赋值,例如:
<div class="container">
<img src="img/loading.png" alt="1" data-src="photo-1.jpeg">
<img src="img/loading.png" alt="2" data-src="photo-2.jpeg">
<img src="img/loading.png" alt="3" data-src="photo-3.jpeg">
</div>
<script> window.onload = function (){ var a = document.getElementsByTagName("img"); for(var i in a){ a[i].src = a[i].getAttribute("data-src") } } </script>
以上代码通过定义 onload 事件,将图片延后加载。
1.1.1 Base64 方式加载图片
我们都知道 exe、jpg、pdf 这些格式的文件是使用二进制方式保存的,其中包含很多无法显示和打印的字符,如果要让文本处理软件能处理二进制数据,需要将其编码成一种明文显示的安全格式,Base64 是一种最常见的二进制编码方法。有时为了方便处理,图片并非使用二进制流方式保存,而是使用 Base64 方式编码之后保存在数据库,img 标签的 src 属性可以识别 Base64 格式的编码图片格式,例如:
1.2 alt 属性
当出现网络或者图片路径存在问题时,图片展示可能会出问题,这时网页中图片占位的地方会出现一张裂图,如果不做任何说明时,可能会影响用户体验。这时,如果在裂图上有一段文字说明的话,会适当的增加友好度,alt 属性就是图片加载失败时的替代文本,意思是当图片加载失败时使用 alt 定义的文本显示在图片当前的位置上,例如:
1.3 align
定义图片的排列对齐方式,在 HTML5 中推荐使用 css 替代。
以上定义居中的方式可以使用 css 的方式实现相同的效果,例如:
1.4 border
定义图片的边框,在 HTML5 中推荐使用 css 的 border 样式替代
上述定义了一个 border 是 2 的图片,同样可以使用 css 的方式替代:
1.5 height
定义图片的高度,在 HTML5 中推荐使用 css 的 height 样式替代:
上述定义了一个 height 分别是 50 像素和 100 像素的图片,如果使用 CSS 定义的话,是这样的:
1.6 width
定义图片的宽度,在 HTML5 中推荐使用 CSS 替代。
1.7 ismap
属性定义图像为服务器端图片映射,就是定义图片中可以点击的区域,并且将对标发送到服务器,需要配合 a 标签使用。
上述代码,当用户点击图片时,浏览器会将点击的坐标点以 x,y 作为参数,以 GET 的方式请求服务器,例如当用户点击图片的坐标点(8,8)时,服务器会受到一条 HTTP 请求 http://www.baidu.com?8,8
,此坐标点是相对定位坐标点。
1.8 hspace
定义图片左右侧的空白,在 HTML5 中推荐使用 CSS 替代。
1.9 vspace
定义图片上下区域的空白,在 HTML5 中推荐使用 CSS 替代。
1.10 longdesc
定义图片描述文档的 URL ,这个属性和 alt 类似,只不过可以描述更多的文字-超过 1024 字符,但是目前还没有浏览器支持这个属性。
1.11 usemap
定义图片在客户端的可点击区域,需要配合 map 和 area 标签使用。
2. css 定义背景图
可以结合 div 和 css 的 background-image 属性来定义背景图的方式显示一张图片,例如:
3. 注意事项
由于 HTML 中的元素中,图片相对于别的文本类型的元素所占用的网络空间较大,所以图片加载可能会比较慢,而且 HTML 中的元素网络请求是同步进行的,所以当定义了一些较大的图片或者图片元素较多时,网页本身会出现卡顿的情况,所以针对图片的加载需要做出一些优化:
- 尽可能少使用图片,或者使用体积较小的图片;
- 压缩图片体积;
- 通过懒加载的方式异步加载图片;
- 通过设置 HTTP 缓存时间,防止图片重复请求服务器资源;
- 通过使用 CSS 背景图的方式,将所需图片压缩到一张图片,减少请求图片次数。
4. 小结
本章介绍了几种 HTML 定义图片的方式,以及图片的各种属性,最后介绍了几种加载优化方式。图片是HTML 中使用最频繁的多媒体标签,因此需要熟悉它的使用方式