图片与媒体


网页的内容很大一部分是文字,但绝不是全部。照片、图表、插图、视频片段和声音同样是内容,HTML 为每一种都准备了相应的元素。这一章讲的就是把媒体放到页面上要用的标签:怎样指向一个图片文件,怎样为看不见图片的人描述它,以及怎样把合适的文件发给合适的屏幕,而不浪费别人的流量。
图片元素
在页面上放一张图片要用**图片元素**,写作 <img>。它没有内容,也没有闭合标签。取而代之,你要通过属性告诉它两件事:显示哪个文件,以及这张图是什么内容。
<img src="golden-retriever.jpg" alt="A golden retriever sitting in tall grass">src 是来源:图片文件的路径或网址。alt 是替代文本:用文字简要描述这张图片。如果图片加载不出来,或者有人是用屏幕阅读器"听"页面而不是用眼睛看,那么 alt 文本就是他们能得到的信息。所以写的时候要当作是在电话里向朋友描述这张图片一样。
src,也就是要显示的文件,以及 alt,用文字描述这张图片。写 alt 的时候,就当作是在电话里告诉别人照片里有什么。这是最容易被忽略的部分,也是最重要的部分。 响应式图片
一张在笔记本电脑上看起来很清晰的照片,尺寸可能远远超出手机所需要的大小。把这个完整尺寸的文件发给小屏幕,会浪费访客的流量,还会拖慢页面速度。HTML 允许你为同一张图片提供几个不同的版本,让浏览器自己挑一个合适的。
刚开始学的时候,不是每张图片都需要这样处理。一个 <img> 配上一个大小合理的文件就够用了。但了解这个概念的存在是有好处的:同一张照片可以有几种尺寸,由浏览器来挑选。
<img src="beach-800.jpg" alt="Waves rolling onto a quiet beach at sunset"><img> 就够了。等页面在手机上开始变得沉重时,这个选项就在那儿等着你用。 视频与音频
HTML 不需要任何插件就能播放视频和声音。播放视频用 <video> 元素;播放声音用 <audio>。加上 controls 属性,浏览器就会免费给你一个播放按钮、一条时间轴和一个音量控制器。
<video src="tutorial.mp4" controls></video>
<audio src="podcast-episode.mp3" controls></audio>和图片不一样,这两个元素都有闭合标签,因为你可以在开始标签和结束标签之间放置备用文本或额外的设置。刚入门时最该记住的一点:一定要加上 controls,否则访客就没有办法按下播放键。
<video> 播放视频,<audio> 播放声音,都不需要插件。一定要加上 controls,否则就没有播放按钮,访客会卡在那里。这两个元素都有闭合标签,因为你可以在里面放设置和备用文本,这和图片不一样。 尺寸设置、延迟加载与性能
图片加载的时候,可能会把页面上其他内容挤得东倒西歪。你正在读一段文字,上方一张照片突然加载完成,文字就猛地往下跳了一下。这种跳动很烦人,而且是可以避免的:提前用 width 和 height 告诉浏览器图片的尺寸。
<img src="team-lunch.jpg" alt="The team sharing lunch on the office balcony"
width="800" height="600">有了这两个数字,浏览器就会在图片到达之前先预留出正确大小的空间,这样图片加载完成时就不会有任何跳动。你给出的是文件的真实像素尺寸,CSS 依然可以在屏幕上重新调整它的显示大小。
width 和 height,页面就不会再随着照片加载而晃动。用文件的真实像素尺寸;CSS 依然可以在屏幕上把它缩小。这一个小习惯,就能解决加载过程中最让人烦躁的问题。 
