How to Anchor an Element to the Correct Position On A Responsive Image?

Placing anchor elements in the correct position on responsive images is crucial for creating interactive web pages, especially for image maps, hotspots, and overlay buttons. When images scale with different screen sizes, the anchor elements must maintain their relative positions to remain functional and visually aligned.

This technique is commonly used for image overlays, clickable hotspots, call-to-action buttons on banners, and interactive image galleries. The key is using CSS positioning properties to create anchors that scale proportionally with the responsive image.

Anchor Tag in HTML

The HTML <a> (anchor) element creates hyperlinks to web pages, files, email addresses, or locations within the same page using its href attribute. Each anchor should contain descriptive text indicating the link destination.

Syntax

Following is the syntax for the anchor tag

<a href="URL">Link Text</a>

HTML Image Tag

The HTML <img> tag embeds images in web pages. It is a self-closing tag that uses the src attribute to specify the image source and alt for alternative text description.

Syntax

Following is the syntax for the img tag

<img src="image-url" alt="description" width="value" height="value">
Responsive Image with Anchored Elements Responsive Image (scales with screen) Link 1 Link 2 Key Requirements ? Relative positioning ? Percentage-based sizing ? Responsive scaling ? Absolute anchor placement Anchors maintain relative position as image scales

Using CSS Flexbox for Simple Anchor Positioning

For basic responsive layouts, CSS Flexbox provides an easy way to position anchors below responsive images. This method works well for simple link arrangements.

Example

Following example demonstrates using flexbox to create responsive image cards with anchored links

<!DOCTYPE html>
<html>
<head>
   <title>Responsive Image Cards</title>
   <style>
      .tutorial-container {
         display: flex;
         gap: 20px;
         width: 80%;
         margin: 20px auto;
         flex-wrap: wrap;
      }
      .tutorial-card {
         flex: 1;
         min-width: 250px;
         text-align: center;
         border: 1px solid #ddd;
         border-radius: 8px;
         padding: 15px;
         background: #f9f9f9;
      }
      .tutorial-card img {
         max-width: 100%;
         height: auto;
         border-radius: 4px;
      }
      .tutorial-card a {
         display: inline-block;
         margin-top: 10px;
         padding: 8px 16px;
         background: #007bff;
         color: white;
         text-decoration: none;
         border-radius: 4px;
         transition: background 0.3s;
      }
      .tutorial-card a:hover {
         background: #0056b3;
      }
   </style>
</head>
<body style="font-family: Arial, sans-serif;">
   <div class="tutorial-container">
      <div class="tutorial-card">
         <img src="https://www.tutorialspoint.com/java/images/java-mini-logo.jpg" alt="Java Logo">
         <br>
         <a href="https://www.tutorialspoint.com/java/index.htm">Java Tutorial</a>
      </div>
      <div class="tutorial-card">
         <img src="https://www.tutorialspoint.com/html/images/html-mini-logo.jpg" alt="HTML Logo">
         <br>
         <a href="https://www.tutorialspoint.com/html/index.htm">HTML Tutorial</a>
      </div>
   </div>
</body>
</html>

The output displays responsive cards with images and properly positioned anchor links that adapt to different screen sizes

[Java Logo Image]     [HTML Logo Image]
  Java Tutorial         HTML Tutorial
(Cards arranged side by side, responsive to screen width)

Using Absolute Positioning for Precise Anchor Placement

For precise control over anchor positioning on responsive images, use position: relative on the container and position: absolute on the anchor elements. This technique allows anchors to overlay the image at specific coordinates.

Example

Following example shows how to create clickable hotspots on a responsive image

<!DOCTYPE html>
<html>
<head>
   <title>Responsive Image Hotspots</title>
   <style>
      .image-container {
         position: relative;
         display: inline-block;
         margin: 20px;
         max-width: 100%;
      }
      .image-container img {
         width: 100%;
         height: auto;
         display: block;
         border-radius: 8px;
      }
      .hotspot {
         position: absolute;
         width: 20px;
         height: 20px;
         border-radius: 50%;
         background: rgba(255, 0, 0, 0.8);
         border: 2px solid white;
         cursor: pointer;
         transition: transform 0.2s;
      }
      .hotspot:hover {
         transform: scale(1.3);
         background: rgba(255, 0, 0, 1);
      }
      .hotspot-1 {
         top: 30%;
         left: 25%;
      }
      .hotspot-2 {
         top: 60%;
         left: 70%;
      }
      .tooltip {
         position: absolute;
         bottom: 30px;
         left: 50%;
         transform: translateX(-50%);
         background: rgba(0, 0, 0, 0.8);
         color: white;
         padding: 5px 10px;
         border-radius: 4px;
         font-size: 12px;
         white-space: nowrap;
         opacity: 0;
         transition: opacity 0.3s;
      }
      .hotspot:hover .tooltip {
         opacity: 1;
      }
   </style>
</head>
<body style="font-family: Arial, sans-serif;">
   <div class="image-container">
      <img src="https://via.placeholder.com/400x300/4CAF50/white?text=Responsive+Image" alt="Sample Image">
      <a href="https://www.tutorialspoint.com/html/index.htm" class="hotspot hotspot-1">
         <span class="tooltip">HTML Tutorial</span>
      </a>
      <a href="https://www.tutorialspoint.com/css/index.htm" class="hotspot hotspot-2">
         <span class="tooltip">CSS Tutorial</span>
      </a>
   </div>
</body>
</html>

The output shows a responsive image with red circular hotspots that display tooltips on hover and link to different tutorials

[Responsive Image with two red circular hotspots]
(Hotspots maintain relative positions as image scales)

Creating Overlay Buttons on Responsive Images

Another common use case is placing call-to-action buttons or overlay elements on banner images. These elements should remain properly positioned regardless of screen size.

Example

Following example demonstrates creating overlay buttons on a responsive banner image

<!DOCTYPE html>
<html>
<head>
   <title>Responsive Banner with Overlay</title>
   <style>
      .banner-container {
         position: relative;
         width: 100%;
         max-width: 800px;
         margin: 20px auto;
      }
      .banner-container img {
         width: 100%;
         height: auto;
         display: block;
         border-radius: 10px;
      }
      .overlay-content {
         position: absolute;
         top: 50%;
         left: 50%;
         transform: translate(-50%, -50%);
         text-align: center;
         color: white;
      }
      .overlay-title {
         font-size: 2.5em;
         margin-bottom: 15px;
         text-shadow: 2px 2px 4px rgba(0,0,0,0.7);
      }
      .overlay-button {
         display: inline-block;
         padding: 12px 25px;
         background: #ff6b35;
         color: white;
         text-decoration: none;
         border-radius: 25px;
         font-weight: bold;
         transition: all 0.3s;
         box-shadow: 0 4px 15px rgba(0,0,0,0.3);
      }
      .overlay-button:hover {
         background: #e55a2b;
         transform: translateY(-2px);
         box-shadow: 0 6px 20px rgba(0,0,0,0.4);
      }
      @media (max-width: 600px) {
         .overlay-title {
            font-size: 1.8em;
         }
         .overlay-button {
            padding: 10px 20px;
            font-size: 14px;
         }
      }
   </style>
</head>
<body style="font-family: Arial, sans-serif;">
   <div class="banner-container">
      <img src="https://via.placeholder.com/800x400/2196F3/white?text=Learn+Web+Development" alt="Banner Image">
      <div class="overlay-content">
         <h1 class="overlay-title">Start Learning</h1>
         <a href="https://www.tutorialspoint.com" class="overlay-button">Get Started</a>
      </div>
   </div>
</body>
</html>

The output displays a responsive banner with centered overlay text and button that maintains its position across all screen sizes

[Blue banner image with centered white text "Start Learning" and orange "Get Started" button]
(Content remains centered as image scales responsively)

Key Techniques for Responsive Anchor Positioning

Following are the essential techniques for properly anchoring elements on responsive images

Technique Use Case CSS Properties
Flexbox Layout Simple card layouts, links below images display: flex, flex-wrap
Absolute Positioning Precise hotspots, overlay elements
Updated on: 2026-03-16T21:38:54+05:30

1K+ Views

Kickstart Your Career

Get certified by completing the course

Get Started
Advertisements