How do you make an image map responsive?
Replace the pixel coordinates in <area> tags with positions expressed as percentages of the image's width and height, so every clickable point scales with the picture. Interactive Image stores hotspots this way by default, which is why they stay on target from a desktop monitor down to a phone.
Responsive image map generator — free, no signup
Place hotspots visually and copy HTML that holds its alignment at every screen size. Percentage coordinates instead of fixed pixels.
Responsive image map generator
Drop in your image, click to place hotspots, copy responsive HTML. Positions are stored as percentages, so nothing drifts on mobile. No account, nothing uploaded.
This is a live demo — nothing here is published yet. Create a free account to publish your image and get a one-line embed code for Wix, Webflow, WordPress, Squarespace or plain HTML, with hosted images, images and video in the cards, CTA buttons and edits that go live instantly. Free includes 1 published image with the Interactive Image badge; Pro removes the badge and unlocks white-label embeds.
Free forever plan · No credit card · Works in Wix, Webflow, WordPress, Shopify, Squarespace
Percentage positioning
Hotspots stay attached to the image even when the layout changes.
No coordinate math
Click to place markers instead of measuring rectangles, circles, or polygons by hand.
Modern popups
Titles, descriptions, media, links, and filters instead of plain link-only areas.
What you get
- Mobile-friendly hotspot placement
- No raw map or area tags
- One iframe embed
- Works in every website builder
- Clickable cards with media and CTAs
- Edit once, every embed updates
Preview the card as well as the marker
In the account editor, check Desktop, Tablet, and Mobile, then preview a selected dot. Confirm that its card width, line breaks, media, and links work at each size. Use Appearance for one dot and Map settings for shared defaults. Image dots use percentage positions; geographic Mapbox pins use coordinates, so the two map types do not use the same placement math.
The exact reason fixed coordinates fail
Take a 1200×800 diagram with a hotspot on a valve at 600,400 — dead centre. In classic image map markup that becomes a literal pixel value:
<img src="diagram.png" usemap="#m" width="1200" height="800">
<map name="m">
<area shape="circle" coords="600,400,24" href="/valve">
</map>Add one line of responsive CSS — img { max-width: 100%; height: auto; } — and on a 390px phone the browser paints the image at roughly 32% scale. The valve is now at about 195,130 on screen, but coords still says 600,400: a point past the right edge of the picture. The hotspot has not moved, it has disappeared.
Percentages describe the same point in a way that survives scaling. 600 ÷ 1200 = 50% and 400 ÷ 800 = 50%. Half of 1200px is 600px; half of 390px is 195px. The marker lands on the valve at every width, with no media queries, no resize listener, and no second mobile version to keep in sync.
Converting an existing image map to percentages
You do not have to redraw anything. Every legacy coordinate can be converted with two divisions:
| Shape | coords format | Point to convert |
|---|---|---|
| circle | x, y, radius | x and y are already the centre |
| rect | x1, y1, x2, y2 | (x1+x2)/2, (y1+y2)/2 |
| poly | x1,y1, x2,y2, … | centre of the bounding box |
xPercent = (x / naturalWidth) * 100
yPercent = (y / naturalHeight) * 100
// rect coords="300,200,700,600" on a 1200x800 image
// centre = 500, 400 -> 41.7%, 50%In practice, clicking the point on the image is faster than the arithmetic for anything under about twenty hotspots. The full migration walkthrough is on the image map generator page, and making an image clickable without an image map compares the markup options side by side.
How the four responsive approaches compare
| Approach | Responsive | Extra JS | Popups | Maintenance |
|---|---|---|---|---|
| <area> with pixel coords | No | — | No | Regenerate per size |
| <area> + resize library | Yes, after script runs | Yes | No | A dependency to keep alive |
| CSS percentage overlay | Yes | Only for cards | Hand-built | Edit markup per page |
| Interactive Image embed | Yes, by default | None on your page | Text, image, video, CTA | Edit once, all embeds update |
Testing that a map is genuinely responsive
Three checks catch almost every alignment bug:
- Drag the window slowly. Markers should glide with the image, not jump at breakpoints. A jump means something in the chain is still pixel-based.
- Rotate a phone. Portrait to landscape is where resize-listener approaches most often lag or land a frame behind.
- Check a marker near an edge. Corner hotspots expose off-by-a-few-percent errors that centre markers hide, and they are also where popups need to flip to stay on screen.
The underlying maths, including how object-fit letterboxing shifts things, is covered in why image hotspots drift on mobile.
Where to go next
- Image map generator — the main tool page, including legacy migration.
- HTML image map alternative — what replaces <map>/<area> and why.
- Clickable image maker — if you only need links rather than popups.
- Accessible image maps — keyboard focus, alt text, and contrast.
Continue exploring
Frequently asked questions
Do I need a resize script on my page?
No. There is no JavaScript for you to include — the embed handles scaling internally.
What if my image is very tall or square?
Any aspect ratio works. The embed derives its height from your image's own ratio, so tall floor plans and square product shots both fill their container correctly.
Can I still link straight out from a hotspot?
Yes. Give the hotspot a CTA link and keep the popup copy to a line, or point the CTA at the URL the old <area> used.
Turn any image into a guided experience.
Free forever plan. Paste one iframe into your site and ship.
Create your interactive image

