+是唯一原生支持单图多链接的方案,需确保usemap与map name严格匹配、map同文档内、图片加载完成,并按shape规范设置coords;alt属性必填以保障可访问性,响应式下需动态重算坐标或切换多套map。

直接用 <map></map> + <area> 配合 usemap 是唯一原生支持单张图多个可点击区域跳转不同链接的方案,其他方式(比如叠加 div 或 JS 定位)本质是模拟,不语义、不可访问、响应式易出错。
确保 <img> 与 <map></map> 正确绑定
绑定失败是最常见的“点击没反应”原因。关键点有三个:
-
<img>的usemap值必须以#开头,且严格等于<map></map>的name属性值(大小写敏感),例如:usemap="#world-map"对应<map name="world-map"></map> -
<map></map>必须在 DOM 中位于<img>同一文档内(不能跨 iframe,也不能靠 JS 动态插入后忘记触发重绘) - 图像必须加载完成,否则部分浏览器(尤其 Safari)可能忽略
<area>;建议加loading="eager"或监听load事件后再启用交互
<area> 的 shape 和 coords 必须匹配
坐标格式错一位,整个区域就失效或偏移。常见组合只有三种,不能混用:
将调研报告、方案对比、数据分析、需求梳理、会议纪要、设计说明、代码评审、学习笔记等任务产物输出为可在浏览器直接打开的单文件 HTML,替代 Markdown 作为最终交付物。Markdown 在信息密度、视觉清晰度和可分享性上已跟不上 AI 产物的丰富度,HTML 能同时承载排版、表格、SVG 等。
- 矩形:
shape="rect",coords="left,top,right,bottom"(4 个数字,单位像素,左上为原点) - 圆形:
shape="circle",coords="centerX,centerY,radius"(3 个数字) - 多边形:
shape="poly",coords="x1,y1,x2,y2,x3,y3,..."(偶数个数字,每对为一个顶点) - 别写
shape="default"—— 它不支持href,只用于定义 fallback 区域,且多数浏览器不触发跳转
跳转行为与无障碍必须显式处理
默认情况下,<area> 只响应鼠标点击,但键盘用户(Tab 切换)、屏幕阅读器、移动端触控都可能失效:
- 每个
<area>必须带alt属性(不是title),描述该区域功能,例如alt="点击进入亚洲介绍页";空alt=""会被读作“无内容”,不可接受 - 如果需要新开页面,加
target="_blank" rel="noopener noreferrer"—— 缺少rel会导致安全漏洞,旧版 IE 不支持rel可降级为仅target - 不要依赖
title提示坐标信息,它只是辅助提示,且移动端常不显示;真正需要说明的,写进alt或页面旁白中
响应式图像下 coords 会失效
当 <img> 使用 width/height 属性缩放,或 CSS 设置 max-width: 100% 时,<area> 坐标仍按原始图像尺寸计算,导致热区错位:
- 最稳方案:用原始尺寸图像 + CSS
object-fit: contain+ 固定容器宽高,再通过 JS 按缩放比动态重算coords - 次选方案:放弃响应式,用
srcset+sizes提供多套图像+对应多套<map></map>,按matchMedia切换激活的<map></map> - 绝对避免:用百分比写
coords—— HTML 规范不支持,所有浏览器都当无效处理
实际项目里,80% 的“热点不工作”问题出在绑定错误或坐标未适配缩放,而不是语法本身。先用原始尺寸图验证逻辑通不通,再解决响应式,顺序不能反。
前端入门到VUE实战笔记:立即使用
在学习笔记中,你将探索 前端 的入门与实战技巧!










