HTML 图像映射
Picture 元素是在多个图像文件之间做选择。图像映射(image map)则保留一张图像,并让其中的区域可点击——例如楼层平面图上的热点、示意图,或简单的图形菜单。你把带有 usemap 的 img 与充满 <area> 链接的 <map> 配对使用。
什么是图像映射
图像映射并不是一种单独的图像格式。它是一段 HTML,含义是:「图片上的这个矩形(或圆形、或多边形)应当表现得像一个链接。」视力正常的用户点击该区域;辅助技术则需要每个 area 上都有清晰的 alt,因为热点旁边可能没有可见文字。
直接回答
- 在
img上添加usemap="#mapname"。 - 添加带有一个或多个
<area>元素的<map name="mapname">。 - 每个
area都需要shape、coords、href以及各自的alt。
usemap上的#必须与 map 的name匹配(不要再发明第二种拼写)。
shape 取值一览
📊 area 的 shape 取值
| shape | 含义 |
|---|---|
| rect | 矩形 — coords:left, top, right, bottom |
| circle | 圆形 — coords:centerX, centerY, radius |
| poly | 多边形 — 按顺序排列的 x,y 点列表 |
简单的矩形映射
桌面布局上的两个热点就足以学会接线方式:usemap、匹配的 name,以及带有诚实 alt 文本的 area 矩形。
简单的矩形热点
html<img src="images/desk.png" alt="Desk layout" usemap="#deskmap" width="400" height="200">
<map name="deskmap">
<area shape="rect" coords="20,30,120,100" href="lamp.html" alt="Lamp">
<area shape="rect" coords="200,40,320,120" href="monitor.html" alt="Monitor">
</map>
如何阅读示例
- 图像上的
usemap="#deskmap"指向名为deskmap的映射 - 每个
area都是一个链接:href是目标,alt为热点命名 rect的coords是图像像素网格中的 left、top、right、bottom- 图像自身的
alt(「Desk layout」)描述整幅图;area 的alt则为各个区域命名
坐标如何工作
坐标按为映射布局后的图像的 CSS 像素来测量。如果你在 img 上设置了 width 和 height,学习阶段请让 coords 与该显示尺寸保持一致。错误的数字会产生偏离所绘对象的热点——这是一种常见且不易察觉的失效。
无障碍习惯
每个可点击的 area 都需要有意义的 alt。不要留下未命名的热点。优先使用每个区域用途都清楚的映射。如果设计需要复杂的响应式行为,许多团队会改用带链接的 SVG 或独立按钮,而不是脆弱的像素映射。
映射何时有用——何时没用
映射适合带有少数稳定区域的单一示意图。当图像在多个断点之间自由缩放时就会别扭,因为经典的 coords 不会自动重写。对于现代响应式界面,可考虑独立的链接图像、CSS 布局或 SVG。即便如此,了解图像映射仍有帮助——当你接手旧页面或简单的教学演示时尤其如此。
circle 与 poly(简要说明)
circle 使用圆心与半径。poly 按顺序列出围绕自由形状的 x,y 点对。先用 rect 练习,直到 usemap / name 配对变得自然,再在练习图上尝试其他形状。
在编辑器中练习
- 使用一张简单的宽图,其中有两个明显区域。
- 创建一个带有两个
rect区域的map,分别链向两个小型练习页。 - 仔细把
usemap="#name"与map name="name"对应起来(包括#)。 - 点击每个区域并确认导航。
- 故意弄断一次名称匹配,观察失效的热点,然后再修好。
- 改进任何
alt只写成「link」的area。
常见错误
usemap/name不匹配(忘记在usemap上写#,或只改了一边的名字)- 每个
area缺少alt - coords 与真实图像尺寸或对象位置不一致
- 在没有计划的情况下,把高度流体的响应式布局完全押在图像映射上
- 只把唯一描述写在
img上,而让各个区域没有标签
小结
- 图像映射把
img+usemap+map+area接在一起 - 形状包括
rect、circle和poly - 每个区域都需要
href、alt、shape和coords - 保持名称匹配,并让 coords 诚实准确
- 对于复杂的响应式 UI,考虑现代替代方案——但仍应学习映射,以应对旧页面和简单示意图
🧠 测试您的知识
测试您的知识
通过这个互动测验挑战自己,看看你对这个主题的理解程度如何
📝 说明
- 仔细阅读每个问题
- 为每个问题选择最佳答案
- 您可以随时重新参加测验
- 您的进度将显示在顶部