HTML网页中任何元素的实现都要依靠HTML标签,要想在网页中显示图像就需要使用图像标签。
HTML 元素将一份图像嵌入文档。src属性用于指定图像文件的路径和文件名,是
标签的必需属性。
alt 属性包含一条对图像的文本描述,这不是强制性的,但对无障碍而言,它难以置信地有用——屏幕阅读器会将这些描述读给需要使用阅读器的使用者听,让他们知道图像的含义。如果由于某种原因无法加载图像,普通浏览器也会在页面上显示alt 属性中的备用文本:例如,网络错误、内容被屏蔽或链接过期时。
还有很多其他属性,可以实现各种不同的目的:
如果在加载或渲染图像时发生错误,且设置了至少一个 onerror 事件处理器来处理 error事件,那么设置的事件处理器就会被调用。
属性
alt:定义了图像的备用文本描述。
<img src="images/dinosaur.jpg"
alt="The head and torso of a dinosaur skeleton;
it has a large head with long sharp teeth">
crossorigin:这个枚举属性表明是否必须使用 CORS 完成相关图像的抓取。启用 CORS 的图像 可以在 元素中重复使用,而不会被污染(tainted)。允许的值有:
anonymous
执行一个跨域请求(比如,有 Origin HTTP header)。但是没有发送证书(比如,没有 cookie,没有 X.509 证书,没有 HTTP 基本授权认证)。如果服务器没有把证书给到源站(没有设置 Access-Control-Allow-Origin HTTP 头),图像会被污染,而且它的使用会被限制。
use-credentials
一个有证书的跨域请求(比如,有 Origin HTTP header)被发送(比如,cookie,一份证书,或者 HTTP 基本验证信息)。如果服务器没有给源站发送证书(通过 Access-Control-Allow-Credentials HTTP header),图像将会被污染,且它的使用会受限制。当用户并未显式使用本属性时,默认不使用 CORS 发起请求(例如,不会向服务器发送原有的HTTP 头部信息),可防止其在 中的使用。如果无效,默认当做 anonymous 关键字生效。
decoding:为浏览器提供图像解码方式上的提示。允许的值:
height:图像的高度,单位是 CSS 像素。可以只指定 width 和 height 中的一个值,浏览器会根据原始图像进行缩放。
width:图像的宽度,在单位是 CSS 像素。
<img src="images/dinosaur.jpg"
alt="一只恐龙头部和躯干的骨架,它有一个巨大的头,长着锋利的牙齿。"
width="400"
height="341">
ismap:这个布尔属性表示图像是否是服务器端 map 的一部分。如果是,那么点击图片的精准坐标将会被发送到服务器。只有在 元素是一个拥有有效 href 属性的 元素的后代元素的情况下,这个属性才会被允许使用。
sizes:表示资源大小的、以逗号隔开的一个或多个字符串。每一个资源大小包括:
<img srcset="elva-fairy-320w.jpg 320w,
elva-fairy-480w.jpg 480w,
elva-fairy-800w.jpg 800w"
sizes="(max-width: 320px) 280px,
(max-width: 480px) 440px,
800px"
src="elva-fairy-800w.jpg"
alt="Elva dressed as a fairy">
在这里,如果支持浏览器以视窗宽度为 480px 来加载页面,那么(max-width: 480px)的媒体条件为真,因此440px的槽会被选择,所以elva-fairy-480w.jpg将加载,因为它的的固定宽度(480w)最接近于440px。800px 的照片大小为 128KB 而 480px 版本仅有 63KB 大小—节省了 65KB。现在想象一下,如果这是一个有很多图片的页面。使用这种技术会节省移动端用户的大量带宽。
src:图像的 URL,这个属性对 元素来说是必需的。在支持 srcset 的浏览器中,src 被当做拥有一个像素密度的描述符 1x 的候选图像处理,除非一个图像拥有这个像素密度描述符已经被在 srcset 或者 srcset 包含 w 描述符中定义了。
<img src="images/dinosaur.jpg">
srcset:以逗号分隔的一个或多个字符串列表表明一系列用户代理使用的可能的图像。每一个字符串由以下组成:1. 指向图像的 URL。2. 可选地,再加一个空格之后,附加以下的其一:
<img srcset="elva-fairy-320w.jpg,
elva-fairy-480w.jpg 1.5x,
elva-fairy-640w.jpg 2x"
src="elva-fairy-640w.jpg" alt="Elva dressed as a fairy">
usemap:与元素相关联的 image map 的部分 URL(以 ‘#’ 开始的部分)。
HTML 元素来为不同的显示/设备场景提供图像版本。浏览器会选择最匹配的子
元素的 src 属性中的 URL。然后,所选图像呈现在
元素占据的空间中。
要决定加载哪个 URL,user agent 检查每个
<picture>
<source media="(max-width: 799px)" srcset="elva-480w-close-portrait.jpg">
<source media="(min-width: 800px)" srcset="elva-800w.jpg">
<img src="elva-800w.jpg" alt="Chris standing up holding his daughter Elva">
picture>
srcset属性包含要显示图片的路径。请注意,正如我们在上面看到的那样,
type 属性允许你为
<picture>
<source srcset="mdn-logo.svg" type="image/svg+xml">
<img src="mdn-logo.png" alt="MDN">
picture>
在任何情况下,你都必须在 之前正确提供一个元素以及它的src和alt属性,否则不会有图片显示。当媒体条件都不返回真的时候,它会提供图片;如果浏览器不支持
<img srcset="elva-fairy-320w.jpg 320w,
elva-fairy-480w.jpg 480w,
elva-fairy-800w.jpg 800w"
sizes="(max-width: 320px) 280px,
(max-width: 480px) 440px,
800px"
src="elva-fairy-800w.jpg"
alt="Elva dressed as a fairy">
回顾一下,美术设计问题涉及要更改显示的图像以适应不同的图像显示尺寸。例如,如果在桌面浏览器上的一个网站上显示一张大的、横向的照片,照片中央有个人,然后当在移动端浏览器上浏览这个网站时,照片会缩小,这时照片上的人会变得非常小,看起来会很糟糕。这种情况可能在移动端显示一个更小的肖像图会更好,这样人物的大小看起来更合适。
关与使用picture元素和img的srcset属性的区别,可以通过这个页面responsive.html来对比。可以发现,当缩小浏览器的窗口时,使用img srcset属性的元素对应的图片会随窗口的缩小而等比例放缩,而使用picture元素的图片则不会。
HTML
HTML
<figure>
<img src="/media/cc0-images/elephant-660-480.jpg"
alt="Elephant at sunset">
<figcaption>An elephant at sunsetfigcaption>
figure>
通常,
通过在其中插入
HTML
HTML 元素 在图片上定义一个热点区域,可以关联一个超链接。元素仅在
属性
alt:在未显示图像的浏览器上显示代替的文本字符串。这个文本应该能传达给用户与显示图像而没有文本的情况下同等的选择。在 HTML4 中,这个属性时必需的,但是可以是一个空的串 (“”)。在 HTML5 中,这个属性只有在href 属性被使用的时候才是必需的。
coords:给热点区域设定具体的坐标值。这个值的数值和意义取决于这个值所描述的形状属性。对于矩形或长方形,这个 coords 值为两个 X,Y 对:左上、右下。对于圆形,这个值是 x,y,r,这里的 x,y 是一对确定圆的中心的坐标而 r 则表示的是半径值。对于多边和多边形,这个值是用 x,y 对表示的多边形的每一个点:x1,y1,x2,y2,x3,y3 等等。HTML4 里,值可能是像素数量或者百分比,区别是不是有 % 出现; HTML5 里,只可能是像素的数量。
download:这个属性如果存在的话,表明作者想把超链接用于下载一个资源。
href:area 的超链接,值为一个 URL. HTML4 里,这个值不管是不是有值都要明确指定出来。HTML5 里则不需要。
hreflang:指明链接资源的语言类型,值的范围参考BCP47。这个属性只能在指明 href 属性之后使用。
media:指明链接资源的媒体类型,例:print and screen。如果此属性省略,默认全部。仅在 href 属性存在情况下使用。
rel:对于包含 href 属性的锚,该属性指定目标对象与链接对象的关系。该值是一个逗号分隔的链接类型值列表。这些值及其语义将由一些可能对文档作者有意义的权威进行注册。如果没有其他的关系,默认的关系是无效的。只有当 href 属性是 presen 时才使用该属性。
shape:相关联的热点的形状。HTML 5 和 HTML 4 的规范定义了值 rect,它定义了一个矩形区域;圆圈,它定义了一个圆形区域;多边形,它定义了一个多边形;默认情况下,这表示整个区域超出了任何定义的形状。许多浏览器,特别是 Internet Explorer 4 和更高版本,支持弧形、多边形和矩形作为形状的有效值。
target:本属性指明了在什么地方显示链接的资源。HTML4 里,这个值是一个 frame 的链接或者关键字。HTML5 里,它是一个浏览器上下文 (比如:标签,窗口或者内嵌的 frame) 的链接或者关键字。值的含义:
type:该属性指定了用于链接目标的 MIME 类型的媒体类型。一般来说,这是严格的咨询信息;然而,在未来,浏览器可能会为多媒体类型添加一个小图标。例如,当类型设置为音频/wav 时,浏览器可能会添加一个小的扬声器图标。公认的 MIME 类型的完整列表,请参阅 http://www.w3.org/TR/html4/references.html ref-MIMETYPES。只有当 href 属性存在时才使用该属性。
<img src="planets.gif" width="145" height="126" alt="Planets" usemap="#planetmap">
<map name="planetmap">
<area shape="rect" coords="0,0,82,126" href="sun.htm" alt="Sun">
<area shape="circle" coords="90,58,3" href="mercur.htm" alt="Mercury">
<area shape="circle" coords="124,58,8" href="venus.htm" alt="Venus">
map>