在图像上添加热点图
下面我们将介绍如何设置图像地图,以及首先需要考虑的一些缺点。
先决条件 | 你应该已经知道如何 创建基本的 HTML 文档 以及如何 在网页上添加无障碍图像。 |
---|---|
目标 | 学习如何将一张图像的不同区域链接到不同的页面。 |
警告: 本文仅讨论客户端图像地图。不要使用服务器端图像地图,它们需要用户拥有鼠标。
图像地图及其缺点
如何正确插入图像地图
步骤 1:图像
并非任何图像都可接受。
- 图像必须清楚地表明人们点击图像链接时会发生什么。
alt
文本是必须的,当然,但许多人从未看到过它。 - 图像必须清楚地指示热点开始和结束的位置。
- 热点必须足够大,以便在任何视窗大小下都能舒适地点击。多大的尺寸才算足够大?72 × 72 CSS 像素是一个不错的最小值,在触摸目标之间还有额外宽敞的间隙。位于 50languages.com 的世界地图(截至撰写本文时)完美地说明了这个问题。点击俄罗斯或北美比点击阿尔巴尼亚或爱沙尼亚要容易得多。
你像往常一样插入你的图像 几乎一样(使用 <img>
元素和 alt
文本)。如果图像仅作为导航工具存在,你可以在 <area>
元素中提供适当的 alt
文本的情况下,写 alt=""
。
你需要一个特殊的 usemap
属性。想出一个不包含空格的唯一名称,用于你的图像地图。然后将该名称(前面加一个井号)分配为 usemap
属性的值
<img src="image-map.png" alt="" usemap="#example-map-1" />
步骤 2:激活你的热点
在此步骤中,将所有代码放在 <map>
元素内。<map>
只需要一个属性,即与你在上面的 usemap
属性中使用的相同地图 name
<map name="example-map-1"> </map>
在 <map>
元素内部,我们需要 <area>
元素。一个 <area>
元素对应于一个热点。为了保持键盘导航直观,确保 <area>
元素的源代码顺序与热点的视觉顺序一致。
<area>
元素是 空元素,但需要四个属性
shape
-
shape
属性接受四个值之一:circle
、rect
、poly
和default
。shape
为default
的<area>
占据整个图像,减去你定义的任何其他热点。如果定义的区域之间存在重叠,则源代码顺序决定哪个区域优先。你选择的形状决定了你将在coords
中需要提供的坐标信息。 coords
-
坐标以 CSS 像素给出,其值取决于选择的
shape
。- 对于圆形,提供中心的 x 和 y 坐标,然后是半径的长度。
- 对于矩形,提供左上角和右下角的 x 和 y 坐标。
- 对于多边形,提供每个角的 x 和 y 坐标(所以至少有六个值)。
href
-
你要链接到的资源的 URL。如果你不想让当前区域链接到任何地方(比如,你正在创建一个空心圆),你可以将此属性留空。
alt
-
一个必需属性,告诉人们链接指向何处或它做什么。
alt
文本仅在图像不可用时显示。请参考我们的 无障碍链接文本编写指南。如果你将
href
属性留空并且整个图像已经有一个alt
属性,你就可以写alt=""
。
<map name="example-map-1">
<area
shape="circle"
coords="200,250,25"
href="page-2.html"
alt="circle example" />
<area
shape="rect"
coords="10, 5, 20, 15"
href="page-3.html"
alt="rectangle example" />
</map>
步骤 3:确保它对每个人都有效
在许多浏览器和设备上严格测试图像地图之前,你还没有完成。尝试仅使用键盘来点击链接。尝试关闭图像。
如果你的图像地图宽度超过大约 240px,则你需要进行进一步调整以使你的网站响应式。仅仅调整小屏幕的图像大小是不够的,因为坐标保持不变,不再与图像匹配。